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

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

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

Нужно делать sql-запрос

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

<if test="$result['post_week'] > 10">
Контент отображается, если у данного пользователя есть 10 сообщений на форуме за неделю.
</if>

 

Опубликовано:
  • Автор
20 минут назад, newbie сказал:

Нужно делать sql-запрос

Спасибо. Только выбивает в ошибку базы данных

Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND post_date > 1581403588' at line 1
mySQL query error: SELECT COUNT(*) as posts_day FROM ibf_posts WHERE author_id= AND post_date > 1581403588

 

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

Смотрите, какие данные есть в $member

Опубликовано:
  • Автор
9 минут назад, newbie сказал:

Смотрите, какие данные есть в $member

Как мне это узнать?

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

print_r / var_dump

Вообще переменная $member существует или Вы ее сами придумали?

Опубликовано:
  • Автор
3 минуты назад, newbie сказал:

Вообще переменная $member существует или Вы ее сами придумали?

Не понял?

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

Вообще post_week не существует.

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

При чем тут post_week?

2 часа назад, Haktar сказал:

<if test="$member

Данная переменная есть? В каком шаблоне используете код?

Опубликовано:
  • Автор
1 минуту назад, newbie сказал:

Данная переменная есть?

Естественно.

 

1 минуту назад, newbie сказал:

В каком шаблоне используете код?

Испробовал в membersProfileForm (страница настройки форума).

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

И где Вы в данном шаблоне нашли переменную $member?

Список переменных 

$required_output='',$optional_output='',$day='',$mon='',$year=''

 

Опубликовано:
  • Автор
15 минут назад, newbie сказал:

И где Вы в данном шаблоне нашли переменную $member?

Вот я тормоз! Забыл эту главную основу. Видимо не проснулся толком ещё

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

А что мне тогда в переменные шаблона поставить?

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

Ничего.

Указанный шаблон виден текущему юзеру.

Вместо 

$member['member_id']

использовать

$this->memberData['member_id']
Опубликовано:
  • Автор
2 часа назад, newbie сказал:

использовать

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

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

Ещё просьба.

Установил sql-запрос на страницу модераторов (шаблон group_strip) для отображения количества сообщений в неделю.

Однако на каждого модератора формирует свой запрос, можно ли оптимизировать это?

 

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

{$result['post_week']}

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

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