При создании Ticket в базу не пишется template
Для создания тикета использую код:
UPD1. Получается, что делать нужно так?!
<?php
$processorProps = array(
'class_key' => 'Ticket',
//'alias' => 'myTicket',
'parent' => 4,
'richtext' => 1,
'createdby' => 6,
'pagetitle' => 'тест'.date("His"),
'content' => 'здесь весь текст.'.date("Ymd.His"),
'published' => 1,
'template' => 3,
);
$otherProps = array();
$response = $modx->runProcessor('resource/create', $processorProps, $otherProps);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
}
В phpMyAdmin вижу, что template добавляется равным 0, а не 3. Остальные поля пишутся в базу без проблем. Что не так?!UPD1. Получается, что делать нужно так?!
$response = $modx->runProcessor('resource/create', $processorProps, $otherProps);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
} else {
$TicketArray = $response->getObject();
$TicketObject = $modx->getObject('modResource',array('id' => $TicketArray['id']));
$TicketObject->set('template',3);
$TicketObject->save();
}
Комментарии: 10
Скорее всего ставится шаблон который стоит по умолчанию в системных настройках при создании тикета. Воспользуйся родным TicketCreateProcessor, там вроде можно переопределить шаблон по умолчанию.
Тут такое дело, что вот тут Василий рекомендует «обращаться к родному процессору MODX с указанием class_key».
Вот теперь я, так сказать, в недоумении. Как же всё-таки идеологически правильно делать?!
Вот теперь я, так сказать, в недоумении. Как же всё-таки идеологически правильно делать?!
Ну тогда после сохранения ресурса еще раз указать шаблон и пересохранить попробуй.
Такой вариант я чего-то не осилил.
ни $response->id ни $response->get('id') не выдают мне id созданного ресурса. Как его изловить?!
Тут видимо не хватает какого-то звена, потому что у меня на входе результат работы процессора ($response), а не какой-либо объект. :(
Подскажи пожалуйста куда копать.
ни $response->id ни $response->get('id') не выдают мне id созданного ресурса. Как его изловить?!
Тут видимо не хватает какого-то звена, потому что у меня на входе результат работы процессора ($response), а не какой-либо объект. :(
Подскажи пожалуйста куда копать.
Запилил так
$TicketArray = $response->getObject();
print_r($TicketArray['id']);
Как-то забавно получается, что после
В итоге получается, что дальше нужно делать как-то так?!
$response->getObject();
получается не объект, а массив. Какой-то когнитивный диссонанс возникает.В итоге получается, что дальше нужно делать как-то так?!
$TicketArrayO=$modx->getObject('modResource',array('id' => $TicketArray['id']));
$TicketArrayO->set('template',3);
$TicketArrayO->save();
Это верный ход?!
через консоль запускаешь или с фронтенда?
Запускаю через код сниплета, который вызывается на специально созданной для этого странице сайта.
По коду видно, что в процессоре идёт проверка на контекст:
— Если mgr — свойства (в т.ч. и шаблон) берутся из заполненной формы
— Если иной — свойства берутся из родителя. Да, в Tickets есть классная возможность указать в Секции тикетов настройки по-умолчанию для дочерних Тикетов — file.modx.pro/files/5/2/d/52dc40aaa739f288f36b27bb79fc0078.png
И дальше, если ни там, ни там не найдено шаблона, который бы можно было установить — ставится тот, который определён в настройках системы.
Код приложения многое может подсказать…
— Если mgr — свойства (в т.ч. и шаблон) берутся из заполненной формы
— Если иной — свойства берутся из родителя. Да, в Tickets есть классная возможность указать в Секции тикетов настройки по-умолчанию для дочерних Тикетов — file.modx.pro/files/5/2/d/52dc40aaa739f288f36b27bb79fc0078.png
И дальше, если ни там, ни там не найдено шаблона, который бы можно было установить — ставится тот, который определён в настройках системы.
Код приложения многое может подсказать…
Благодарю за наводку про настройки. Даже думать не предполагал о таком простом волшебстве.
Однако вот смотрю в код создания комментов к тикетам и как-то глухо всё. :(
Однако вот смотрю в код создания комментов к тикетам и как-то глухо всё. :(
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.