Подправить сниппет subscribeAuthor
2 1 000
В своё время @tolanych написал по моей просьбе такой сниппет для подписки на авторов:
Теперь выдаёт такую ошибку:
Undefined variable: subscribed in www/core/cache/includes/elements/modsnippet/142.include.cache.php
Я так понимаю, из-за того, что в сниппете он не объявил $subscribed, если здесь не выполнен IF:
Заранее благодарен.
<?php
/** @var array $scriptProperties */
/** @var Tickets $Tickets */
$Tickets = $modx->getService('tickets', 'Tickets', $modx->getOption('tickets.core_path', null,
$modx->getOption('core_path') . 'components/tickets/') . 'model/tickets/', $scriptProperties);
if (!$Tickets->authenticated || empty($scriptProperties['createdby'])) {
return '';
}
if (!empty($scriptProperties['TicketsInit'])) {
$Tickets->initialize($modx->context->key, $scriptProperties);
}
if ($profile = $modx->getObject('TicketAuthor', array('id' => $scriptProperties['createdby']))) {
$properties = $profile->get('properties');
if (!empty($properties['subscribers'])) {
$found = array_search($modx->user->id, $properties['subscribers']);
$subscribed = ($found == false) ? 0:1;
}
}
$tpl = $modx->getOption('tpl', $scriptProperties, 'tpl.Tickets.author.subscribe');
$data = [
'author_id' => $scriptProperties['createdby'],
'subscribed' => $subscribed
];
$output = $Tickets->getChunk($tpl, $data);
// Return output
if (!empty($toPlaceholder)) {
$modx->setPlaceholder($toPlaceholder, $output);
} else {
return $output;
}
Как в старой сказке — до обновления MODx всё было хорошо. Почти. Ругался в лог, но работало.Теперь выдаёт такую ошибку:
Undefined variable: subscribed in www/core/cache/includes/elements/modsnippet/142.include.cache.php
Я так понимаю, из-за того, что в сниппете он не объявил $subscribed, если здесь не выполнен IF:
if (!empty($properties['subscribers'])) {
$found = array_search($modx->user->id, $properties['subscribers']);
$subscribed = ($found == false) ? 0:1;
}
Кто сможет помочь, пишите через форму. Бюджет обсуждается.Заранее благодарен.
Комментарии в этом разделе отключены, так что вы должны указать свои контакты прямо в объявлении, или активировать отправку сообщений из профиля.
Обратите внимание, что modx.pro не несёт никакой ответственности за выполнение работы или оплату заказа. Это просто доска объявлений, дальше вы общаетесь за пределами нашей площадки.