Функция 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().
Шаблон для опросов будет обновляться с учётом этих сообщений.
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 22.01.2025 01:44
- Последнее обновление: 22.01.2025 01:45