Оригинал статьи на drupal.org.
Для оформления содержимого документов (node) используется файл шаблона node.tpl.php. Это общий файл шаблона для всех типов контента.
Тем не менее, часто возникает необходимость создать другой, отличный от стандартного, шаблон для определенного типа содержимого - к примеру, записи в блог или ветки форума.
Друпал позволяет сделать это - просто создайте файл с определенным именем в каталоге темы.
Формат имени - node-ТИП_КОНТЕНТА.tpl.php.
К примеру, для создания шаблона записи в блог создайте файл node-blog.tpl.php, для сообщения форума - node-forum.tpl.php - и так далее.
Друпал будет использовать эти файлы шаблонов вместо “стандартного” node.tpl.php.
Обратите внимание, что эта система работает для всех типов контента, и даже тех, которые вы добавили сами.
Примечание: это не касается типов контента, созданных с помощью модуля flexinode - там своя логика (см. статью по темизации flexinode на drupal.org).
Важные примечания:
* node-admin.tpl.php не сработает
* в новых шаблонах доступны все переменные и поля объекта $node, обычно доступные в стандартном шаблоне (и плюс те, что добавил автор нового типа контента)
Примечание "переводчика" - это простой перевод-компиляция статьи документации. Сложности с flexinode и CCK оставим на будущие статьи
Комментарии
Мне кажется, что уместнее, внятнее и по-русски переводить не "темизация", а "изменение оформления" (или "смена/замена оформления").
Поправил, спасибо
заодно и контент поменяй на что-нибудь русское, да и файл слово не русское
а блог это ведь всего лишь интерактивный онлайн дневник
Шучу ;), но вкаждой шутке есть доля шутки
а как переводить themeable functions?
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Наверное, зависит от контекста. В какой фразе?
Если в смысле "функции, управляющие оформлением темы", то, имхо, что-нибудь вроде "функции оформления" или "оформительские функции". Или там имеется в виду "функции, зависящие от вывода темы оформления", "определяемые выводом темы"? Тогда, наверное, "оформленные темой функции".
а как переводить themeable functions?
Наверное, зависит от контекста. В какой фразе?
Контекст здесь жесткий и однозначный - это функции, которые в своей работе формируют html-код, который выводится непосредственно в браузер пользователя.
А "themeable" они потому, что эти функции можно "перекрыть" своими вариантами, без правки ядра, с помощью "hook"-системы, и "нарисовать" в них свой вариант конечного html-кода, который будет выведен в браузер.
Т.е., к примеру, можно просто взять функцию, которая формирует вид профиля пользователя - theme_user_profile(). "Распотрошить" ее и сделать свой вид профиля, расположив html-теги по своему, что-то добавив, что-то убрав, и задав свои имена классов, и т.д. А "перекрытой" она будет потому, что мы будет править не саму функцию theme_user_profile(), которая расположена в коде ядра Друпала, а создадим в файле template.php нашей темы эту функцию, с именем ИМЯНАШЕЙТЕМЫ_user_profile(). Теперь Друпал будет использовать нашу функцию для генерации html-кода при отображении профиля пользователя, а не стандартную, из ядра.
p.s. У меня нет идей, как перевести "themeable function" Из ваших идей пока нравится вариант "оформительские функции" или "функции оформления", в своей локальной вики для рабочей документации я даже использовал эти варианты несколько раз, сами "вылезли"
жаль, что на друпал.ру нет нормального механизма добавления нужных тем в закладки. приходится отписываться, чтобы просто не потерять интересный материал...
Если складывать локально, то советую Firefox + Scrapbook
А на друпал.ру... Можно в вики запихать эту серию по phptemplate, но мне пока реально некогда. Если кто-нибудь это сделает, с меня виртуальное пиво и реальная благодарность
всем привет,
обратил внимание что статья применима к drupal 5, но я еще использую 4.7 .
описанная возможность точно не будет работать под 4.7?
В статье на drupal.org, которую я переводил, указаны версии 4.6 и 4.7. Попробуйте, может сработает - просто у меня сейчас нет возможности проверить, к сожалению.
Работает, я уже это использовал на 5-ке. К сожалению, хозяин сайта тянет с заполнением материалом, поэтому не покажу окончательную версию -
смотрите заготовку: http://black.rezona.net/tdksm/taxonomy/term/ - для каждого типа товара сделан свой node-typeX.tpl.php
Посмотрел, клево
А вот мне всегда интересно было, как люди решают импорт всяких прайсов и каталогов в Друпал. XML? Руками? "Полуавтомат" какого-либо рода?
В моем случае только руками и даже не секретарши, поэтому проект затянулся, впрочем со мной рассчитались и капает за поддержку хостинга
Но, если бы список имен файлов и текстов был-бы в csv (который получается экспортом из экселя или подобных прог) можно было бы и всосать... Достаточно положить один товар и посмотреть куда ложатся записи. Далее пишется SQL на INSERT и обрабатывается этот файл.
Опять-же в моем случае это не эффективно (нет такой таблицы) - пусть уж сразу заполняют базу - а для чего тогда админка?!