Возможно ли упростить этот код и влияет ли подобное на производительность?

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

Аватар пользователя NightL NightL 24 марта 2012 в 14:56

Код из блога http://xandeadx.ru/blog/drupal/89
Обеспечивает для избранных нод отдельный шаблон

function phptemplate_preprocess_page(&$vars)
{
    if (isset($vars['node']) && ($vars['node']->nid == 1 || $vars['node']->nid == 99))
    {
        $vars['template_files'][] = 'page-someword';
    }
}

Вопросов по коду два:
1. возможно ли код упростить так, чтобы достаточно было перечислить nid через запятую?
2. более важный вопрос, если страниц, для которых требуется отдельный шаблон, будет скажем штук 500 соответственно записей вида
$vars['node']->nid == 99так же будет 500 штук - скажется ли это на производительности?

Комментарии

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 24 марта 2012 в 17:42

Если 500, то может стоит подумать как-то привязываться к типу ноды? Темить по id ноды - как то не гибко. Ноды ведь и удаляются

<?php

function phptemplate_preprocess_page(&$vars){
    if (isset(
$vars['node']) && $vars['node']->type == 'mynodetype'){
        
$vars['template_files'][] = 'page-someword';
    }
}

?>
Аватар пользователя NightL NightL 24 марта 2012 в 17:44

По типу темизирую параллельно, в моем случае именно разные ноды в одном типе нод нужно изменить, эти ноды ни как не связаны между собой ни общей таксономией ни алиасом

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 24 марта 2012 в 18:03

Что темить по айди? Неужели серьёзно менять макет? Обычно в таких случаях как ваш (500) народ хочет тривиальные вещи вроде отдельный фон. Если это случилось и с вами, то может привязываться к классам боди или дива контейнера ноды?

Аватар пользователя NightL NightL 24 марта 2012 в 19:01

Увы в моем случае нужны половина других регионов + другая разметка шаблона. Тривиальный вещи я всегда нахожу в поисковике, остаются нетривиальные...

Конечно поделить часть страниц на разные регионы можно, но думаю геморроя будет еще больше

Аватар пользователя Andruxa Andruxa 24 марта 2012 в 23:10

создать для типа материала cck-поле field_template, в котором хранить имя шаблона (пустое = дефолтный), админить станет гораздо проще

либо смотреть в сторону панелей