УрокИндивидуальные настройки темы в Drupal 7. Темы друпал 7


Настройка тем в Drupal 7

Итак, в предыдущем уроке мы уже установили на нашем сайте новую тему оформления изменив тем самым его внешний вид.

Настройка тем оформления Drupal

Остановимся теперь подробнее на самой странице управления темами сайта и настройках, которыми мы можем воспользоваться из административной панели Drupal.

Обзор страницы оформление

Включенные темы

Drupal включенные темы

Зачем нужна галочка установить новую тему мы уже разобрались, теперь рассмотрим область с включенными темами. Здесь мы можем наблюдать 2 вида тем:

Отключенные темы

Отключенные темы Drupal

Далее на странице мы наблюдаем отключенные темы. Они не доступны ни для каких операций на сайте. Здесь отображаются все темы, которые мы только что установили, но еще не включили, или же которые просто были загружены в папку sites/all/themes.

Тема оформления административных страниц

В конце нашей страницы расположен функционал для управления оформлением административными страницами сайта.

Разделение внешнего вида для пользовательских и административных страниц сайта является одной из очень удобных особенностей Drupal. Именно тут мы можем выбрать которая из всех тем присутствующих на сайте будет отвечать за оформление страниц из административной панели сайта.

Административная тема Drupal

От себя хочу заметить, что стандартная тема Seven отлично справляется с этой задачей и изменять ее стоит лишь в том случае когда, к примеру, заказчик хочет более симпотичного оформления бекенда.

Чекбоксы же на этой странице как бы говорят сами за себя для чего они предназначены.

Настройки тем

Настройки тем Drupal

Нажав на настройки около включенных тем оформления мы попадем на вкладку настроек этой темы, нажав на настроки в подменю самой страницы, попадем на вкладку с настройками, которые применяются для всех тем сайта.

Впрочем, со страницы глобальных настроек мы всегда можем удобно переключиться на настройки любой интересной нам темы:

Глобальные настройки тем Drupal

Итак, к глобальным настройкам относится возможность включения/отключения вывода в теме отдельных элементов сайта.

Настройка фавикона Drupal

А также возможность выбора логотипа и фавикона сайта.

Переход между настройками тем Drupal

Перейдя на вкладку отдельной темы у нас появляется возможность настройки особенностей конкретной темы, в нашем случае в теме Blue Masters помимо основных настроек можно указать стоит ли отображать слайдер, если стоит, то как он должен быть настроен и есть возможность включения/отключения резинового дизайна для мобильных устройств.

Настройки конкретной темы Drupal

Если остались вопросы по работе с модулями и темами оформления сайта задавайте их в комментариях.

Оценок: 5 (средняя 5 из 5)

Понравилась статья? Расскажите о ней друзьям:

Курсы по Drupal (в открытом доступе)

Уровень сложности:

Начальный

Еще интересное

vaden-pro.ru

Модули и темы оформления в Drupal 7. Что это?

Drupal 7 не просто одна из популярнейших CMS в мире, это CMF, предоставляющая неограниченное количество возможностей для разработчиков, что стало не самым малым фактором в распространенности данной платформы.

Drupal модули и темы оформления

Одной из особенностей Drupal, которая позволила завоевать подобное положение в мире стала возможность расширять функционал ядра в зависимости от любой Вашей прихоти.

Модули

Модули и стали одной из основных возможностей по расширению функционала Drupal. Если говорить о ядре, то его можно сравнить с кузовом машины, всю остальную начинку мы или пишем сами или просто собираем при помощи модулей.

Чтобы Вы понимали размах потенциала для расширения системы, скажу лишь то, что количество модулей для Drupal 7 включает в себя десятки тысяч. Потому могу сказать лишь одно, после появления свежей идеи по улучшению сайта, не торопитесь писать модуль самостоятельно, сначала проверьте не написал ли его уже кто-то ранее за вас.

Почитать подробно о том как устанавливать и удалять модули, а так же где их в принципе можно достать можно в соответствующей статье курса.

На данном же этапе Вам достаточно просто знать что модули в Drupal используются для расширения и изменения функционала ядра сайта под свои нужды.

Располагаются модули с которыми мы работаем в папке sites/all/modules, папку же modules в корне сайта трогать не стоит, чтобы избежать сбоев в работе друпала.

Темы оформления

За внешний вид сайта отвечают темы оформления. Сам процесс изменения внешнего вида сайта под свои потребности называется темизацией сайта.

