Перейти к публикации
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.

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

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

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

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

<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 это обязательно и нельзя изменять. Оказывается всё намного проще 🙂

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

Сейчас на странице 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.