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

Скрыть определенные сообщения

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
dfsko
phpBB 1.0.0
Сообщения: 3
Стаж: 12 лет 6 месяцев

Скрыть определенные сообщения

Сообщение dfsko »

Добрый день!

Разделе X в первом посте текст скрыт от всех пользователей группы Y (кроме автора)
У меня получается примерно такое условие

Код: Выделить всё

<!-- IF RAZDEL_ID  -->
    <!-- IF postrow.S_FIRST_ROW and not S_GROUP_ID or USER_AUTHOR -->
        <div class="postbody">{postrow.MESSAGE}</div>
    <!-- ELSE -->
         <div class="postbody">Содержимое сообщения скрыто</div>
    <!-- ENDIF -->
<!-- ELSE -->
    <div class="postbody">{postrow.MESSAGE}</div>
<!-- ENDIF -->
Нигде не могу найти толкового списка доступных переменных в шаблоне, подскажите как правильно проверить следующие условия:
Пост первый
ID раздела на форуме
ID группы пользователя, который просматривает этот раздел
Является ли просматривающий автором первого поста
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 8 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Скрыть определенные сообщения

Сообщение Sheer »

dfsko писал(а):не могу найти толкового списка доступных переменных в шаблоне
Его не существует. Все объекты шаблонов создаются по мере необходимости.
dfsko писал(а):D раздела на форуме
На форуме (вернее конференции) нет разделов - есть форумы. Идентификатор форума определен в объекте шаблона S_FORUM_ID и доступен везде, так как определен в функции page_header()

Код: Выделить всё

		'S_FORUM_ID'			=> $forum_id,
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
dfsko
phpBB 1.0.0
Сообщения: 3
Стаж: 12 лет 6 месяцев

Re: Скрыть определенные сообщения

Сообщение dfsko »

Пока получилось так

Код: Выделить всё

<!-- IF FORUM_ID eq '19' and postrow.S_FIRST_ROW and not postrow.U_EDIT and S_GROUP_ID_2 -->
							<div class="postbody">Только члены гильдии могут просматривать заявки</div>
						<!-- ELSE -->
							<div class="postbody">{postrow.MESSAGE}</div>
						<!-- ENDIF -->
Всё работает, кроме номера группы

Для номера группы нашел функцию, вставил в functions.php

Код: Выделить всё

if ( !function_exists('group_memberships') )
    {
        include_once($phpbb_root_path . 'includes/functions_user.'.$phpEx);
    }

    $groups = group_memberships(false,$user->data['user_id']);

    foreach ($groups as $grouprec)
    {
        $template->assign_vars(array(
            'S_GROUP_' . $grouprec['group_id'] => true
        ));
    } 
почему не работает?
условие без группы отрабатывает нормально, но нужно чтобы не видели только "зарегистрированные"
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 8 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Скрыть определенные сообщения

Сообщение Sheer »

Потому что

Код: Выделить всё

$template->assign_vars(array(
assign_vars присваивает значение одному объекту а у тебя получается массив
но нужно чтобы не видели только "зарегистрированные"
<!-- IF not S_REGISTERED_USER -->

Добавлено спустя 3 минуты 3 секунды:
Ид группы, которая назначена пользователю по умолчанию, можно определить из класса$user
$user->data['group_id']
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
dfsko
phpBB 1.0.0
Сообщения: 3
Стаж: 12 лет 6 месяцев

Re: Скрыть определенные сообщения

Сообщение dfsko »

Вы видимо не поняли
"Зарегистрированные" - имелась ввиду группа "Зарегистрированные пользователи"
Нашел опечатку, код ниже на 100% рабочий

Код: Выделить всё

<!-- IF FORUM_ID eq '19' and postrow.S_FIRST_ROW and not postrow.U_EDIT and not (S_GROUP_8 or S_GROUP_9 or S_GROUP_10 or S_GROUP_11) -->
							<div class="postbody" style="text-align: center;font-size: 1.5em;padding: 40PX 0;color: #FFCC00;">Только члены гильдии могут просматривать заявки</div>
						<!-- ELSE -->
							<div class="postbody">{postrow.MESSAGE}</div>
						<!-- ENDIF -->

Вернуться в «Запросы модов для phpBB 3.0.x»