Любопытной особенностью является то, что в Drupal 7 разделено оформление обычных страниц сайта и административных. Так, мы можем проивольно менять оформление сайта не переживая о том, что нам еще придется поработать с страницами видимыми администратору. Подробнее мы это рассмотрим в соответствующих уроках курса.

В случаях работы с сайтами у которых нет регистрации пользователей это крайне удобно. При регистрации же пользователей и наличии ряда ролей с разными полномочиями мы всегда можем настроить что и для кого на сайте видно в правах доступа пользователей.

Работать следует с темами располагающимися в директории sites/all/themes. Как и с модулями мы можем как использовать в работе уже созданные кем либо темы скачанные с официального сайта, так и создавать свои под конкретные проекты. Второй подход предпочтительнее, но требует достаточного багажа знаний по темизации Drupal.

Хоть и стоит отметить, что тут ситуация проще чем с модулями. Тут вполне хватит знания HTML с CSS в сочетанием с парой особенностей друпала. В то время как для модулей нужно понимать как принципы работы системы в целом, так и свободно владеть PHP.

Версии модулей и тем

Попробовав скачать модуль или тему мы увидим следующую картину:

Drupal download

С первого взгляда все может показаться достаточно запутанно, но это только с первого взгляда.

Так, цифры в названии релиза означают версию под которую заточен данный модуль или тема.

В дате указано когда данный релиз был создан, а в загрузках нам предлагают выбрать подходящий нам вариант архива tar.gz или zip.

Единственное что может быть не понятно сразу это версии модуля или темы подсвеченные зеленоватым, желтоватым или красноватым цветом, хотя и тут все крайне логично:

Подводя итоги

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

Стоит учитывать, что во многом гибкость системы в Ваших руках во многом зависит от Вашего уровня знания Drupal. Так, выкручивая сайт модулями можно сказать что Вы работаете с глыбами камня, работая же с Drupal Api вы работаете с песком.

Оценок: 5 (средняя 5 из 5)

Понравилась статья? Расскажите о ней друзьям:

Курсы по Drupal (в открытом доступе)

Уровень сложности:

Начальный

Еще интересное

vaden-pro.ru

Индивидуальные настройки темы в Drupal 7

Как добавлять настройки в тему для Drupal 6 уже всем давно известно. Теперь поговорим о том, как это сделать для Drupal 7. Система этих настроек упростилась и стала более логичной и понятной. Итак, по порядку.

Первым шагом в корне темы надо создать файл theme-settings.php. В нём надо имплементировать хук, который изменяет форму с настройкой темы по умолчанию (да да, в седьмом Друпале в теме можно изменять формы при помощи alter хука!). Пример:

<?php   /** * Implements hook_form_FORM_ID_alter(). */ function ИМЯТЕМЫ_form_system_theme_settings_alter(&$form, &$form_state) { $form['foo_example'] = array( '#type' => 'textfield', '#title' => t('Widget'), '#default_value' => theme_get_setting('foo_example'), '#description' => t('Place this text in the widget spot on your site.'), ); }

Этот небольшой кусок кода добавляет к настройкам темы текстовое поле с заголовком Widget. Обращаю внимание на то, что ключ массива $form должен называться так же, как передаваемое значение в функцию theme_get_setting(). В нашем случае это foo_example.

Значение настроек по умолчанию

Если раньше их надо было генерировать в коде, а потом объединять с полученными, то теперь всё прозрачнее. Все настройки темы по умолчанию вынесены в info файл темы, в секцию settings. Для примера покажу файл garland.info из темы Garland:

name = Garland description = A multi-column theme which can be configured to modify colors and switch between fixed and fluid width layouts. package = Core version = VERSION core = 7.x   stylesheets[all][] = style.css stylesheets[print][] = print.css settings[garland_width] = fluid

В нашем случае (с foo_example) это смотрелось бы так:

settings[foo_example] = Любой текст или число

Использование настроек темы

Используются настройки просто - в любом месте вызовите функцию theme_get_setting() с нужным параметром. Пример:

/** * Implements template_preprocess_page() */ function ИМЯТЕМЫ_preprocess_page(&$vars) { $vars['foo_bar'] = theme_get_setting('foo_example'); }

После выполнения этих действий у вас в page.tpl.php появится переменная $foo_bar, которую можно будет менять в настройках темы по адресу admin/appearance/settings/ИМЯТЕМЫ.

drupalace.ru

Базовые темы для drupal 7. Набор продвинутого ара-тюнинга.

