avgaz 8 08/01/2019 11:24 AM Добрый день, есть несколько вопросов по условиям вывода данных(рекламных объявлений) в шаблонах1. шаблон globalTemplate как составить условие, что бы при просмотре темы не показывались данные, а в других местах показывались, вот так почему то не работает {{if (!\IPS\Request::i()->controller == 'topic')}} реклама {{endif}} 2. Как вывести данные перед последним сообщение темы, а так же после я так понимаю нужно это делать в шаблоне topic как выводить после определенного сообщения понятно это так {{if $postCount == 10}} а вот как перед последним? и после? 3. Как вывести данные после переделенного раздела на главной? например после третьего? Share this post Link to post
newbie 1,721 08/01/2019 11:46 AM 1. {{if \IPS\Request::i()->controller != 'topic'}} реклама {{endif}}а вот как перед последним?{{if $postCount == \count($comments) - 1}} и после?{{if $postCount == \count($comments)}}Для \count($comments) лучше создать переменную, чтобы в цикле по n раз не вычислять. 3. Как вывести данные после переделенного раздела на главной? например после третьего? Можно по id, чтобы лишние переменные не вводить.В шаблоне index В цикле foreach использовать {{if $category->_id == 1}} Реклама после категории с ID 1 {{endif}} 2 Share this post Link to post
avgaz 8 08/02/2019 08:24 AM Спасибо.Ещё такой вопрос хочу сделать вывод онлайн пользователь или нет около ника в сообщениях, ставил плагин(ы) все они создают лишние запросы в БД так как используют $comment->author()->isOnline() то есть по каждому отписавшемуся в теме идет запрос в таблицу сессий, что по мне дак как то не очень.Решил попробовать сделать вот так прописав в шаблон это. {{if ($comment->author()->last_activity < time() - 1440) }} <i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_offline" data-ipstooltip="" _title="Оффлайн"></i> {{else}} <i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_online" data-ipstooltip="" _title="Онлайн"></i> {{endif}}по сути в last_activity заносится последнее действие так же как и в сессии, но при этом не каких лишних запросов в БД нет т.к эти данные по сути и так запрашиваются.Вроде все работает, только вопрос на сколько это правильно есть какие то минусы в таком решении?Ещё данный код пришлось прописывать в два места в шаблоне что бы с мобильных тоже показывало, возникает прос может выполнять этот код один раз а в места вывода вставлять переменой? но что то не получается обозначить переменой то есть так$olineuser = '<i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_offline" data-ipstooltip="" _title="Оффлайн"></i>' и дальнейший вывод в шаблоне {$olineuser} почему то не работает Share this post Link to post
newbie 1,721 08/02/2019 10:08 AM Вроде все работает, только вопрос на сколько это правильно есть какие то минусы в таком решении?Ваше решение похоже на то, что реализовано в методе isOnline, только без проверки на юзера/гостя и sql-запроса.но что то не получается обозначить переменой то есть так$olineuser = '' и дальнейший вывод в шаблоне {$olineuser} почему то не работает {{$onOff = '';}} {{if $comment->author()->member_id}} {{if $comment->author()->last_activity < time() - 1440}} {{$onOff = '<i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_offline" data-ipstooltip="" _title="Оффлайн"></i>';}} {{else}} {{$onOff = '<i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_online" data-ipstooltip="" _title="Онлайн"></i>';}} {{endif}} {{endif}} {$onOff|raw} Share this post Link to post
avgaz 8 08/30/2019 04:12 PM а средствами форума можно определить ширину экрана посетителя? то есть хотелось бы в шаблоне если один размер экрана то подгрузить одни код рекламы(директ), если другой уже другой код рекламы?при этом код рекламы выглядит так <div id="yandex_rtb_R-A-888888"></div> <script type="text/javascript"> (function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-888888", renderTo: "yandex_rtb_R-A-888888", async: true }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks"); </script> Share this post Link to post
avgaz 8 08/30/2019 09:27 PM (edited) Вроде бы понял как сделать то есть вот так для примера<div id="rtb_div"></div> <script type="text/javascript"> if (window.screen.width < 1000){ $( "#rtb_div" ).load( "/small.ya" ); }else { $( "#rtb_div" ).load( "/big.ya" ); } </script>но появилась проблема этот код работает только если его разместить в шаблоне ниже этой строки{template="includeJS" if="theme.js_include == 'footer'" app="core" group="global" location="global" params=""} Что не очень хорошо т.к вывод кода разместить нужно в начале и получается что работает с задержкой пока вся страница не про грузится (( как это поправить? Edited August 30, 2019 by avgaz Share this post Link to post
avgaz 8 08/31/2019 05:14 PM Разобрался причина что jQuery грузится внизу страницы ((Все таким может средствами форума можно ширину определить что бы составить условие в шаблоне? Share this post Link to post
newbie 1,721 09/05/2019 05:38 AM Все таким может средствами форума можно ширину определитьКакими? У Движка нет собственных средств.Разобрался причина что jQuery грузится внизу страницы (( Добавляйте js код после, а html код вверху страницы. Share this post Link to post
avgaz 8 10/03/2019 10:02 AM Такой вопрос возник, а где правятся шаблоны админки? хотелось внести изменения в список модераторов добавив туда ссылку на историю модерирования, так же в списке пользователей выводить не просто дату, а и время регистрации, но вот где покопаться в этих шаблонах так и не нашёл (( Share this post Link to post
newbie 1,721 10/03/2019 11:23 AM Нет такого места.Вроде бы, если не изменяет память, можно редактировать при включенном режиме дизайнера. Только учтите, что плагины, использующие Theme hooks, при данном режиме не работают. Share this post Link to post
avgaz 8 03/11/2020 09:42 PM Как составить условие в шаблоне topic, что бы например в темах определенного форума показалась только реклама? Share this post Link to post
newbie 1,721 03/12/2020 10:46 AM 13 часов назад, avgaz сказал: Как составить условие в шаблоне topic, что бы например в темах определенного форума показалась только реклама? {{if $topic->container()->_id == 5}} Показывать рекламу в форуме с ID 5 {{endif}} 2 Share this post Link to post
avgaz 8 02/04/2021 08:21 PM 12.03.2020 в 13:46, newbie сказал: {{if $topic->container()->_id == 5}} Показывать рекламу в форуме с ID 5 {{endif}} как сделать перечисление, то есть показывать в 5,1,9 ?? или как сделать что бы показывало и в подразделах? Share this post Link to post
Lesovsky 149 02/07/2021 05:30 PM 04.02.2021 в 23:21, avgaz сказал: как сделать перечисление, то есть показывать в 5,1,9 ?? {{if $topic->container()->_id == 1 or $topic->container()->_id == 5 or $topic->container()->_id == 9}} Показывать рекламу в форуме с ID 1, 5 и 9 {{endif}} 04.02.2021 в 23:21, avgaz сказал: как сделать перечисление, то есть показывать в 5,1,9 ?? или как сделать что бы показывало и в подразделах? Добавить в шаблон подразделов аналогичное условие. 1 Share this post Link to post