2016-07-26 20 views
0

我測試XML-RPC創建節點使用郵遞員(Chrome擴展)的Drupal併成功完成接收好的。但是問題是一個叫做「field_answer_with_image」的特定字段在我創建的節點中仍然是空白的。我認爲我的結構有問題。 這裏的分類標準爲field_answer_with_imageenter image description here當通過XML-RPC創建節點的Drupal,圖像域參數沒有提交,當別人都

這是我創建節點的xml結構。

<?xml version="1.0" encoding="UTF-8"?><methodCall> 
<methodName>node.create</methodName> 
<params> 
<param> 
<value> 
    <struct> 
    <member> 
    <name>field_category</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
     <array> 
     <data> 
     <value> 
      <string>23</string> 
     </value> 
     </data> 
     </array> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </member> 
    <member> 
    <name>field_email</name> 
    <value> 
    <string>[email protected]</string> 
    </value> 
    </member> 
    <member> 
    <name>body</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
    <array> 
    <data> 
    <value> 
    <struct> 
    <member> 
    <name>value</name> 
    <value> 
    <string>test yoo</string> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member> 
    </struct> 
    </value> 
    </member> 
    <member> 
    <name>type</name> 
    <value> 
    <string>question</string> 
    </value> 
    </member> 
    <member> 
    <name>field_answer_with_image</name> 
    <value> 
    <struct> 
    <member> 
    <name>und</name> 
    <value> 
    <array> 
    <data> 
    <value> 
    <struct> 
    <member> 
    <name>filemime</name> 
    <value> 
    <string>image/jpeg</string> 
    </value> 
    </member> 
    <member> 
    <name> 
    title 
    </name> 
    <value> 
    <string> 
    </string> 
    </value> 
    </member> 
    <member> 
    <name>filename</name> 
    <value><string>GW_temp.jpeg</string></value> 
    </member> 
    <member> 
    <name>status</name> 
    <value><string>1</string></value> 
    </member> 
    <member> 
    <name>fid</name> 
    <value><string>1611</string></value> 
    </member> 
    <member> 
    <name>height</name> 
    <value><string></string></value></member> 
    <member> 
    <name>width</name><value><string></string></value></member><member> 
    <name>timestamp</name><value><string>1469009864</string></value></member><member> 
    <name>filesize</name><value><string>10664</string></value></member><member> 
    <name>uid</name><value><string>1543</string></value></member><member> 
    <name>alt</name><value><string></string></value></member><member> 
    <name>rdf_mapping</name><value><string></string></value></member><member> 
    <name>uri</name><value><string>public://GW_temp_1.jpeg</string></value></member> 
    </struct> 
    </value> 
    </data> 
    </array> 
    </value> 
    </member></struct></value></member> 
    <member><name>field_name</name><value><string>cristy</string></value></member></struct></value></param> 

回答

1

您需要先創建圖像,然後在第二步中使用文件ID創建節點。

第1步:

<?xml version="1.0" encoding="UTF-8"?> 
<methodCall> 
    <methodName>file.create</methodName> 
    <params> 
     <param> 
     <value> 
      <struct> 
       <member> 
        <name>filename</name> 
        <value> 
        <string>Dummy.jpg</string> 
        </value> 
       </member> 
       <member> 
        <name>filesize</name> 
        <value> 
        <int>440048</int> 
        </value> 
       </member> 
       <member> 
        <name>file</name> 
        <value> 
        <string>$BASE64$</string> 
        </value> 
       </member> 
       <member> 
        <name>filepath</name> 
        <value> 
        <string>public://Dummy.jpg</string> 
        </value> 
       </member> 
      </struct> 
     </value> 
     </param> 
    </params> 
</methodCall> 

這將返回與 'FID' 中的一個XML值。找到它的匹配「值」,一個整數。

然後創建步驟2中的節點(假設FID = 170):

<?xml version="1.0" encoding="UTF-8"?> 
<methodCall> 
    <methodName>node.create</methodName> 
    <params> 
     <param> 
     <value> 
      <struct> 
       <member> 
        <name>type</name> 
        <value> 
        <string>dummy_content_type</string> 
        </value> 
       </member> 
       <member> 
        <name>title</name> 
        <value> 
        <string>Dummy&gt; 123456</string> 
        </value> 
       </member> 
       <member> 
        <name>field_dummy</name> 
        <value> 
        <struct> 
         <member> 
          <name>und</name> 
          <value> 
           <array> 
           <data> 
            <value> 
             <struct> 
              <member> 
              <name>type</name> 
              <value> 
               <string>image</string> 
              </value> 
              </member> 
              <member> 
              <name>fid</name> 
              <value> 
               <string>170</string> 
              </value> 
              </member> 
              <member> 
              <name>uid</name> 
              <value> 
               <string>1</string> 
              </value> 
              </member> 
              <member> 
              <name>filename</name> 
              <value> 
               <string>Dummy.jpg</string> 
              </value> 
              </member> 
              <member> 
              <name>filesize</name> 
              <value> 
               <string>44408</string> 
              </value> 
              </member> 
              <member> 
              <name>filepath</name> 
              <value> 
               <string>public://Dummy.jpg</string> 
              </value> 
              </member> 
             </struct> 
            </value> 
           </data> 
           </array> 
          </value> 
         </member> 
        </struct> 
        </value> 
       </member> 
      </struct> 
     </value> 
     </param> 
    </params> 
</methodCall> 

這將類似地返回一個節點ID,以以前的發佈請求。

適用於Drupal 7.

相關問題