Подскажите базовые темы для Drupal 7. Пожелания (не обязательно, чтобы все выполнялось):1. Несколько цветовых прессетов и без модуля color.2. В админке должны указываться ширина листа в px и % + мин и макс ширина (при резиновости).3. Адаптивность. Новомодная фишка - многим нада.

Конечно же я могу эти вещи прописать ручками и субтему определить. Но часто надо работать с людьми. Критика методов приветствуется.

Для себя выбрал следующие:

[theme=mix_and_match] + [theme=fusion]. Для D6 была во многом идеальна. Особенно что касается выставления цветов для блоков и ссылок мышкой. Резиновость допиливалась легким кодингом. В D7 цветастость, обеспеченная skinr страшно глючила. К тому же fusion перестал обновляться, а мелкие баги есть.

[theme=mix_and_match] + [theme=adaptivetheme] Все равно легкая забагованность присутствует. Например в хлебных крошках. Лучше бы делали отдельный проект, а не меняли движок. Пока "С надеждами на выздоровление".

[theme=adaptivetheme] + ?. Сама adaptivetheme радует. В админке adaptivetheme хотелось бы больше вариантов расстановки колонок при адаптивном дизайне, а также отключений выводов аддаптивного дизайна (сейчас их 4-5: Standard, Tablet, Portrait tablet, Landscape smartphone, Portrait smartphone).Но вот нормальных субтем к AT увы не вижу. [theme=Sky], [theme=Corolla] используют модуль color для цветастости - это неудобно. И в "шапках" у них все слишком кастомно сделано - для базового шаблона не подходят.

[theme=zen] 7.x-3.x + [theme=cti_flex]. Можно указать расцветку темы. Ширина листа и боковушек приписывается в CSS, но надо знать математику :). Если адаптивность не нужна - хороший вариант. И это ж Zen!

Под вопросом

[theme=fusion] 7.x + [module=fusion_accelerator] Теоретически идеальный вариант. С помощью замечательного модуля можно добавлять выводы для разных мобильных устройств и (в отличии от adaptivetheme) столько выводов сколько нужно для сайта. Практически все очень глючно. Жду, что авторы fusion возобновят работу над темой.

Не понравились:

[theme=mayo] - цветовые прессеты ниче. Хотя и с модулем color. Понравилось: ширину страницы указать можно. Не понравилось: Расстановка элементов в шапке из админки. Если добавить в шапку еще-что-то придется помучится.

Пока не знаю что писать про

[theme=zen] 7.x-5.x + ?[theme=omega] + ?Нет субтемы, которую можно поставить вместо вопросительных знаков.

drupal.ru

Подробнее о функциях theme_* в Drupal 7

Сегодня мы чуть подробнее разберем функции theme в Drupal 7, а именно, я вам расскажу, где они нам могут пригодиться и как с ними работать в дальнейшем. В большинстве своем функции theme, предназначены для формирования HTML разметки для каких-либо элементов сайта, - это может быть таблица, списки, изображения и многое другое.

Список функций, которые будет рассматривать:

theme_item_list

Данная функция возвращает HTML разметку для списков и вложенных списков.

  1. theme_item_list($variables)

где,

Пример использования theme_item_list
  1. <?php

  2. $items = array('item 1', 'item 2', 'item 3'); // Массив с элементами списка
  3. $title = 'Theme Item List Example'; // Заголовок списка

  4. $type = 'ol'; // Тип списка

  5. $attributes = array( // Атрибуты списка
  6. 'class' => 'newclass',

  7. );

  8. print theme_item_list(array('items' => $items, 'title' => $title, 'type' => $type, 'attributes' => $attributes));
theme_disable

Данная функция отключает шаблон (тему) на вашем сайте. В качестве значения принимает массив с именами шаблонов, которые должны быть отключены.

  1. theme_disable($theme_list)

Пример использования theme_disable
  1. <?php

  2. $theme_list = array('garland');
  3. theme_disable($theme_list);

theme_enable

Данная функция противоположна функции theme_disable, - включает шаблон (тему) на вашем сайте. В качестве значения принимает массив с именами шаблонов, которые должны быть включены.

  1. theme_enable($theme_list)

Пример использования theme_ enable
  1. <?php

  2. $theme_list = array('garland');
  3. theme_enable($theme_list);

theme_feed_icon

Возвращает HTML разметку для РСС подписки. В качестве значения принимает массив

  1. theme_feed_icon($variables)

где,

