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

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

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

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

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