Функция 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).
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 22.01.2025 14:39
- Последнее обновление: 22.01.2025 14:39