Хитринки

Все по-честите ми занимания с прословутия Drupal, както и често трагично неразбираемата му и несъществуваща документация, водят до почти случайни дребни открития, улесняващи донякъде живота на псевдо уеб дизайнера в мен.

Както е известно на всеки потърпевш, външният вид на дадена drupal инсталация се контролира чрез един основен темплейт файл, наречен page.tpl.php и намиращ се в директорията на избраната вече тема. В него се насипват всичкото html и css, необходими за съответния общ дизайн. Докато примерно node.tpl.php се грижи само за непосредственото съдържание на content полето в page темплейта.

Хубавото в случая е, че съществуват възможности за прилагане на повече от един template в рамките на същата тема и то просто с добавяне на нов tpl.php с подходящото име, примерно page-front.tpl.php или пък page-node-58.tpl.php

Но освен това лекичко може да се редактира функцията _phptemplate_variables в template.php. В if-а ($hook == 'page') слагаме следния if:

if ($vars['node'] && arg(2) != 'edit') {
$vars['template_files'][] = 'page-nodetype-'. $vars['node']->type;
}

По този начин се добавя възможност да се добави общ Page темплейт за всички node-ове от даден тип, указан в името на файла, примерно page-nodetype-story.tpl.php

А ако след if-a ($hook == 'page') сложим следния if:

if ($hook == 'node') {
$vars['template_files'] = array('node-'. $vars['nid']);
}

То даваме възможност за слагане на node темплейт с указание към точно определен node, примерно node-58.tpl.php

Със сигурност не съм открил топлата вода, но така комбинирани, тези две доработки могат да улеснят доста разкрасяването на дадена drupal инсталация, така че на който му е полезно, да черпи смело ноухау.