Пример использования theme_feed_icon
  1. <?php

  2. $variables['url'] = ''; // Путь до изображения

  3. $variables['title'] = 'New Feed Title'; // Tille подписки

  4. print theme_feed_icon($variables);

theme_get_registry

Данная функция формируем массив реестра тем на вашем сайте.

  1. theme_get_registry($complete = TRUE)

где,

Пример использования theme_get_registry
  1. <?php

  2. $registry = theme_get_registry($complete = TRUE);

theme_get_setting

Получает какое-либо значение текущей темы, а так же глобальные настройки тем. Это может быть текст, число или булевское значение. В качестве значений принимает имя настройки, и в качестве необязательного параметра название темы

  1. theme_get_setting($setting_name, $theme = NULL)

где,

Пример использования theme_get_setting
  1. <?php

  2. $settheme = theme_get_setting('logo');

theme_html_tag

Возвращает HTML разметку для HTML тега с указанными атрибутами.

  1. theme_html_tag($variables)

где,

Пример использования theme_html_tag
  1. <?php

  2. $variables['element']['#tag'] = 'h5'; // Тег, для которогог будет создана разметка

  3. $variables['element']['#attributes'] = array('class' => array('strongclass')); // Класс CSS для тега
  4. $variables['element']['#value'] = 'Text Strong'; // Текст (значение) внутри тега

  5. $variables['element']['#value_prefix'] = '<div>Текст, до элемента</div>'; // Префикс перед текстом

  6. $variables['element']['#value_suffix'] = '<div>Текст, после элемента</div>'; // Суффикс после текста

  7.  

  8. print theme_html_tag($variables);

theme_image

Возвращает HTML разметку для изображения. В качестве значения принимает массив

где,

Пример использования theme_image
  1. <?php

  2. 'path' => 'img/img.jpg', // Путь до изображения

  3. 'width' => 359, // Ширина изображения

  4. 'height' => 224, // Высота изображения

  5. 'alt' => 'Test Image', // Alt

  6. 'title' => 'Test Image', // Title

  7. 'attributes' => array( // Атрибуты, например класс CSS
  8. 'class' => array('class_image'),
  9. 'data-img' => 1,

  10. ),

  11. );

  12.  

  13. print theme_image($variables);

theme_indentation

Возвращает HTML с отступом DIV. В качестве значения принимает массив

  1. theme_indentation($variables)

где,

Пример использования theme_indentation
  1. <?php

  2. 'size' => 10,

  3. );

  4. print theme_indentation($variables);

theme_breadcrumb

Возвращает HTML хлебных крошек. В качестве значения принимает массив

  1. theme_breadcrumb($variables)

где,

Пример использования theme_breadcrumb
  1. <?php

  2. $variables['breadcrumb'] = array(
  3. 0 => '<a href="#" title="Home">Home</a>',

  4. 1 => '<a href="#" title="Link">Link</a>',

  5. 2 => 'More Link',

  6. );

  7. print theme_breadcrumb($variables);

theme_link

Возвращает HTML разметку для ссылки. В качестве значения принимает массив

где,

Пример использования theme_link
  1. <?php

  2. 'path' => 'http://home.ru', // href ссылки

  3. 'text' => 'Link to front page', // текст ссылки

  4. 'attributes' => array('class' => array('linkclass'), 'id' => 'linkid'), // атрибуты ссылки
  5. 'html' => FALSE,

  6. ),

  7. );

  8. print theme_link($variables);

theme_links

Возвращает HTML разметку для списка ссылок. В качестве значения принимает массив

где,

Пример использования theme_links
  1. <?php

  2. $variables['links'] = array(
  3. 'title' => 'Link 1', // Текст ссылки

  4. 'href' => 'http://drupalfly.ru', // Адрес ссылки

  5. 'html' => TRUE, // Если TRUE, то ссылка будет пропущена через check_plain

  6. 'attributes' => array( // Атрибуты ссылки
  7. 'class' => array('linkone'),
  8. ),

  9. ),

  10. 'title' => 'Link 2',

  11. 'href' => 'http://drupalfly.ru',

  12. 'html' => TRUE,

  13. 'class' => array('linktwo'),
  14. ),

  15. ),

  16. );

  17.  

  18. $variables['attributes'] = array('class' => array('parentclass')); // Атрибуты для списка
  19. $variables['heading'] = array( // Формирование заголовка для списка ссылок
  20. 'text' => 'One more', // Текст заголовка

  21. 'level' => 'h3', // Тег для обрамления заголовка

  22. 'class' => 'One more class', // Класс CSS заголовка

  23. );

  24.  

  25. print theme_links($variables)

