Функция cot_selectbox_theme в Cotonti

Функция cot_selectbox_theme в контексте Cotonti CMF используется для создания выпадающего списка с темами и схемами для выбора пользователем. Она извлекает информацию о доступных темах и схемах с помощью функции cot_themes_info() и генерирует HTML для выпадающего списка.

Разбираем код функции cot_selectbox_theme

 


/**
 * Returns Theme/Scheme selection dropdown
 *
 * @param string $selected_theme Seleced theme
 * @param string $selected_scheme Seleced color scheme
 * @param string $title Dropdown name
 * @return string
 */
function cot_selectbox_theme($selected_theme, $selected_scheme, $input_name)
{
    $themes_info = cot_themes_info();

    $values = array();
    $titles = array();
    foreach ($themes_info as $name => $info) {
        if ($info) {
            $version = $info['Version'];
            $title = $info['Title'] . ($version ? " v$version" : '');
            if (sizeof($info['Schemes'])) {
                foreach ($info['Schemes'] as $sc_name => $sc_title) {
                    $values[] = $name . ':' . $sc_name;
                    $titles[] = count($info['Schemes']) > 1 ? $title . ' (' . $sc_title . ')' : $title;
                }
            } else {
                $values[] = "$name:default";
                $titles[] = $title;
            }
        }
    }

    return cot_selectbox("$selected_theme:$selected_scheme", $input_name, $values, $titles, false);
}


Давайте разберем каждый шаг функции:

Получение информации о темах:

$themes_info = cot_themes_info();

Сначала вызывается функция cot_themes_info(), которая возвращает массив с данными о всех доступных темах на сайте.

Формирование массивов значений и заголовков:

foreach ($themes_info as $name => $info) {
    // Для каждой темы создаются элементы в выпадающем списке
}

Далее, для каждой темы собираются значения ($values[]) и заголовки ($titles[]), которые будут использоваться в выпадающем списке.

Включая:

Значение: Это строка, состоящая из названия темы и схемы, например theme_name:scheme_name.
Заголовок: Это строка, которая отображается в выпадающем списке, например, Theme Title v1.0 (Blue).

Генерация выпадающего списка:

return cot_selectbox("$selected_theme:$selected_scheme", $input_name, $values, $titles, false);


Здесь вызывается функция cot_selectbox, которая генерирует HTML для выпадающего списка. Она принимает:

Текущее выбранное значение ($selected_theme:$selected_scheme).
Имя поля формы ($input_name).
Массив значений ($values).
Массив заголовков ($titles).
Флаг false, который указывает, что первый элемент не будет отображаться как "по умолчанию".


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

Пример 1: При установке PHP-фреймворка Cotonti

На этапе установки фреймворка можно вывести выпадающий список для выбора темы и схемы:

$t->assign(array(
    'INSTALL_THEME_SELECT' => cot_selectbox_theme($rtheme, $rscheme, 'theme'),
));


Здесь:

$rtheme — выбранная тема.
$rscheme — выбранная схема.
'theme' — имя поля формы.


Пример 2: При редактировании профиля пользователя
На странице редактирования профиля пользователя можно вывести выпадающий список для выбора темы и схемы пользователя:

$t->assign([
    'USERS_PROFILE_THEME' => cot_selectbox_theme($urr['user_theme'], $urr['user_scheme'], 'rusertheme'),
]);


Здесь:

$urr['user_theme'] — тема пользователя.
$urr['user_scheme'] — схема пользователя.
'rusertheme' — имя поля формы.

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

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

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

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

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

Administrator

Оффлайн

Administrator

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

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