Comments 38
UFO just landed and posted this here
Да, хорошие статьи. Работаю с Joomla/Joostina, но так же сейчас буду осваивать и Drupal.
Добавил в избранное себе, спасибо.
Добавил в избранное себе, спасибо.
Кстати, раз уж упоминаете ZEN, объясните простому нубу — почему бы просто ZEN и не использовать в качестве основы для своей темы? В чем принципиальное отличие вашего варианта? ZEN, как ни крути, уже законченное решение — кучу всего можно сделать вообще не трогая сами шаблоны, а тупо через CSS. Ну и вообще — работаешь с одной стороны не с совсем голым листом, а с другой — не надо ничего именно переделывать — только дополнять большей частью. Ну а это уж проблем не доставляет — це ж Друпал…
Давно делаю темы на ZEN. Надоело каждый раз вычищать лишние стили и другие «фишки» родительской темы. Наконец то добрался и сделал идеальный (для меня, конечно же) шаблон темы отвязанной от ZEN. Мне было необходимо выделить шапку с подвалом в отдельные шаблоны и обрабатывать отдельно каждый регион. К тому же, такая структура темы как у меня, мне кажется, более удобна и наглядна. Ну и плюс — не надо таскать с собой родительскую тему.
Мммм… А что именно вы там вычищаете? Там, по-моему, кроме меню и табов и вычищать-то нечего.
Опять же — может быть стоило в целях расширяемости и т.п. оформить вашу тему в качестве подтемы ZEN? Чтобы и все фишки ZEN остались и все, что вы пишите — про отдельные файлы и т.п.
Опять же — может быть стоило в целях расширяемости и т.п. оформить вашу тему в качестве подтемы ZEN? Чтобы и все фишки ZEN остались и все, что вы пишите — про отдельные файлы и т.п.
Тогда уж присмотреться к теме basic. Она является «вычищенным вариантом» zen, регулярно обновляется, уже есть RC для drupal7, поддерживает skinr и прочие приятности…
Осталось в себе креативность работы развить) остальное уже понятно
Забыли сказать как заставить Drupal увидел изменения в info для темы.
Хотя, о вариантах темизации в Drupal можно писать бесконечно, сколько разработчиков, столько и вариантов будет :).
Хотя, о вариантах темизации в Drupal можно писать бесконечно, сколько разработчиков, столько и вариантов будет :).
Впервые слышу про
header.tpl.php
header.tpl.php
забыли про очень важную переменную $closure.
Очень важная переменная $closure определяет регион под футером, если мне память не изменяет. У меня в теме её нет.
То есть данные, записываемые в неё, у вас нигде не выводятся или записываются в другую переменную?
Просто для примера, могу сказать, что если не сделать вывод $closure в page.tpl.php, то не будут работать как минимум два модуля: Administration menu и FCKeditor.
Просто для примера, могу сказать, что если не сделать вывод $closure в page.tpl.php, то не будут работать как минимум два модуля: Administration menu и FCKeditor.
admin_menu и ckeditor работают, не волнуйтесь =) Если хотите, добавьте $closure в page.tpl.php
Спасибо, исправлю. В $closure некоторые модули добавляют скрипты.
* — $closure: Final closing markup from any modules that have altered the page.
* This variable should always be output last, after all other dynamic content.
В том и минус малообкатанных тем, косяки в них вылазят с некоторыми модулями…
Я одно время игрался с генезисом, так там модуль аякс-комментариев не работал, в теме АТСК не хватало стандартный переменных и т.д…
В общем нафиг-нафиг, теперь только Zen, тем более его отвязать от родительской темы легче легкого, и css использовать можно только свои, без его зоопарка :)
Я одно время игрался с генезисом, так там модуль аякс-комментариев не работал, в теме АТСК не хватало стандартный переменных и т.д…
В общем нафиг-нафиг, теперь только Zen, тем более его отвязать от родительской темы легче легкого, и css использовать можно только свои, без его зоопарка :)
zen можно использовать еще вот так:
MYTHEME.info
theme-settings.php
в результате имеете дополнительные настройки темы от zen
MYTHEME.info
... base theme = zen ; Set the default settings to be used in theme-settings.php settings[zen_block_editing] = 1 settings[zen_breadcrumb] = yes settings[zen_breadcrumb_separator] = ' › ' settings[zen_breadcrumb_home] = 1 settings[zen_breadcrumb_trailing] = 1 settings[zen_breadcrumb_title] = 0 settings[zen_rebuild_registry] = 1 settings[zen_wireframes] = 0 ...
theme-settings.php
<?php // $Id: theme-settings.php,v 1.7 2008/09/11 09:36:50 johnalbin Exp $ // Include the definition of zen_settings() and zen_theme_get_default_settings(). include_once './' . drupal_get_path('theme', 'zen') . '/theme-settings.php'; /** * Implementation of THEMEHOOK_settings() function. * * @param $saved_settings * An array of saved settings for this theme. * @return * A form array. */ function MYTHEME_settings($saved_settings) { // Get the default values from the .info file. $defaults = zen_theme_get_default_settings('MYTHEME'); // Merge the saved variables and their default values. $settings = array_merge($defaults, $saved_settings); /* * Create the form using Forms API: http://api.drupal.org/api/6 */ $form = array(); /* -- Delete this line if you want to use this setting $form['MYTHEME_example'] = array( '#type' => 'checkbox', '#title' => t('Use this sample setting'), '#default_value' => $settings['MYTHEME_example'], '#description' => t("This option doesn't do anything; it's just an example."), ); // */ // Add the base theme's settings. $form += zen_settings($saved_settings, $defaults); // Remove some of the base theme's settings. unset($form['themedev']['zen_layout']); // We don't need to select the base stylesheet. // Return the form return $form; }
в результате имеете дополнительные настройки темы от zen
А что мешает дополнительные настройки для своей темы сделать?
если достаточно настроек от zen, то и велосипед изобретать не надо.
если надо добавить свои, то их очень просто добавить (см. $form['MYTHEME_example']).
если надо добавить свои, то их очень просто добавить (см. $form['MYTHEME_example']).
Я писал шаблон для создания тем в будущем. Мне половины стандартных настроек то не надо, не говоря уж о других. Вы можете использовать приведенный мной код на свой вкус. Повторюсь, я ставил цель не использовать родительские темы, я ставил цель сделать гибкую свою автономную тему. А что использовать — ваш выбор.
Есть достаточно хорошая книга на тему разработки тем :):
Drupal 6 Themes (Packt)
pdf'ник гуглится достаточно быстро.
Drupal 6 Themes (Packt)
pdf'ник гуглится достаточно быстро.
Отличный материал для начинающих, но ваш вариант темизации отказался работать. В частности те самые header и footer не отображают содержимое в шаблоне page.tpl.php. Возможно я делаю что то не так, хотя все достаточно очевидно. Может есть какие то особые параметры, которые необходимо задать?
Спасибо огромное за статью. Только есть один вопросец. Как можно вытащить картинки из той папки images, которую мы создали в sites/all/mytheme/images/?
есть шаблон для вывода определенного типа данных — в какую директорию его поместить что бы все темы его видели, надо для мультисайтовой инсталяции друпала
В header.tpl.php переменная $front_page — выдает адрес главной страницы, что бы определить главная или нет в preprocess-page.inc в переменных для шапки определил $is_front. Плюс для удобства определил $head_title,
$head, $styles, $scripts.
$head, $styles, $scripts.
Хороший пост. Может кто подскажет еще как вывести искомую строку. Не могу найти переменную. Количество результатов @count, а вот переменную самой стоки какую ищу не могу найти.
Sign up to leave a comment.
Создаём тему для Drupal. Часть 3