Этот снипет темизирует page.tpl в зависимости от URL.
Если URL содержит europe то нужно создать page-europe.tpl.php
Для Drupal 6:
<?php
function phptemplate_preprocess_page(&$vars) {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$vars['template_files'][] = $template_filename;
}
}
}
}
?>
Комментарии
node-тип_материала.tpl.php
а мне нужно page или page нельзя?
ну пробуйте через page раз очень хочется, может что и получится
А вообще, вначале нужно пользоваться "Поиском" ибо это много-много раз обсуждалось.
поиск ничего не дал, я его сразу заюзал
нет, по дефолту можно только node-типматериала.tpl.php
с page можно делать page-NID.tpl.php, а тип материала - нет.
Ставил плагин custompage-6.x-1.12 но через него тоже не получилось сделать, даже непойму почему
Может лучше тогда попробывать темизировать page.tpl через термины таксономии? или можно только node.tpl ?
Надо просто в template.php сниппет небольшой накропать, чтобы учитывалась новая маска шаблона.
Этот снипет темизирует page.tpl в зависимости от URL.
Если URL содержит europe то нужно создать page-europe.tpl.php
<?php
function phptemplate_preprocess_page(&$vars) {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$vars['template_files'][] = $template_filename;
}
}
}
}
?>
это для drupal 6
Ух ты! Вот нужно было подгрузить страничку в iframe и очистить там от лишнего. А тут решение прям на ладони! Спасибо!
Как раз то, что нужно. Спасибо!
Если URL содержит не только europe, а к примеру, europe/portugal то page-europe.tpl.php уже не подключается
а как сделать темизацию главной страницы?
page-front.tpl.php
простите, недогуглил ^_^
а под семерку тот же самый функционал перепишите, плиз?
решилась проблема?
и в правду как переписать код под Drupal 7
Да код встудию
Drupal 7
function THEME_preprocess_page(&$variables) {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
foreach (explode('/', $alias) as $path_part) {
$variables['theme_hook_suggestions'][] = 'page__url__' . $path_part;
}
}
}
}
Для адреса europe/portugal получатся шаблоны вида page--url--europe.tpl.php и page--url--portugal.tpl.php.
По этому адресу сработает page--url--portugal.tpl.php, по адресу europe/gadukino — если шаблон page--url--gadukino.tpl.php не реализован, будет использоваться page--url--europe.tpl.php
Остальные нюансы не проверял.
У меня нечего не выходит. Я правильно понял этот код нужно вставить в template.php темы? В коде нужно заменить только THEME на свое название темы или еще что то нужно заменить? И работает это для синонимов???
Кеш скидывал, везде где можно.
Пытался вставлять в стандартную тему. То же без результативно.
Санно туда сюда потыкал все получилось. Но тут вопрос возник если у меня url /velo-blog то чем заменить дефис, с ним не работает.
на id материала
Дефис заменить на id материала??? О_О это как??? ))))
Или Вы имели ввиду сделать шаблон ноде? Но у меня там не нода а термин таксономии. Да и вообще хотелось именно к урлу привязываться а не терминам или нодам.
И еще заметил если ставишь не существующую страницу типа /velo/3dg83 то выдает стандартный шаблон, хотя /velo отображает с помощью переопределенного. Как быть в этом случае?
Попробовал данный код, чтото не работает((
Есть еще варианты, как для Drupal 7 сделать подобную функцию?