Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Условие при обновление того или иного раздела или темы

Опубликовано:

Помогите составить условие, в котором контент отображался бы при наличие обновлений в том или ином разделе или теме форума (вне зависимости подписан пользователь на этот раздел или тему), и которое бы помещалось в шаблон hookWatchedItems.

 

<if test="updatedforums:|:$r['id'] == 1">

КОНТЕНТ

</if>

Рекомендованные сообщения

Опубликовано:
  • Автор

Смотрите в сторону класса classItemMarking

А переменные как определить этого класса? Смотрел переменные в шаблоне boardIndexTemplate, но я не заметил там переменных отвечающих за обновления разделов/тем

$lastvisit='", $stats=array(), $calendar_events=FALSE, $birthdays=FALSE, $chat_html='', $news_data=array(), $cat_data=array(), $show_side_blocks=true, $side_blocks=array()

 

Хотя в forumIndexTemplate есть похожие:

$forum_data, $announce_data, $topic_data, $other_data, $multi_mod_data, $sub_forum_data, $footer_filter, $active_user_data, $mod_data, $inforum=1

Вот так сделал:

<php>

print_r($forum_data);

print_r($topic_data);

</php>

Опубликовано:

Честно говоря, я до конца так и не понял что автору нужно и причем тут шаблон hookWatchedItems с обновлениями на форуме. Если в этом шаблоне выводятся данные которые вам нужно, тогда смотрите входящие переменные. Если нет - тогда вообще нужно капать в другую сторону, а условие обычным способом не составить.

Опубликовано:
  • Автор

Честно говоря, я до конца так и не понял что автору нужно и причем тут шаблон hookWatchedItems с обновлениями на форуме. Если в этом шаблоне выводятся данные которые вам нужно, тогда смотрите входящие переменные. Если нет - тогда вообще нужно капать в другую сторону, а условие обычным способом не составить.

Да, видимо hookWatchedItems вообще здесь не причём.

 

Попробую показать на примере что именно мне нужно реализовать.

 

Вставляю в какой то шаблон такое:

 

<if test="УСЛОВИЕ КОТОРОЕ ВЫВОДИТ ССЫЛКУ ЧТО НИЖЕ ЕСЛИ ЕСТЬ ОБНОВЛЕНИЯ В ТЕМЕ С IDом ТАКИМ ТО">

<a href='ССЫЛКА НА ТЕМУ'>НАЗВАНИЕ ТЕМЫ</a>

</if>

Опубликовано:

Допустим у Вас есть тема с нужными данными, тогда

 

<if test="!$this->registry->classItemMarking->isRead(array('forumID' => $topic['forum_id'], 'itemID' => $topic['tid'], 'itemLastUpdate' => $topic['last_post'] ), 'forums');">
<a href='{parse url="showtopic={$topic['tid']}" base="public" template="showtopic" seotitle="{$topic['title_seo']}"}'>{$topic['title']}</a> 
</if>

Опубликовано:
  • Автор

Допустим у Вас есть тема с нужными данными, тогда

Вроде то. Вот только всё равно не понял - где в этом условие указать ид раздела (или темы) в котором есть обновления?

 

Собственно вот моя конструкция:

<div style='position: absolute;left: 1%'>

<div style='position: fixed;margin-top: -2px;margin-left: -3px'>

<if test="!$this->registry->classItemMarking->isRead(array('forumID' => $topic['forum_id'], 'itemID' => $topic['tid'], 'itemLastUpdate' => $topic['last_post'] ), 'forums')">

<div class='banners' style='margin-top: 5px'>

<a href='/forum/1298-total-war-saga-thrones-of-britannia/'>

<img src='/public/forumicons/br(08).png' class='turn' style='width: 30px'/>

</a>

</div>

</if>

</div>

</div>

 

То есть при наличие обновлений в разделе под ИДом 1298, этот блок появлялся.

Опубликовано:

Приплыли.

Пишите про тему, а в коде нужен форум.

 

<div style='position: absolute;left: 1%'>
<div style='position: fixed;margin-top: -2px;margin-left: -3px'>
<php>
	$forum = $this->registry->getClass('class_forums')->forum_by_id[1298];
	$forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);
</php>
<if test="$forumData['_has_unread']">
	<div class='banners' style='margin-top: 5px'>
		<a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}">
			<img src='{$this->settings['public_dir']}forumicons/br(08).png' class='turn' style='width: 30px'/>
		</a>
	</div>
</if>
</div>
</div>

Опубликовано:
  • Автор

Пишите про тему, а в коде нужен форум.

Спасибо, то что надо!

 

А если мне нужно что бы по такой же схеме несколько таких блоков но с разными разделами? Пробовал добавить такой же блок и для другого раздела - всё нормально.

 

Однако если добавляю блок раздела где нет обновлений, тогда вообще всё пропадает.

Вот так:

 

 

 

<div style='position: absolute;left: 1%'><div style='position: fixed;margin-top: -2px;margin-left: -3px'><if test="$forumData['_has_unread']">

 

<php>$forum = $this->registry->getClass('class_forums')->forum_by_id[1298];$forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);</php>

<div class='banners' style='margin-top: 5px'><a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}"><img src='/public/forumicons/br(08).png' class='turn' style='width: 30px'/></a></div>

 

<php>$forum = $this->registry->getClass('class_forums')->forum_by_id[809];$forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);</php>

<div class='banners' style='margin-top: 5px'><a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}"><img src='/public/forumicons/br(124).png' class='turn' style='width: 30px'/></a></div>

 

<php>$forum = $this->registry->getClass('class_forums')->forum_by_id[200];$forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);</php>

<div class='banners' style='margin-top: 5px'><a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}"><img src='/public/forumicons/br(244).png' class='turn' style='width: 30px'/></a></div>

 

</if></div></div>

 

 

 

Третий блок это раздел в котором нет обновлений, после его добавления пропало всё.

Опубликовано:

Что это за каша?

Используйте бибикод code для кодов

 

 

<div style='position: absolute;left: 1%'>
   <div style='position: fixed;margin-top: -2px;margin-left: -3px'>
   <php>
       $forum = $this->registry->getClass('class_forums')->forum_by_id[1298];
       $forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);
   </php>
   <if test="$forumData['_has_unread']">
       <div class='banners' style='margin-top: 5px'>
           <a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}">
               <img src='{$this->settings['public_dir']}forumicons/br(08).png' class='turn' style='width: 30px'/>
           </a>
       </div>
   </if>
   <php>
       $forum = $this->registry->getClass('class_forums')->forum_by_id[809];
       $forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);
   </php>
   <if test="$forumData['_has_unread']">
       <div class='banners' style='margin-top: 5px'>
           <a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}">
               <img src='{$this->settings['public_dir']}forumicons/br(124).png' class='turn' style='width: 30px'/>
           </a>
       </div>
   </if>
   <php>
       $forum = $this->registry->getClass('class_forums')->forum_by_id[200];
       $forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);
   </php>
   <if test="$forumData['_has_unread']">
       <div class='banners' style='margin-top: 5px'>
           <a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}">
               <img src='{$this->settings['public_dir']}forumicons/br(244).png' class='turn' style='width: 30px'/>
           </a>
       </div>
   </if>
   </div>
</div>

 

 

Либо, т.к. изменяемыми частями являются только форумы и картинки, то

 

<div style='position: absolute;left: 1%'>
<div style='position: fixed;margin-top: -2px;margin-left: -3px'>
	<foreach loop="array(1298 => '08', 809 => '124', 200 => '244') as $forumId => $icon">
		<php>
			$forum = $this->registry->getClass('class_forums')->forum_by_id[$forumId];
			$forumData = $this->registry->getClass('class_forums')->forumsCalcChildren($forum['id'], $forum);
		</php>
		<if test="$forumData['_has_unread']">
			<div class='banners' style='margin-top: 5px'>
				<a href="{parse url="showforum={$forumData['id']}" seotitle="{$forumData['name_seo']}" template="showforum" base="public"}">
					<img src='{$this->settings['public_dir']}forumicons/br({$icon}).png' class='turn' style='width: 30px'/>
				</a>
			</div>
		</if>
	</foreach>
</div>
</div>

 

Опубликовано:
  • Автор

Используйте бибикод code для кодов

Вы правы, нужно использовать code.

 

Либо, т.к. изменяемыми частями являются только форумы и картинки, то

Ух ты! Второй вариант даже лучше того чего мне хотелось. Большое спасибо.

Опубликовано:
  • Автор

Кстати вот ещё кое что хотел спросить - а этот код подходит и для тем?

Замена forum на topic не даёт результата.

Опубликовано:

Для темы выше http://ipbskins.ru/forum/topic15879.html/page__st__15#entry106500

Но нужно знать параметры темы и, если такие статические данные как tid или forum_id можно явно указать, то last_post придется откуда-то брать.

Опубликовано:
  • Автор

Точно. Пропустил.

 

то last_post придется откуда-то брать.

В смысле тоже нужен foreach?

Опубликовано:

В смысле что

 

у Вас есть тема с нужными данными

Если нужных данных в месте где используется это условие нету, придется запросить их из БД.

foreach это конструкция для перебора массива в php.

Опубликовано:
  • Автор

придется запросить их из БД.

То есть посредством <php>?

Опубликовано:
То есть посредством ?

Да.

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.