Перейти к содержимому
Русский язык для Invision Community 5

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

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

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

<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']}

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

Аккаунт

Навигация

Поиск

Поиск

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

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