Вывод картинок в анонсах статьях
Здравствуйте, подскажите пожалуйста лучшее решение.
Суть вопроса: используя Tickets с добавленными фото в ресурсах (тиккетах), как лучше вывести одно фото в анонсе статьи.
На данный момент я вывожу их таким образом:
1. сниппет img-search
Т.е. для вывода анонсов с фото использую pdoPage в вызываемом шаблоне tpl-link-img для нахождения картинки в тиккете (ресурсе) вызываю сниппет img-search и посылаю ему поле [[+content]] для поиска картинки, после чего вывожу ссылку на первую картинку.
Все работает, но получается что вызываю сниппет в шаблоне другого сниппета, отдаю ему поле [[+content]] и так для вывода каждого ресурса (тиккета), что то мне подсказывает, что это не самый простой и оптимальный выход. После того как страница попадет в кэш наверное уже все равно, но до этого…
Если знаете, подскажите пожалуйста лучшее решение.
Суть вопроса: используя Tickets с добавленными фото в ресурсах (тиккетах), как лучше вывести одно фото в анонсе статьи.
На данный момент я вывожу их таким образом:
1. сниппет img-search
$html = $input;
$res = preg_match_all('/<\s*img[^>]*src=[\"|\'](.*?)[\"|\'][^>]*\/*>/i',$html, $result);
echo $result[1][0];2. сниппет вывода анонсов[[!pdoPage? &element=`getTickets` &includeContent=`1` &includeTVs=`avtor,model` &limit=`10` &tpl=`tpl-link-img` &hideContainers=`1` &tplPageWrapper=`@INLINE</p>
<div class="pagination">
<ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>
</div>
<p>` ]]3. шаблон tpl-link-img — часть отвечающая за вывод фото<img src="[[phpthumbon? &phpthumbon.cache_dir=`images/prev` &options=`h=100&q=90&far=1&bg=FFFFFF` &input=`[[img-search? &input=`[[+content]]`]]` ]]" alt="[[+longtitle]]" /> Т.е. для вывода анонсов с фото использую pdoPage в вызываемом шаблоне tpl-link-img для нахождения картинки в тиккете (ресурсе) вызываю сниппет img-search и посылаю ему поле [[+content]] для поиска картинки, после чего вывожу ссылку на первую картинку.
Все работает, но получается что вызываю сниппет в шаблоне другого сниппета, отдаю ему поле [[+content]] и так для вывода каждого ресурса (тиккета), что то мне подсказывает, что это не самый простой и оптимальный выход. После того как страница попадет в кэш наверное уже все равно, но до этого…
Если знаете, подскажите пожалуйста лучшее решение.
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Картинкам в Tickets уже после отправки прописывается реальный id, а сначала он 0. Если знаете, подскажите пожалуйста как исправить.
Сейчас приходится заходить в админку, удалять путь к картинке и заново сохранять, чтобы опять сработал плагин и прописался нормальный путь.
А что даст проверка на контекст и новое условие media_source?
Как я понимаю, при отправке с фронта, tickets назначает реальную папку (id ресурсу) только после отправки и сохранения ресурса, плагин срабатывает раньше, а в это время пути к картинкам ведут еще на нулевой ресурс assets/images/tickets/0/имяфайла.png
По вашей подсказке сделал срабатывание плагина только для авторизованных в mgr, что в моем случае частично решает проблему (обычные пользователи, отправляют статьи на проверку (плагин не срабатывает и не прописывает «кривые пути»), а уже менеджер заходит в админку проверяет, публикует и сохраняет (срабатывает плагин и прописывает корректный путь))
Решение получается не универсальное, куда копать дальше?
Есть ли возможность запустить плагин после срабатывания tickets ( когда пути уже ведут на реальный, а не на нулевой ресурс)
Вот правильное решение: https://modx.pro/components/4518-tickets-1-5-0-beta-with-the-generation-of-multiple-preview/