Страницы, статьи и новости
Инструменты и плагины
Заготовка заголовок


Описание как пример заготовки. Пример текстового контента для дальнейшей кастомизации шаблона "Index36".

Редактировать шаблон вы можете на свое усмотрение и как вам угодно. Если у вас на это нет времени или недостаточно знаний - вы всегда можете заказать адаптацию шаблона сайта написав мне по контактам на GitHub или в личные сообщения на публичной странице сайта маркетплейса цифровых товаров

Файл forums.posts.php в Cotonti. Часть 4

Файл forums.posts.php в Cotonti. Часть 4

 

// Устанавливаем переменную $lastpage для проверки, является ли текущая страница последней
// Вычисляем это, сравнив, сколько постов на странице и сколько их всего
$lastpage = (($d + Cot::$cfg['forums']['maxpostsperpage']) < $totalposts) ? FALSE : TRUE;

// Создаем навигацию по страницам с помощью функции cot_pagenav
// Аргументы:
// 'forums' - это название модуля
// "m=posts&q=$q" - URL параметры для запросов
// $d - текущий индекс страницы
// $totalposts - общее количество сообщений
// Cot::$cfg['forums']['maxpostsperpage'] - максимальное количество постов на странице
$pagenav = cot_pagenav('forums', "m=posts&q=$q", $d, $totalposts, Cot::$cfg['forums']['maxpostsperpage']);

// Инициализируем массив $jumpbox, добавляем URL главного форума
$jumpbox[cot_url('forums')] = Cot::$L['Forums'];

// Перебираем все разделы форума из структуры форума
foreach (Cot::$structure['forums'] as $key => $val)
{
    // Проверяем, есть ли права на чтение раздела (cot_auth) и является ли путь раздела валидным (не пустой строкой)
    if (cot_auth('forums', $key, 'R') && strpos($val['path'], '.'))
    {
        // Если текущий путь не совпадает с $s, добавляем его в массив $movebox
        ($val['tpath'] == $s) || $movebox[$key] = $val['tpath'];

        // Добавляем путь раздела в список доступных для перехода
        $jumpbox[cot_url('forums', 'm=topics&s=' . $key, '', true)] = $val['tpath'];
    }
}

// Проверяем, если текущий пользователь является администратором
if (Cot::$usr['isadmin']) {
    // Если это администратор, назначаем переменные шаблона для разных ссылок управления разделами форума
    // Эти ссылки выполняют различные действия: перемещение, поднятие, блокировка и другие
    $t->assign([
        'FORUMS_POSTS_MOVE_URL' => cot_url('forums', 'm=topics&a=move&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_BUMP_URL' => cot_url('forums', 'm=topics&a=bump&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_LOCK_URL' => cot_url('forums', 'm=topics&a=lock&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_STICKY_URL' => cot_url('forums', 'm=topics&a=sticky&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_ANNOUNCE_URL' => cot_url('forums', 'm=topics&a=announcement&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_PRIVATE_URL' => cot_url('forums', 'm=topics&a=private&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        'FORUMS_POSTS_CLEAR_URL' => cot_url('forums', 'm=topics&a=clear&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']),
        // Ссылка для подтверждения удаления темы
        'FORUMS_POSTS_DELETE_URL' => cot_confirm_url(cot_url('forums', 'm=topics&a=delete&s=' . $s . '&q=' . $q . '&x=' . $sys['xk']), 'forums', 'forums_confirm_delete_topic'),
        // Генерация HTML для выпадающего списка перемещения темы
        'FORUMS_POSTS_MOVEBOX_SELECT' => cot_selectbox('', 'ns', array_keys($movebox), array_values($movebox), false),
        // Создание чекбокса для сохранения перемещения
        'FORUMS_POSTS_MOVEBOX_KEEP' => cot_checkbox('0', 'ghost'),
    ]);
    // Разбираем шаблон с указанными переменными для админки
    $t->parse('MAIN.FORUMS_POSTS_ADMIN');
}

Разбор кода:

  1. Переменная $lastpage: Это условие проверяет, является ли текущая страница последней. Если количество отображаемых сообщений (с учетом текущей страницы) меньше общего количества сообщений, то это не последняя страница.
  2. Переменная $pagenav: Создается навигация по страницам форума. Используется функция cot_pagenav для отображения ссылок на предыдущие/следующие страницы.
  3. Массив $jumpbox: Содержит URL для быстрого перехода между разделами форума. Каждый раздел добавляется в массив, если у пользователя есть разрешение на его чтение.
  4. Проверка прав пользователя: В цикле foreach проверяется, есть ли у текущего пользователя права для чтения раздела форума. Если путь раздела является валидным (содержит точку), его добавляют в массив для перехода между разделами.
  5. Для администраторов:
    • Если текущий пользователь является администратором, ему предоставляются дополнительные возможности по управлению темами форума, такие как перемещение, поднятие, блокировка, закрепление, создание анонса, установка приватности и очистка.
    • Также генерируются ссылки для управления темами и помещаются в шаблон с помощью метода $t->assign.

Важные моменты:

  • cot_auth(): Функция для проверки прав пользователя. В данном случае проверяется, есть ли права на чтение для текущего раздела форума.
  • cot_url(): Функция для генерации URL с заданными параметрами.
  • cot_selectbox() и cot_checkbox(): Функции для создания HTML-форм, таких как выпадающий список и чекбоксы.

 

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям
Аккаунт