Функция cot_check_messages в Cotonti

Эта функция cot_check_messages в фреймворке Cotonti предназначена для проверки наличия сообщений, которые нужно отобразить на странице. Она позволяет фильтровать сообщения по определённым источникам и классам сообщений.

Разберём функцию по частям:

/**
 * Checks if there are messages to display
 *
 * @param string $src If non-emtpy, check messages in this specific source only
 * @param string $class If non-empty, check messages of this specific class only
 * @return bool
 */
function cot_check_messages($src = '', $class = '')
{
    global $error_string, $sys;

    if (empty($_SESSION['cot_messages'][Cot::$sys['site_id']])) return false;

    if (empty($src) && empty($class)) {
        return (is_array($_SESSION['cot_messages'][Cot::$sys['site_id']]) && count($_SESSION['cot_messages'][Cot::$sys['site_id']]) > 0)
            || !empty($error_string);
    }

    if (!is_array($_SESSION['cot_messages'][Cot::$sys['site_id']]))    return false;

    if (empty($src))
    {
        foreach ($_SESSION['cot_messages'][Cot::$sys['site_id']] as $src => $grp)
        {
            foreach ($grp as $msg)
            {
                if ($msg['class'] == $class)
                {
                    return true;
                }
            }
        }
    }
    elseif (empty($class))
    {
        return count($_SESSION['cot_messages'][Cot::$sys['site_id']][$src]) > 0;
    }
    else
    {
        foreach ($_SESSION['cot_messages'][Cot::$sys['site_id']][$src] as $msg)
        {
            if ($msg['class'] == $class)
            {
                return true;
            }
        }
    }

    return false;
}

Параметры:

$src: Опциональный параметр, который указывает на источник сообщений (например, 'default', 'user', 'admin' и т.д.). Если параметр не указан или пуст, проверяются все сообщения.
$class: Опциональный параметр, который позволяет фильтровать сообщения по их классу (например, 'error', 'info', 'success' и т.д.). Если параметр не указан или пуст, проверяются все классы сообщений.

Логика работы:

Проверка на существование сообщений:

Функция сначала проверяет, есть ли в сессии сообщения для текущего сайта. Для этого проверяется, существует ли ключ $_SESSION['cot_messages'][Cot::$sys['site_id']].
Если сообщений нет, функция возвращает false.
Если не указаны параметры:

Если оба параметра $src и $class пусты, функция проверяет, есть ли сообщения для любого источника и класса. Также проверяется наличие глобальной переменной $error_string (ошибки), которая также может содержать сообщения. Если что-то найдено, функция возвращает true.
Если параметр $src не пуст:

Если $src указан, функция проверяет наличие сообщений для указанного источника. Если источник пуст, то функция будет проверять сообщения во всех группах источников.
Если параметр $class не пуст:

Если указаны оба параметра $src и $class, функция ищет сообщения, которые соответствуют и источнику, и классу. Если такие сообщения найдены, функция возвращает true.
Если не найдены подходящие сообщения:

Если ни одно из условий не выполнено, функция возвращает false.
Пример использования в контексте Cotonti:

Проверка наличия сообщений для конкретного источника и класса:

if (cot_check_messages('user', 'error')) {
    // Показать ошибку для пользователя
}


 


Проверка наличия любых сообщений:

if (cot_check_messages()) {
    // Показать сообщения (например, ошибки или уведомления)
}


Проверка сообщений только для определённого источника:

if (cot_check_messages('admin')) {
    // Показать сообщения для источника 'admin'
}


 


Функция полезна для отображения сообщений в интерфейсе в зависимости от источника и класса, а также для фильтрации ошибок или уведомлений в различных частях сайта.

$t = new XTemplate(cot_tplfile('polls'));

if (cot_check_messages()) {
    cot_display_messages($t);
}

фрагмент кода в контексте Cotonti фреймворка выполняет следующие действия:

1. Инициализация шаблона с помощью XTemplate:

$t = new XTemplate(cot_tplfile('polls'));


Здесь создаётся новый объект шаблона $t с использованием класса XTemplate.
Метод cot_tplfile('polls') генерирует путь к шаблону для модуля или страницы. В данном случае, вероятно, это путь к шаблону для модуля опросов (polls), так как 'polls' передаётся как параметр.
Этот объект $t используется для работы с шаблонами и заполнения их данными.


2. Проверка наличия сообщений:

if (cot_check_messages()) {


Функция cot_check_messages() проверяет, есть ли сообщения, которые нужно отобразить на странице.
Если сообщения присутствуют, то условие if выполняется, и далее будет вызвана функция для их отображения.

3. Отображение сообщений:

cot_display_messages($t);

В случае, если в предыдущем шаге сообщения найдены, вызывается функция cot_display_messages().
Эта функция отображает все сообщения (ошибки, уведомления и прочее) на странице.
Параметр $t (объект шаблона) передаётся в функцию для того, чтобы сообщения были правильно встроены в шаблон и отображены на веб-странице.


Итог:
Этот код создает шаблон для страницы опросов и проверяет, есть ли сообщения, которые нужно отобразить.
Если сообщения есть, они отображаются в соответствующем месте на странице, встраиваясь в шаблон.
Пример использования:

Когда на сайте пользователя выводятся опросы, и если на сайте есть ошибки или уведомления (например, неверный выбор пользователя), они могут быть показаны в верхней части страницы, используя cot_display_messages().
Шаблон для опросов будет обновляться с учётом этих сообщений.

4 минут чтения Administrator

Комментарии (0)

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

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 22.01.2025 01:44
  • Последнее обновление: 22.01.2025 01:45