Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Условие от количества сообщений за неделю

Подскажите как создать универсальное условие, которое бы отображало контент, в зависимости от количества сообщений пользователя за неделю.

Вроде такого:

<if test="$member['post_week'] > 10">

Контент отображается, если у данного пользователя есть 10 сообщений на форуме за неделю.

</if>

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

  • Автор
47 минут назад, Атаман сказал:

Как мешок картошки.)))

Визуально и по времени выполнения скрипта я не заметил увеличения. Только 1 запрос лишний прибавился.

  • 11 месяцев спустя...
  • Автор

Ставлю этот код для приложения IP.Shoutbox, что то не идёт (

<php>$justSayNo   = array();
foreach( $this->registry->getClass('class_forums')->forum_by_id as $id => $data )
{
	if ( ! $data['inc_postcount'] )
	{
		$justSayNo[] = $id;
	}
}	
$fiddyCent	= $this->registry->getClass('class_forums')->fetchSearchableForumIds( $this->memberData['member_id'], $justSayNo );$result = $this->DB->buildAndFetch( array( 
						'select'	=> 'COUNT(*) as post_week',
						'from'		=> array( 'posts' => 'p' ),
						'where'		=> "p.author_id={$this->memberData['member_id']} AND p.post_date > " . (time() - 604800) . " AND t.forum_id IN(" . implode( ',', $fiddyCent ) . ')',
						'group'		=> "p.author_id",
						'add_join' => array(  array( 'from'	 => array( 'topics' => 't' ),
													 'where' => 't.tid=p.topic_id',
													 'type'	 => 'inner' ) )									
				)		);</php>

А этот идёт

<php>$result = $this->DB->buildAndFetch( array( 'select' => 'COUNT(*) as post_week', 'from' => 'posts', 'where' => "author_id={$this->memberData['member_id']} AND post_date > " . (time() - 604800) ) );</php>

Однако этот код включает в себя все сообщения.

Изменено пользователем Trotor

На первый взгляд должен работать. 

Второй вариант все сообщения включать не может, так там стоит условие на даты создания.

  • Автор
09.03.2021 в 12:22, siv1987 сказал:

На первый взгляд должен работать. 

При вставке этого кода в шаблон, вёрстка рушится. 

Возможно потому что в шаблоне shoutbox есть такие переменные как {$data['shouts']} и {$data['editor']}?

К примеру в шаблоне profileModern переменных $data нет, поэтому код срабатывает корректно.

  • Автор

В самом коде переименовал $data на $data1 - и заработало...

Все верно, в коде переменная data перезаписывается в цикле foreach, нужно задать другое имя если в шаблоне эта переменная занята.

  • Автор
24 минуты назад, siv1987 сказал:

нужно задать другое имя если в шаблоне эта переменная занята.

Думал что что имя data это обязательно и нельзя изменять. Оказывается всё намного проще 🙂

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.