Опубликовано: 18 февраля 20205 г Подскажите как создать универсальное условие, которое бы отображало контент, в зависимости от количества сообщений пользователя за неделю. Вроде такого: <if test="$member['post_week'] > 10"> Контент отображается, если у данного пользователя есть 10 сообщений на форуме за неделю. </if>
Опубликовано: 25 марта 20205 г Автор 47 минут назад, Атаман сказал: Как мешок картошки.))) Визуально и по времени выполнения скрипта я не заметил увеличения. Только 1 запрос лишний прибавился.
Опубликовано: 8 марта 20214 г Автор Ставлю этот код для приложения 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> Однако этот код включает в себя все сообщения. Изменено 8 марта 20214 г пользователем Trotor
Опубликовано: 9 марта 20214 г На первый взгляд должен работать. Второй вариант все сообщения включать не может, так там стоит условие на даты создания.
Опубликовано: 10 марта 20214 г Автор 09.03.2021 в 12:22, siv1987 сказал: На первый взгляд должен работать. При вставке этого кода в шаблон, вёрстка рушится. Возможно потому что в шаблоне shoutbox есть такие переменные как {$data['shouts']} и {$data['editor']}? К примеру в шаблоне profileModern переменных $data нет, поэтому код срабатывает корректно.
Опубликовано: 11 марта 20214 г Все верно, в коде переменная data перезаписывается в цикле foreach, нужно задать другое имя если в шаблоне эта переменная занята.
Опубликовано: 11 марта 20214 г Автор 24 минуты назад, siv1987 сказал: нужно задать другое имя если в шаблоне эта переменная занята. Думал что что имя data это обязательно и нельзя изменять. Оказывается всё намного проще 🙂
Подскажите как создать универсальное условие, которое бы отображало контент, в зависимости от количества сообщений пользователя за неделю.
Вроде такого:
<if test="$member['post_week'] > 10">
Контент отображается, если у данного пользователя есть 10 сообщений на форуме за неделю.
</if>