Темизация отдельного типа нод

Главные вкладки

Аватар пользователя routedseo routedseo 13 ноября 2011 в 0:18

Здравствуйте!

Возник вопрос по темизации.

Есть определенный тип нод.
Нужно, чтобы внутри этих нод менялся дизайн сайта вообще, то есть убиралась не нужная графика и прочее.

Я знаю, что можно темизировать страницы, но как темизировать ноду, но чтобы менялся дизайн в целом?

Заранее спасибо

Комментарии

Аватар пользователя routedseo routedseo 13 ноября 2011 в 0:38

В node-тип.tpl содержится только внутренности этой ноды, то есть контент, но не каркас сайта, который необходимо изменить

Аватар пользователя Айдар Айдар 13 ноября 2011 в 1:29

В page.tpl.php

<?php
$nodetype
=$node->type;
 if (
$nodetype=='bla-bla'):
// Тут содержимое для типа материала bla-bla
else:
// Тут для остальных типов
endif;
?>
Аватар пользователя routedseo routedseo 13 ноября 2011 в 1:35

Спасибо

Но вроде немного не то я сделал

Parse error: syntax error, unexpected '<' in /var/www/siteru/sites/all/themes/ruutart/page.tpl.php on line 20

Проблема со скобочками? Их как то экранировать нужно?

Аватар пользователя routedseo routedseo 13 ноября 2011 в 1:39

У меня идет следующий код:

<?php
$nodetype
=$node->type;
 if (
$nodetype=='portfolio'):
 <
div id="wrapper">
    <
div id="container" class="clear-block">?>

и т.д.

Ругается на строчку с

 <div id="wrapper">

Аватар пользователя routedseo routedseo 13 ноября 2011 в 1:58

Иными словами нужно написать следующее:

<?php
$nodetype=$node->type;
if ($nodetype=='portfolio'):
print
'

?>'
else
print
'
?>'

?

Просто сейчас ругается на вот это

if ($nodetype=='portfolio'):
print  '<div id="wrapper">
  </div>'
;
else print '.......

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in (  </div>';)

Аватар пользователя Айдар Айдар 13 ноября 2011 в 13:01

Нафига Вы кавычки ставите?! Php-код нужно заключать в теги кода, а html ни во что не нужно заключать.

<?php
$nodetype=$node->type;
 if ($nodetype=='portfolio'): ?>
 <div id="wrapper">
    <div id="container" class="clear-block">
<?php else: ?>
...

И следите за синтаксисом php.

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 13 ноября 2011 в 13:09

можно в template.php прописать вот такое

<?php
function ИМЯТЕМЫ_preprocess_page(&$vars$hook) { 
  if (
$vars['node']->type != "") {
    
$vars['template_files'][] = "page-node-" $vars['node']->type;
  }
}
?>

тогда темизатор начнет понимать шаблоны для разных контент-тайпов, типа, page-node-мой_content_type.tpl.php

Только после реализации этой функции нужно зачистить кэш.

Аватар пользователя routedseo routedseo 13 ноября 2011 в 15:03

<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a> wrote:
можно в template.php прописать вот такое

<?php
function ИМЯТЕМЫ_preprocess_page(&$vars$hook) { 
  if (
$vars['node']->type != "") {
    
$vars['template_files'][] = "page-node-" $vars['node']->type;
  }
}
?>

тогда темизатор начнет понимать шаблоны для разных контент-тайпов, типа, page-node-мой_content_type.tpl.php

Только после реализации этой функции нужно зачистить кэш.

Спасибо, большое!

Все сработало

Аватар пользователя direqtor direqtor 13 ноября 2011 в 13:31

Попробуйте с [module=themekey] поковыряться. Судя по описанию переключать тему (сиречь дизайн) по типу контента он может.