Чем я рискую создавая свою тему?

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

Аватар пользователя igigo igigo 4 июля 2011 в 16:51

Я новичек в друпале, но хочется создать свою заготовку без всякой лишней херни. Основное для меня это создание своих регионов и правка css, в этом я разобрался и тему могу простую создать. Но смотря в другие темы, например zen, я вижу там есть два файла theme-settings.php и template.php для меня не совсем понятные. Я примерно слышал что там делается но заниматься этим не буду т.к. в программировании я никак, без них можно вполне обойтись как я понимаю. Остальное все понятно. Вот и возник вопрос: что конкретно по функционалу добавляют записи в этих файлах в теме zen, я хочу знать что я упущу если создам свою тему, а не подтему zen.

P.S. Я просто не хочу чтобы были непонятные для меня файлы. если выйдет новая линейка я спокойно обновлюсь и никаких ошибок не возникнет если я буду темизировать только на уровне css, а тут эти файлы с функциями, может понадобится их переделывать. Хочу узнать нужны ли мне эти файлы вообще.

Комментарии

Аватар пользователя Alexei91 Alexei91 4 июля 2011 в 17:46

Если хоть что-то понимаете на английском, то гляньте Theming Guide (по ссылке краткий обзор файлов темы, а также сравнение Drupal 6 и Drupal 7).

Если нет, тогда почитайте эту статью на habrahabr.ru, - не вполне внятно написано, но всё же лучше чем полное отсутствие инф-и.

«если выйдет новая линейка я спокойно обновлюсь и никаких ошибок не возникнет если я буду темизировать только на уровне css»

В том и отличие Drupal, что API у него меняется от версии к версии, так что тему будете по-любому перелопачивать на новый лад. Это вам не WP, но за то возможности очень большие.

Аватар пользователя igigo igigo 4 июля 2011 в 19:09

на хабре прочитал статью, но она еще больше запутала. Там человек пишет:
"В том и минус малообкатанных тем, косяки в них вылазят с некоторыми модулями…

Я одно время игрался с генезисом, так там модуль аякс-комментариев не работал, в теме АТСК не хватало стандартный переменных и т.д…"

Возникает вопрос, из-за чего модули не работают в определенной теме? Вот я предположим сделаю свою разметку дивами в файле page.tpl.php, свои регионы и css будет. Это все что я изменю создавая тему с нуля, могут ли у меня быть проблемы с модулями и обновлениями в таком случае?

Аватар пользователя gorr gorr 4 июля 2011 в 23:43

"igigo" wrote:
Возникает вопрос, из-за чего модули не работают в определенной теме? Вот я предположим сделаю свою разметку дивами в файле page.tpl.php, свои регионы и css будет. Это все что я изменю создавая тему с нуля, могут ли у меня быть проблемы с модулями и обновлениями в таком случае?

Как вариант - использовать в теме нестандартные классы, типа mytheme-main, к которым цеплять свои стили, проследить за валидностью и тогда особых проблем с модулями не будет. Плюс ко всему будете точно знать что делали, а чего нет.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 5 июля 2011 в 0:02

igigo wrote:
Я новичек в друпале, но хочется создать свою заготовку без всякой лишней херни...

Не хватает знаний, поэтому все что непонятно назовем "лишней херней" и напишем свой "велосипед".

Аватар пользователя igigo igigo 5 июля 2011 в 5:40

и все-таки хотелось бы услышать ответ - что добавляют по функционалу эти два файла в теме zen - theme-settings.php и template.php. Если я удалю их вообще, что я потеряю?

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 5 июля 2011 в 10:52

igigo wrote:
и все-таки хотелось бы услышать ответ - что добавляют по функционалу эти два файла в теме zen - theme-settings.php и template.php. Если я удалю их вообще, что я потеряю?

Так какие проблемы, загляни в код и посмотри, что там за функционал реализован. Тем более, что код там отлично продокументирован.

Не хочешь читать документацию, так обзови "лишней херней" и смело удаляй. Желательно на работающем сайте. )

Аватар пользователя olk olk 5 июля 2011 в 8:31

"igigo" wrote:
и все-таки хотелось бы услышать ответ - что добавляют по функционалу эти два файла в теме zen - theme-settings.php и template.php. Если я удалю их вообще, что я потеряю?

Да по большому счету ничего вы не потеряете Smile обычно в этих файлах дополнительные "плюшки", все же публичные темы пишутся с расчетом на "универсализм" и подстройку под себя. Другое дело, что бывает довольно сложно уложиться в задуманный дизайн без переопределения стандартного (от ядра друпала) вывода используя чисто свой шаблон + css.
Что бы было понятней приведу пример:
Вывод элемента меню:


<?php
function theme_menu_link(array $variables) {
  
$element $variables['element'];
  
$sub_menu '';

  if (

$element['#below']) {
    
$sub_menu drupal_render($element['#below']);
  }
  
$output l($element['#title'], $element['#href'], $element['#localized_options']);
  return 
'<li' drupal_attributes($element['#attributes']) . '>' $output $sub_menu "</li>\n";
}
?>

как видно - в результате получаем конструкцию <li class="bla-bla"><a href=....> ссылка </a></li>
если нам например надо сделать в виде кнопки то обычно применяют конструкцию вида
<li class="bla-bla"><a href=....><span class="l"></span><span class="r"></span><span class="t"> ссылка </span></a></li>
т.е. в данном случае без переопределения menu_link - ну нам ни как не обойтись ... и таких примеров масса.

К чему это я Smile чтобы полностью контролировать дизайн в друпале - придется все-же овладеть темизацией.
Но можно и не заморачиваться, но тогда придется ограничить себя в полете фантазии Smile

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 5 июля 2011 в 11:29

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
Не хочешь читать документацию, так обзови "лишней херней" и смело удаляй. Желательно на работающем сайте.

удалять херню начинать с <?php print phptemplate_body_class($left, $right); ?>

Аватар пользователя igigo igigo 5 июля 2011 в 13:35

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