Условия на вывод данных в шаблонах - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Условия на вывод данных в шаблонах

#1 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 01 Август 2019 - 13:24

Добрый день, есть несколько вопросов по условиям вывода данных(рекламных объявлений) в шаблонах
1. шаблон globalTemplate как составить условие, что бы при просмотре темы не показывались данные, а в других местах показывались, вот так почему то не работает
{{if (!\IPS\Request::i()->controller == 'topic')}}
реклама
{{endif}}

2. Как вывести данные перед последним сообщение темы, а так же после я так понимаю нужно это делать в шаблоне topic как выводить после определенного сообщения понятно это так {{if $postCount == 10}} а вот как перед последним? и после?

3. Как вывести данные после переделенного раздела на главной? например после третьего?
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 988
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 558
  • IPB version:I have no IPB
 

Отправлено 01 Август 2019 - 13:46

1.
{{if \IPS\Request::i()->controller != 'topic'}} 
реклама
{{endif}}

Просмотреть сообщениеavgaz сказал(а):

а вот как перед последним?
{{if $postCount == \count($comments) - 1}}

Просмотреть сообщениеavgaz сказал(а):

и после?
{{if $postCount == \count($comments)}}

Просмотреть сообщениеavgaz сказал(а):

Для \count($comments) лучше создать переменную, чтобы в цикле по n раз не вычислять.

3. Как вывести данные после переделенного раздела на главной? например после третьего?
Можно по id, чтобы лишние переменные не вводить.
В шаблоне index В цикле foreach использовать
			{{if $category->_id == 1}}
				Реклама после категории с ID 1
			{{endif}}

2

#3 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 02 Август 2019 - 10:24

Спасибо.
Ещё такой вопрос хочу сделать вывод онлайн пользователь или нет около ника в сообщениях, ставил плагин(ы) все они создают лишние запросы в БД так как используют $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} почему то не работает
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 988
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 558
  • IPB version:I have no IPB
 

Отправлено 02 Август 2019 - 12:08

Просмотреть сообщениеavgaz сказал(а):

Вроде все работает, только вопрос на сколько это правильно есть какие то минусы в таком решении?

Ваше решение похоже на то, что реализовано в методе isOnline, только без проверки на юзера/гостя и sql-запроса.

Просмотреть сообщениеavgaz сказал(а):

но что то не получается обозначить переменой то есть так
$olineuser = '<i style="font-size: 14px" class="fa fa-circle ipsOnlineStatus_offline" data-ipstooltip="" _title="Оффлайн"></i>' и дальнейший вывод в шаблоне {$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}

0

#5 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 30 Август 2019 - 18:12

а средствами форума можно определить ширину экрана посетителя? то есть хотелось бы в шаблоне если один размер экрана то подгрузить одни код рекламы(директ), если другой уже другой код рекламы?
при этом код рекламы выглядит так
<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>   

0

#6 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 30 Август 2019 - 23:27

Вроде бы понял как сделать то есть вот так для примера
<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=""}


Что не очень хорошо т.к вывод кода разместить нужно в начале и получается что работает с задержкой пока вся страница не про грузится (( как это поправить?

Сообщение изменено: avgaz (30 Август 2019 - 23:30)

0

#7 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 31 Август 2019 - 19:14

Разобрался причина что jQuery грузится внизу страницы ((
Все таким может средствами форума можно ширину определить что бы составить условие в шаблоне?
0

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 988
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 558
  • IPB version:I have no IPB
 

Отправлено 05 Сентябрь 2019 - 07:38

Просмотреть сообщениеavgaz сказал(а):

Все таким может средствами форума можно ширину определить

Какими? У Движка нет собственных средств.

Просмотреть сообщениеavgaz сказал(а):

Разобрался причина что jQuery грузится внизу страницы ((


Добавляйте js код после, а html код вверху страницы.
0

#9 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 287
  • Регистрация: 28-Январь 08
  • Репутация: 8
  • IPB version:3.4.x
 

Отправлено 03 Октябрь 2019 - 12:02

Такой вопрос возник, а где правятся шаблоны админки? хотелось внести изменения в список модераторов добавив туда ссылку на историю модерирования, так же в списке пользователей выводить не просто дату, а и время регистрации, но вот где покопаться в этих шаблонах так и не нашёл ((
0

#10 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 988
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 558
  • IPB version:I have no IPB
 

Отправлено 03 Октябрь 2019 - 13:23

Нет такого места.
Вроде бы, если не изменяет память, можно редактировать при включенном режиме дизайнера. Только учтите, что плагины, использующие Theme hooks, при данном режиме не работают.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2019 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна