темизация блока

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

Аватар пользователя poe poe 24 октября 2007 в 2:11

Подскажите, пожалуйста, как настроить внешний вид отдельно взятого блока?
Вот лежит в папке с моей темой файл block.tpl.php - он определяет, как выглядят все блоки.
А нельзя ли как-то положить туда же файл block-названиеблока.tpl.php в котором будут проставлены другие стили и вообще будет иметь несколько отлитчный от общего дизайн? Я пробовал это сделать, но не работает, наверное, надо какую-то доп.функцию включить в template.php?

p.s. О существовании модуля blocktheme я знаю. Но мне кажется должно быть простое решение, чем создавать отдельную тему и привязывать блок к ней...
Про возможности views для темизации болоков я знаю еще лучше, но views воспользоваться не смогу, поскольку их нельзя темизировать, одновременно использую contemplate.

Комментарии

Аватар пользователя poe poe 24 октября 2007 в 15:37

Боюсь, вы меня не слышите...
Разумеется настройка внешнего вида в друпале осуществляется преимущественно через css. Зачем мне об этом говорить?
Зачем, по-вашему, вообше существуют модули вроде content template (позволяющие темизировать ноды и отдельные поля) или views (позволяющ.темизировать блоки), зачем создатся дополнительные файлы шаблонов, типа block.tpl.php и проч. если на все уже готов один мудрый ответ:
"CSS никто не отменял"

Вы хоть прочтите, о чем я спрашиваю-то!..
Еще раз:
в некоторых темах оформления я обратил внимание на то, что есть помимо файла block.tpl.php дополнительный файл block-custom.tpl.php
Вопрос: могу ли я создать такого рода файл с названием нужного мне блока, чтоб его внешний вид управлялся уже не файлом block.tpl.php, a соответствующим ему?
Что для этого нужно сделать?

Аватар пользователя kiev1 kiev1 25 октября 2007 в 3:10

да, оно не всегда помогает - ведь $block->content приходит уже готовый - по этому проще делать блоки через views - там поля сделанные в cck можно разместить в произвольном порядке.

Аватар пользователя Dimm Dimm 25 октября 2007 в 6:41

Я еще так делаю:
<?php
$view_name='taxonomy_products';
$current_view='';
$current_view->args[0]=arg(2);
$view = '';
$view = views_get_view($view_name);
$block='';
$block->subject=t($view->block_title);
$block->content=(views_build_view('block', $view, $current_view->args, false, $view->nodes_per_block));
include "block.tpl.php";
?>

Аватар пользователя poe poe 25 октября 2007 в 23:24

Спасибо, Mr.Dimm!
По ссылке: http://www.drupal.ru/node/3584
именно то, о чем я спрашивал.
А в последнем примере приведенный код куда вставляется? В template.php ?

Насчет темизации при помощи views я уже отметил, что этот способ, ИМО, самый удобный, но если используете модуль contemplate, он неприменим.

- 2 Mr. vadbars:
Вам чувство собственной важности не позволяет даже прочесть и понять, о чем топик. Некое благородное нетерпение помешало вам хотя бы допустить, что автор топика может иметь начатки компьютерной грамотности и мог слышать от московских друзей по секрету о существовании программы дримвивер..

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 27 октября 2007 в 13:57

По-моему вы сейчас спорите с кем-то другим, чей образ мешает вам увидеть реального человека.
Разве данная мною выше ссылка на drupal.org не отвечает на ваш вопрос "А нельзя ли как-то положить туда же файл block-названиеблока.tpl.php в котором будут проставлены другие стили и вообще будет иметь несколько отлитчный от общего дизайн?" Там конкретно перечислены имена и порядок просмотра имен темплейтов для оформления блоков:

Template files are searched in the following order:

block-[module]-[delta].tpl.php
block-[module].tpl.php
block-[region].tpl.php
block.tpl.php

For example, the user login block has a delta of '0'. If you put it in the left sidebar, when it's rendered, PHPTemplate will search for the following templates in descending order:

block-user-0.tpl.php
block-user.tpl.php
block-left.tpl.php
block.tpl.php

Причем здесь какие-то личностные претензии?

Аватар пользователя Гость Гость (не проверено) 29 октября 2007 в 14:40

Никаких претензий, вы просто не понимаете моего черного юмора.
За ссылку спасибо.