Я новичек в друпале, но хочется создать свою заготовку без всякой лишней херни. Основное для меня это создание своих регионов и правка css, в этом я разобрался и тему могу простую создать. Но смотря в другие темы, например zen, я вижу там есть два файла theme-settings.php и template.php для меня не совсем понятные. Я примерно слышал что там делается но заниматься этим не буду т.к. в программировании я никак, без них можно вполне обойтись как я понимаю. Остальное все понятно. Вот и возник вопрос: что конкретно по функционалу добавляют записи в этих файлах в теме zen, я хочу знать что я упущу если создам свою тему, а не подтему zen.
P.S. Я просто не хочу чтобы были непонятные для меня файлы. если выйдет новая линейка я спокойно обновлюсь и никаких ошибок не возникнет если я буду темизировать только на уровне css, а тут эти файлы с функциями, может понадобится их переделывать. Хочу узнать нужны ли мне эти файлы вообще.
Комментарии
Если хоть что-то понимаете на английском, то гляньте Theming Guide (по ссылке краткий обзор файлов темы, а также сравнение Drupal 6 и Drupal 7).
Если нет, тогда почитайте эту статью на habrahabr.ru, - не вполне внятно написано, но всё же лучше чем полное отсутствие инф-и.
«если выйдет новая линейка я спокойно обновлюсь и никаких ошибок не возникнет если я буду темизировать только на уровне css»
В том и отличие Drupal, что API у него меняется от версии к версии, так что тему будете по-любому перелопачивать на новый лад. Это вам не WP, но за то возможности очень большие.
Ничем, наоборот, вы точно будете знать, что именно у вас есть, а чего нет.
на хабре прочитал статью, но она еще больше запутала. Там человек пишет:
"В том и минус малообкатанных тем, косяки в них вылазят с некоторыми модулями…
Я одно время игрался с генезисом, так там модуль аякс-комментариев не работал, в теме АТСК не хватало стандартный переменных и т.д…"
Возникает вопрос, из-за чего модули не работают в определенной теме? Вот я предположим сделаю свою разметку дивами в файле page.tpl.php, свои регионы и css будет. Это все что я изменю создавая тему с нуля, могут ли у меня быть проблемы с модулями и обновлениями в таком случае?
Как вариант - использовать в теме нестандартные классы, типа mytheme-main, к которым цеплять свои стили, проследить за валидностью и тогда особых проблем с модулями не будет. Плюс ко всему будете точно знать что делали, а чего нет.
Не хватает знаний, поэтому все что непонятно назовем "лишней херней" и напишем свой "велосипед".
Использовать тему на базовом уровне без оверрайдов. Тогда всё будет работать
это как?
и все-таки хотелось бы услышать ответ - что добавляют по функционалу эти два файла в теме zen - theme-settings.php и template.php. Если я удалю их вообще, что я потеряю?
Так какие проблемы, загляни в код и посмотри, что там за функционал реализован. Тем более, что код там отлично продокументирован.
Не хочешь читать документацию, так обзови "лишней херней" и смело удаляй. Желательно на работающем сайте. )
Да по большому счету ничего вы не потеряете обычно в этих файлах дополнительные "плюшки", все же публичные темы пишутся с расчетом на "универсализм" и подстройку под себя. Другое дело, что бывает довольно сложно уложиться в задуманный дизайн без переопределения стандартного (от ядра друпала) вывода используя чисто свой шаблон + 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 - ну нам ни как не обойтись ... и таких примеров масса.
К чему это я чтобы полностью контролировать дизайн в друпале - придется все-же овладеть темизацией.
Но можно и не заморачиваться, но тогда придется ограничить себя в полете фантазии
удалять херню начинать с
<?php print phptemplate_body_class($left, $right); ?>
ну ладно всем спасибо, примерно понятно. olk отдельное спасибо, наглядный пример, заодно теперь знаю каким образом изменять ужасно выглядещее стандартное меню с точками.