#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'))
)));