Как вставить пользовательские поля в redmine с помощью этого скрипта?

#php #xml #api #redmine #custom-fields

#php #xml #API #redmine #пользовательские поля

Вопрос:

Мне нужен скрипт для вставки новых проблем в redmine. В конце у него будут более сложные функции, но пока это все, чего я пытаюсь достичь. Я использовал образец, используемый на их веб-сайте: http://www.redmine.org/projects/redmine/wiki/Rest_api_with_php Второй — с использованием ActiveResource. Это работает хорошо, но если я попытаюсь добавить пользовательские поля, это не сработает. Я довольно новичок в PHP, но совершенно новичок в redmine и работаю с такими вещами. Можно ли добавить пользовательское поле? Это код, используемый в настоящее время:

 <?php
require_once ('ActiveResource.php');

class Issue extends ActiveResource {
    var $site = 'http://username:password@website/';
    var $request_format = 'xml'; // REQUIRED!
}


// create a new issue
$issue = new Issue (array ('subject' => 'XML REST API2', 'project_id' => '6'));
$issue->save ();
echo $issue->id;

?>
  

Я попытался добавить новую проблему в свой проект без использования скрипта, и вот как выглядит XML-файл для этой проблемы с пользовательским полем с именем Ad ID:

 <issue>
<id>17</id>
<project id="7" name="test 1"/>
<tracker id="1" name="Bug"/>
<status id="1" name="New"/>
<priority id="2" name="Normal"/>
<author id="1" name="Redmine Admin"/>
<subject>XML REST API2</subject>
<description/>
<start_date>2014-06-13</start_date>
<due_date/>
<done_ratio>0</done_ratio>
<estimated_hours/>
<custom_fields type="array">
  <custom_field id="1" name="Ad ID">
   <value>43434</value>
  </custom_field>
</custom_fields>
<created_on>2014-06-13T17:28:53Z</created_on>
<updated_on>2014-06-13T17:29:51Z</updated_on>
</issue>
  

Есть ли простой способ включить пользовательские поля в мой скрипт?

Редактировать: я пробовал что-то подобное, и это не работает, это вообще не создает новой проблемы.

 $issue = new Issue (array ('subject' => 'XML REST API222', 'project_id' => '6',     'custom_fields'  => array(
    array(
        'id'    => 1,
        'name'  => 'Ad ID',
        'value' => '7427'
    ))));
  

Ответ №1:

Я нашел ответ на свой собственный вопрос. Для тех, у кого была такая же проблема, вот как включить пользовательские поля:

 'custom_fields' => array('@type' => "array",
            'custom_field' => array('@id' => '1',
                array('value' => '234'))
        )));