Хорошо, вот в чем дело: я создаю веб-сайт Drupal, который имеет несколько разных разделов. Каждый раздел представляет собой представление, отображающее тип контента. (Каждый раздел имеет свой собственный тип контента). Например, у меня есть представление, указывающее на ?q=blog
, которое отображает тип контента blog
.
Все разделы немного отличаются друг от друга. Не как «веб-сайт внутри веб-сайта», но достаточно разные, чтобы все они не могли использовать один и тот же файл шаблона, и каждый из них мог быть изменен с помощью CSS. Каждому разделу нужен свой page.tpl.php
.
К сожалению, файлы .info темы Drupal AFAIK могут либо назначать один page.tpl.php
для всей темы, либо назначать page-node-####.tpl.php
для каждого узла. На этом веб-сайте будет много контента, поэтому настройка Drupal для создания нового идентичного page-node-####.tpl.php
для каждого созданного узла очень быстро станет неуправляемой.
Чтобы решить эту проблему, я собираюсь использовать pathauto для создания псевдонима для каждого типа контента. Например, всем узлам с типом контента blog
присваивается псевдоним ?q=blog/[post title]
. Измените template.php
, чтобы использовать page-blog.tpl.php
для любой страницы, псевдоним которой начинается со слова «блог».
Другие люди пытались делать подобные вещи и создали функции, подобные описанной. К сожалению, все те, что я видел, предназначены для Drupal 6 или ниже. Я пытался изменить существующие, но безуспешно. Пока, однако, я думаю, что это на правильном пути:
function basic_preprocess_page(&$vars, $hook) {
...
if( module_exists('path') ) {
$alias = drupal_get_path_alias( $_GET['q'] );
$site_section = "blog";
if( strpos( $alias, $site_section ) === 0 ) {
$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE = "/path/to/page-blog.php";
}
}
}
Я не могу найти $VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE
кто-нибудь знает, что это такое?
Возможно, мой сайт плохо структурирован. Если кто-нибудь знает, как реструктурировать мой сайт, чтобы мне было легче сделать тему с отдельными разделами, поделитесь, пожалуйста, как!
Бесконечно благодарен! (c:
РЕДАКТИРОВАТЬ: Возможно, мне нужно вместо этого использовать предложения шаблонов. Кто-нибудь знает функцию или переменную для установки этого?