Написано, что для вывода конкретного типа материала необходимо в теме создать шаблон node-type.tpl.php
В шестой версии не работает.
Работает только node.tpl.php, то есть могу переопределить общий шаблон вывода
Кто нибудь знает как это делается в шестой версии?
Комментарии
У меня в 6-й это работает.
вопрос, вы создаете именно node-type.tpl.php или node-.tpl.php ?!
там темы отношение может типа zen
Я при помощи модуля cck создал новый тип clip, я создаю в каталоге темы node-clip.tpl.php, и друпал его не исполняет.
Тип отношения тем я не указывал
Может я неправильно настроил тему?
note-type.tpl.php означает, к прмеру для типа материала news node-news.tpl.php
>> Написано, что для вывода конкретного типа материала необходимо в теме создать шаблон node-type.tpl.php
Это отвечает процедура
/**
* Prepare the values passed to the theme_page function to be passed
* into a pluggable template engine. Uses the arg() function to
* generate a series of page template files suggestions based on the
* current path. If none are found, the default page.tpl.php is used.
*/
function phptemplate_page($content, $show_blocks = TRUE) {
Она определена в phptemplate.engine
И может быть переопрделена в template.php Вашей темы
Смотрите в нее
Такой процедуры phptemplate_page в phptemplate.engine нет, есть только в themes.inc
function template_preprocess_node(&$variables) {
.............................................
// Clean up name so there are no underscores.
$variables['template_files'][] = 'node-'. $node->type;
}
а для блоков
function template_preprocess_block(&$variables) {
.............................................
$variables['template_files'][] = 'block-'. $variables['block']->region;
$variables['template_files'][] = 'block-'. $variables['block']->module;
$variables['template_files'][] = 'block-'. $variables['block']->module .'-'. $variables['block']->delta;
}
Я в друпале не работал, что мне перейти на пятую версию?
В общем и вывод для блоков не работает, странно но для page.tpl.php всё работает
Ставьте туда
// Clean up name so there are no underscores.
// start
ob_start(); // Start output buffering
print_r($node);
$plain = ob_get_contents();
ob_end_clean(); // End buffering and discard
if ($handle = fopen($_SERVER['DOCUMENT_ROOT'] . base_path() . "node_".$node->type.".txt", 'w+')) {
fwrite($handle, $plain. "\n");
fclose($handle);
}
// end
$variables['template_files'][] = 'node-'. $node->type;
}
И посмотрите в корне сайта появятся файлы, после того как сходите на страницу материала - что там за тип
Да создаются файлы, в node_clip.txt правильный тип clip
Так и не заработала.
Код
print_r($node);
$plain = ob_get_contents();
ob_end_clean(); // End buffering and discard
Можно заменить на гораздо более простое решение:
Фак, у меня и в 5.1 не пашетПашет. Гарленд, собака, кривоват
у господина ech, полагаю, с кешом проблема?
Запутался окончательно и бесповоротно! Зато нашел эту тему, где может мне помогут...
Мне нужно было сделать дизайн отдельных групп
http://мойсайт/group/video и http://мойсайт/group/foto (+ впоследствии может быть пары групп), на при этом, чтобы дизайн обычных групп, например
http://мойсайт/group/sport или http://мойсайт/group/music был как и у всех остальных.
Я решил это созданием страниц page-group-foto.tpl.php, page-group-video.tpl.php, page-group.tpl.php
и прописыванием в tempates.php вот этого кода, который я нашел на одном из полезных сайтов для друпала
<?phpfunction phptemplate_preprocess_page(&$vars) {
if (module_exists('path')) {
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) {
$suggestions = array();
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$suggestions[] = $template_filename;
}
}
$vars['template_files'] = $suggestions;
}
}?>
Все заработало, но перестали корректно отображаться ранее созданные мною страницы page-node-edit.tpl.php и page-node-add.tpl.php они стали подчиняться почему-то страницам page-blog.tpl.php и page.tpl соответственно (((
как заставить по-другому или
1) отображать страницы групп, из соотв файлов
или
2) сделать так, чтобы в нынешней ситуации корректно работали страницы page-node-edit.tpl.php и page-node-add.tpl.php
тоже самое.
Проблема решилась, когда я из базовой темы Zen (я делаю тему на основе zen), скопировал файл node.tpl.php в папку своей темы. А файл node-type11.tpl.php (т.е. для страниц типа type11) тоже в папку своей темы.
Следовал указанию на странице http://drupal.org/node/17565 "NOTE: When using phptemplate node-[type].tpl.php suggestions, there must also be an original node.tpl.php template present in your theme directory or the template suggestion is ignored.
This is also the case for subthemes. Just copy the parent themes node.tpl.php into your subtheme folder and refresh the theme cache."
Всем учить английский! (это я про себя)
Можно поподробнее?
Тему писал не я, вроде бы на основе minnelly, темизация блоков срабатывает, а вот ноды ни как не темизируются...
А так будет работать (сильно не пинайте):
<?php if ($node->type=="имя_типа_ноды"): ?>
код шаблона
<?php else: ?>
в node.tpl.php?