Темизация модуля Switchtheme

Главные вкладки

Аватар пользователя lex1991 lex1991 28 октября 2015 в 9:38

Всем доброго дня. Опыт не очень большой с друпалом. Делаю изменение темы по клику. Использую модуль "Switchtheme". Как его оптимизировать? Мне нужно вывести например просто названия тем для выбора, чтобы потом ими манипулировать. Нашел вот эту тему http://www.drupal.ru/node/124675 Но никак не могу применить ее под себя. Вот код оттуда

<?phpfunction switchtheme_select() {
  $options = array();
  foreach (switchtheme_options() as $name => $label) {
    $theme_title = variable_get('switchtheme_' . $name, $label);
    if ( $theme_title != $label && !empty($theme_title) ) {
       $options[$name] = $theme_title;
    }
  }
 
  asort($options);
  return $options;
}?>

Моя тема называется new и new1

Как должен выглядеть этот код для моей темы?

Комментарии

Аватар пользователя goodboy goodboy 28 октября 2015 в 9:56

Этот код исправляет ошибку в функции формирования списка тем, исправлено в dev-версии модуля. Для переключения тем модуль создает блок, в котором выводится форма для переключения тем. Мы скрывали форму и делали ссылку "Переключить на тему...", по клике на которую при помощи скрипта "выбиралась" нужная тема

Аватар пользователя lex1991 lex1991 28 октября 2015 в 10:07

Goodboy wrote:
Этот код исправляет ошибку в функции формирования списка тем, исправлено в dev-версии модуля. Для переключения тем модуль создает блок, в котором выводится форма для переключения тем. Мы скрывали форму и делали ссылку "Переключить на тему...", по клике на которую при помощи скрипта "выбиралась" нужная тема

Напишите пожалуйста как назвать функцию в template.php и просто вывести все доступные темы (их 2, new и new1)
Мне только это нужно, дальше допилю сам.

Аватар пользователя goodboy goodboy 28 октября 2015 в 11:00

lex1991 wrote:
Goodboy wrote:
Этот код исправляет ошибку в функции формирования списка тем, исправлено в dev-версии модуля. Для переключения тем модуль создает блок, в котором выводится форма для переключения тем. Мы скрывали форму и делали ссылку "Переключить на тему...", по клике на которую при помощи скрипта "выбиралась" нужная тема

Напишите пожалуйста как назвать функцию в template.php и просто вывести все доступные темы (их 2, new и new1)
Мне только это нужно, дальше допилю сам.

Чтобы получить список всех тем, используется функция list_themes(). Но в этом списке могут находиться темы, которые не нужны для переключения (как минимум, административные).
В модуле switchtheme в админке можно выбирать нужные темы (для ненужных оставляем пустым наименование). Функция switchtheme_select() выводит список нужных тем.
И list_themes() и switchtheme_select() возвращают массивы, которые необходимо обработать для вывода. Например, при помощи theme_item_list()

В модуле нет темизации, никакие функции переопределять не нужно, можно назвать функцию как угодно.

Аватар пользователя goodboy goodboy 28 октября 2015 в 12:03

lex1991 wrote:
Так должно быть?

<?php
function new_select()
{


?>


Для каждой темы не нужна своя функция. Можно получать список тем в виде массива ( key/name ), определять текущую тему (key) и исключать ее из массива.