Функция cot_schemefile в Cotonti

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

/**
 * Returns path to a CSS file for user selected color scheme.
 * The default search order is:
 * 1) css subfolder of user selected theme
 * 2) Main folder of user selected theme
 *
 * @return ?string Filename with full path to CSS file or NULL if not found
 */
function cot_schemeFile()
{
    // Class Cot can be not initialised yet
    global $cfg, $usr;

    $scheme = isset($usr['scheme']) ? $usr['scheme'] : $cfg['defaultscheme'];
    $theme = isset($usr['theme']) ? $usr['theme'] : $cfg['defaulttheme'];

    $schemeCss = [];
    $schemeCss[] = $cfg['themes_dir'] . '/' . $theme . '/css/' . $scheme . '.css';
    $schemeCss[] = $cfg['themes_dir'] . '/' . $theme . '/' . $scheme . '.css';

    foreach ($schemeCss as $filename) {
        if (is_file($filename)) {
            return $filename;
        }
    }

    return null;
}

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

Вот подробный разбор её работы:

1. Подготовка данных

global $cfg, $usr;
$scheme = isset($usr['scheme']) ? $usr['scheme'] : $cfg['defaultscheme'];
$theme = isset($usr['theme']) ? $usr['theme'] : $cfg['defaulttheme'];


$usr — массив, содержащий данные текущего пользователя.

Если пользователь выбрал собственную цветовую схему ($usr['scheme']), она будет использована.
Если пользователь не выбрал схему, то используется схема по умолчанию из конфигурации сайта ($cfg['defaultscheme']).
Аналогично обрабатывается выбор темы оформления ($usr['theme']).


2. Формирование путей к CSS-файлам
 

$schemeCss = [];
$schemeCss[] = $cfg['themes_dir'] . '/' . $theme . '/css/' . $scheme . '.css';
$schemeCss[] = $cfg['themes_dir'] . '/' . $theme . '/' . $scheme . '.css';

В массив $schemeCss добавляются возможные пути к CSS-файлу:
Файл в папке css внутри текущей темы (themes/[theme]/css/[scheme].css).
Файл в корневой папке темы (themes/[theme]/[scheme].css).


3. Поиск CSS-файла

foreach ($schemeCss as $filename) {
    if (is_file($filename)) {
        return $filename;
    }
}


Перебираются все сформированные пути.
Функция is_file() проверяет, существует ли файл по указанному пути.
Как только файл найден, его полный путь возвращается.

4. Результат

return null;


Если ни один из путей не соответствует реальному файлу, функция возвращает null.
Назначение функции
Функция позволяет динамически определять путь к CSS-файлу, соответствующему выбранной цветовой схеме. Это полезно для:

Поддержки кастомизации — разные пользователи могут видеть сайт в разных цветах.
Гибкости тем — разработчики тем могут размещать схемы как в папке css, так и в корне темы.


Пример использования в Cotonti
 
 

$cssFile = cot_schemeFile();
if ($cssFile) {
    echo '<link rel="stylesheet" href="' . $cssFile . '">';
}


Здесь проверяется, удалось ли найти CSS-файл.


Если файл найден, он подключается к странице с помощью HTML-тега <link>.
Функция упрощает управление стилями и делает систему тем Cotonti удобной и гибкой.

Порядок поиска:
В папке css, которая находится внутри папки текущей темы (themes/[theme]/css/[scheme].css).
В корневой папке текущей темы (themes/[theme]/[scheme].css).

 

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

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

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

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

Administrator

Оффлайн

Administrator

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

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