Tickets introtext и Jevix
Я так и не понял баг это или фича. Tickets сохраняет content, обработанный Jevix, в introtext. Делает это даже когда Jevix отключен. Чтоб избавиться от этого нужно отредактировать 2 файла: create.class.php и update.class.php по адресу /core/components/tickets/controllers/ticket/.
Я заменил:
Я заменил:
// Define introtext
$introtext = $this->getProperty('introtext');
if (empty($introtext)) {
$introtext = $this->object->getIntroText($this->getProperty('content'), false);
}
if (empty($properties['disable_jevix'])) {
$introtext = $this->object->Jevix($introtext);
}На:// Define introtext
$introtext = $this->getProperty('introtext');
// if (empty($introtext)) {
// $introtext = $this->object->getIntroText($this->getProperty('content'), false);
// }
if (empty($properties['disable_jevix'])) {
$content2intro = $this->object->getIntroText($this->getProperty('content'), false);
$introtext = $this->object->Jevix($content2intro);
}Теперь content в introtext сохраняется только если Jevix включен. Вроде как так и должно быть. Нет? Комментарии: 21
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Ну если заходить с позиции «Для настоящих пацанов Страдивари делал барабаны», то сойдёт. Возможно придется ещё много чего переделывать, ибо проблем из-за Jevix море. Даже если его отключить, письма всё-равно отправляются, комментарии пишутся, просмотры считаются, рейтинги не отключаются и т.д.Какая связь между introtext и Jevix?
Проблема в том, что content туда попадает, даже если jevix выключен. В результате не работает такая конструкция при отображении списка тикетов:
Зачем в списке тикетов выводить контент тикета?
Если статья короткая, я хочу выводить её полностью без «Читать дальше». Кат тоже не катит, потому что краткое описание статьи может отличаться от её начала.
Лично я в этом
не вижу связи. Если Jevix включен, то попадет обработанный контент. Если отключен, то необработанный. Что и логично.
Выход.
Изначально сниппеты getResources и pdoResources (да и некоторые другие) не подгружают поле content без специального указания (&includeContent=`1`), чтобы не раздувать память.
на примере новостей: главная новостей, где выводится список всех новостей, у каждой новости выводится интротекст, а при подробном просмотре — уже контент.
так, вроде, во всех CMS сделано
Я думаю, предполагалось, что нужно где-то хранить результат работы джевикса. И интротекст для этого вполне подошел. Но если у джевикса нет результатов работы, соответственно и нет смысла хранить контент 2 раза.
Если я хочу отобразить статью полностью, то нет смысла забивать интротекст.
Конечно, можно придумать кучу решений этой проблемы. Отображать ссылку на полную версию, если интротекст=контенту или если в интротексте лежит какой-то текст-триггер, но это тоже костыли. И вообще, есть вероятность, что вся эта проблема — просто следствие недоработки.