modClassVar + TicketForm
Как подцепить modClassVar к TicketForm?
Можно вот так…
создаем плагин
На событие pdoToolsOnFenomInit
Теперь в чанках и шаблонах мы сможем обращаться к modClassVar как
фрагмент чанка формы тикета
создаем плагин
На событие OnDocFormSave
вызов сниппета
Необходимо добавить поля в список разрешенных
Можно вот так…
создаем плагин
На событие pdoToolsOnFenomInit
<?php
switch ($modx->event->name) {
case 'pdoToolsOnFenomInit':
if (!$fenom = $modx->getOption('fenom', $scriptProperties)) {
return;
}
if (!$mcv = $modx->getService('modClassVar')) {
return false;
}
$fenom->mcv = $mcv;
$fenom->addAccessorSmart("mcv", "mcv", Fenom::ACCESSOR_PROPERTY);
break;
}
Теперь в чанках и шаблонах мы сможем обращаться к modClassVar как
{var $values = $.mcv->getValues($id)}
фрагмент чанка формы тикета
{var $values = $.mcv->getValues($id)}
<div class="form-group">
<label for="tick-modclassvar.tags">Лейбл</label>
<input type="text" class="form-control" placeholder="Подпись лейбла" name="modclassvar_tags" value="{$values.tags|join}" maxlength="50" id="tick-modclassvar.tags"/>
<span class="error"></span>
</div>
<div class="form-group">
<label for="tick-modclassvar.tags2">Лейбл2</label>
<input type="text" class="form-control" placeholder="Подпись лейбла2" name="modclassvar_tags2" value="{$values.tags2|join}" maxlength="50" id="tick-modclassvar.tags2"/>
<span class="error"></span>
</div>
создаем плагин
На событие OnDocFormSave
<?php
if ($modx->event->name == 'OnDocFormSave') {
if ($modx->context->key == 'mgr') {
return;
}
if (!$mcv = $modx->getService('modClassVar')) {
return false;
}
$array = $resource->toArray();
$prefix = $mcv->getOption('prefix_key', null, 'modclassvar_', true);
$data = $mcv->getValues($resource->get('id'));
foreach($array as $k => $v) {
if (strpos($k, $prefix) !== 0) {
continue;
}
$key = str_replace($prefix, '', $k);
switch ($key) {
case 'tags':
case 'tags2':
$v = $mcv->explodeAndClean($v);
break;
default:
break;
}
$data[$key] = $v;
$resource->set($k, null);
}
$resource->set(trim($prefix,'_'), $data);
}
Получаем значения полей tags, tags2 и превращаем в массив.вызов сниппета
Необходимо добавить поля в список разрешенных
[[!TicketForm?
&allowedFields=`modclassvar_tags,modclassvar_tags2`
]]
Все!)
Поблагодарить автора
Отправить деньги
Комментарии: 2
Свершилось! Теперь можно человеческие теги в Tickets сделать (по личному мнению).
Спасибо :3
Спасибо :3
пожалуйста!)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.