Блок только для списков определённого вида

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

Аватар пользователя clubwave.ru clubwave.ru 29 ноября 2006 в 13:22

в общем есть галерея, ,строим её модулем views, выводим как полные ноды, необходимо, чтобы блок, в котором выводятся фотки имел длинну скажем 700 пикселей и находился по центру, в случае, когда галерея выводится списком всё просто в цсс для класса views-content-gallery ставим нужные значения и всё ок..

Но вот в галерее будет куча категорий и для каждой задавать свой view не хочется...

Идеальным решением было бы в page.tpl.php написать что-то вроде:

если нода = галерее вывести блок class="gallery"

<?php print $content; ?>

если нода = галерее вывести /блок

но как в page.tpl.php передать значения типа ноды, выводимого в <?php print $content; ?>

буду благодарен, если поможете, в аттаче, если кому интересно - картинка

ВложениеРазмер
Иконка изображения moto-gallery.jpg111.01 КБ

Комментарии

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 29 ноября 2006 в 13:32

Вопрос сформулирован ужасно. Для тек кто с этим еще не разбирался, ничего не понятно.

"В случае, когда галерея выводится списком всё просто" - а у Вас как выводится?!
"Но вот в галерее будет куча категорий" - и что из этого?

Проблема в чем?

Всем хочется, чтобы не только проблему решили, но чтоб еще и писать поменьше!

Аватар пользователя clubwave.ru clubwave.ru 29 ноября 2006 в 14:24

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

Или может быть можно в видах создать выборку из таксономии относящейся только к галерее со своими специфическими настройками?

Аватар пользователя clubwave.ru clubwave.ru 29 ноября 2006 в 14:50

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

Аватар пользователя clubwave.ru clubwave.ru 29 ноября 2006 в 17:12

в общем решил делать через URL

правда придётся использовать модуль path в обязательном порядке... но... что делать..

к вопросу о том, что я хотел добиться.. в page.tpl.php получаем следующее:

<?php if (substr($_SERVER["REQUEST_URI"], 0, 8) == "/gallery") { ?><div id="gall"><?php }; ?>

      <?php print $content; ?> 
         
<?php if (substr($_SERVER["REQUEST_URI"], 0, 8) == "/gallery") { ?></div><?php }; ?>   

аналогичную ситуацию нужно прописать в модулях, которые относятся к галерее, ну и всё..

Вопрос к знатокам: какие недостатки у подобного решения? И смогут поисковиком откуда-нибудь браться системные пути к страница, если им прописаны псевдонимы?

Аватар пользователя Dan Dan 29 ноября 2006 в 17:46

"И смогут поисковиком откуда-нибудь браться системные пути к страница, если им прописаны псевдонимы?"

Поисковики не методом тыка же ссылки находят Smile Если поисковики найдут (на других страницах) системные ссылки, то обязательно ими воспользуются Smile
Если найдут одну и ту же страницу с разными ссылками, то, скорее всего, "склеют".
====
Баг на странице галереи.
Разные ссылки:
-- у фотографии - http://live-in-drive.ru/files/imagecache/gallery_img_big/files/audi_s4_2...
-- у ссылки "Смотреть оригинал" - http://live-in-drive.ru/files/audi_s4_2006_cabriolet_1.jpg
Если попытаться перейти по ссылке на фоторафии, то выдаётся ошибка: [Error: name: ReferenceError, message: Security error: attempted to read protected variable]
Смотрю: Opera 9.02

Аватар пользователя clubwave.ru clubwave.ru 29 ноября 2006 в 17:55

"Поисковики не методом тыка же ссылки находят Smile Если поисковики найдут (на других страницах) системные ссылки, то обязательно ими воспользуются :)"

это понятно, но исходя из особенностей друпала, в случае присвоения каждой ссылке псевдонима, откуда-нибудь системные ссылки смогут взяться?

Разные ссылки это не баг.. это три размера... превью, средний(вызывается по клику на картинку) и оригинал...

насчёт security error у меня всё ок... а не знаешь из-за чего может быть так?

"

Вообще есть такие вещи как
<?php
$drupal_path = $_GET['q'];

$second_level = arg(1);
?>
"
это здорово.., если не сложно, перепиши строки которые у меня в шаблоне таким образом, как это может работать в друпале, тоесть с аргументами..

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 29 ноября 2006 в 20:08

Вот, пожалуйсто

<?php

//отформатировано в соответствии со стандартами друпала
if (arg(0) == 'gallery') {
echo '' . $content . '';
} else {
echo $content;
}

//но в темах можно писать и покороче, правда ничего не понятно Smile
echo (arg(0) == 'gallery') ? '' . $content . '' : $content;

?>

Но вообще мне такое решение как-то не очень.

Аватар пользователя clubwave.ru clubwave.ru 30 ноября 2006 в 10:35

Но чего добиться нужно теперь понятно?

Ну решение странное, но вариантов не много... если есть более гибкое, с удовольствием применю..

Аватар пользователя clubwave.ru clubwave.ru 30 ноября 2006 в 10:48

если что в соответствии со стандартами друпала заработало со сравнением >=

в точности мой вариант выглядит так:

<?php if (arg(0) >= 'gallery') { ?><div id="gall"><?php }; ?>

      <?php print $content; ?> 
         
<?php if (arg(0) >= 'gallery') { ?></div><?php }; ?>   

Аватар пользователя clubwave.ru clubwave.ru 30 ноября 2006 в 10:53

а нет, хрена там...

так он и для галереи блок выводит .. а если == то не выводит.. короче работать будет только так видимо:

<?php if (substr($_SERVER["REQUEST_URI"], 0, 8) == "/gallery") { ?><div id="gall"><?php }; ?>

<?php print $content; ?>

<?php if (substr($_SERVER["REQUEST_URI"], 0, 8) == "/gallery") { ?></div><?php }; ?>

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 30 ноября 2006 в 11:46

Должны работать оба мои варианта. Что-то ты там намутил значит... У тебя путь такого вида получается? http://live-in-drive.ru/gallery/auto?page=7 Сделай echo $_GET['q'];

Условие ">=" для строк как-то бредовато выглядит...

Аватар пользователя clubwave.ru clubwave.ru 30 ноября 2006 в 12:51

ну если бредово то как сделать аналогию в видимости блоков.. можно задавать gallery/*

??

что значить сделать echo $_GET['q']; ??