theme_mark

Возвращает HTML маркер для нового или обновленного контента. В качестве значения принимает массив,

где,

theme_more_help_link

Возвращает разметку HTML ссылки, для получения справочной информации

  1. theme_more_help_link($variables)

где,

Пример использования theme_more_help_link
  1. <?php

  2. $variables['url'] = 'http://drupalfly.ru';

  3. print theme_more_help_link($variables);

theme_more_link

Возвращает разметку HTML ссылки, которая используется в блоках и нодах (more). В качестве значения принимает массив

  1. theme_more_link($variables)

где,

Пример использования theme_more_link
  1. <?php

  2. 'url' => 'http://drupalfly.ru',

  3. 'title' => t('Читать дальше'),

  4. );

  5. print theme_more_link($variables);

theme_progress_bar

Возвращает HTML разметку прогресс бара. Её вы можете наблюдать при использовании пакетной обработки Batch. В качестве значений принимает массив

  1. theme_progress_bar($variables)

где,

Пример использования theme_progress_bar
  1. <?php

  2. 'percent' => 50,

  3. 'message' => 'Идет процесс обработки',

  4. );

  5. print theme_progress_bar($variables);

theme_status_messages

Возвращает разметку HTML сообщений на сайте. Вызывается в связке с drupal_set_message()

theme_table

Возвращает HTML разметку таблицы. В качестве значений принимает массив,

где,

Пример использования theme_table
  1. <?php

  2. 'class' => array('funky'),
  3. 'align' => 'center',

  4. ),

  5. ),

  6. );

  7.  

  8. 'header' => array( // заголовки колонок таблицы
  9. 0 => 'Title',

  10. 1 => 'Description',

  11. ),

  12. 'rows' => array( // поля таблицы
  13. 0 => array('Row Title 1', 'Row Description 1'),
  14. 0 => 'Row Title 2',

  15. 'data' => 'Row Description 2',

  16. 'class' => array('newrow'), // аттрибуты для конкретного поля
  17. ),

  18. ),

  19. ),

  20. ),

  21. 'class' => array('newtable'), // атрибуты таблицы
  22. ),

  23. 'caption' => 'Example table', // текст для caption

  24. 'colgroups' => $colgroup, // параметры для тега colgroups

  25. 'sticky' => FALSE, // булевское значение, определяет фиксирование заголовков таблицы (thead) при прокрутке

  26. 'empty' => 'Таблица пуста', // текст, который будет отображаться при пустых полях таблицы

  27. );

  28.  

  29. print theme_table($variables);

theme_tablesort_indicator

Возвращает HTML разметку для иконки сортировки. В качестве значений принимает массив,

  1. theme_tablesort_indicator($variables)

где,

Пример использования theme_tablesort_indicator
  1. <?php

  2. $variables['style'] = 'asc';

  3. print theme_tablesort_indicator($variables);

theme_username

Возвращает HTML разметку пользователя. В качестве значений принимает массив,

  1. theme_username($variables)

где,

Пример использования theme_username
  1. <?php

  2. global $user;

  3.  

  4. 'account' => $user, // Объект пользователя

  5. 'name' => 'Pantey ', // Имя пользователя

  6. 'link_path' => 'http://drupalfly.ru', // Адрес ссылки

  7. 'link_options' => array('attributes' => array('class' => 'userclass_link')), // Атрибуты ссылки
  8. 'extra' => '(admin)', // Экстра для текста ссылки

  9. 'attributes_array' => array( // Атрибуты, если адрес ссылки не существует
  10. 'class' => array('userclass')
  11. ),

  12. );

  13. print theme_username($variables);

theme

Данная функция на основе переданного ей значения, сканирует реестр тем и направляет его в соответствующую функцию тем. В качестве значения принимает название темы и массив со значениями,

  1. theme($hook, $variables = array())

где,

Пример использования theme
  1. <?php

  2. $items = array('item 1', 'item 2', 'item 3');
  3. print theme('item_list', array('items' => $items));

Хочу заметить, что данную функцию не рекомендуется использовать в ее чистом виде. Вместо нее следует использовать drupal_render

Так пример использования функций темизации примет следующий вид:

  1. <?php

  2. $items = array('item 1', 'item 2', 'item 3');
  3. '#theme' => 'item_list',

  4. '#items' => $items,

  5. '#type' => 'ul',

  6. '#title' => 'Item List Example',

  7. );

  8.  

  9. print drupal_render($build);

drupalfly.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта