Как сделать блок из views2/glossary?

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

Аватар пользователя zanami zanami 22 июля 2009 в 10:15

Надо было глоссарий — views 2 использовал, скопировал стандартную вьюху, как надо поправил, работает.

Как можно этот список букв запихать в блок? Надо на главной сделать только буквы, без списка совсем. Я не полностью понял, как работает atachment во views. Если я добавляю представление типа Блок... но мне не надо в нем ничего выводить... я все поля скрываю, "прикрепляю" к нему тот же аттачмент, что на странице —но такой блок создать не дают — типа, он ничего не выводит.

Картинка во вложении. Кто знает — поделитесь, плиз.

ВложениеРазмер
Иконка изображения views-glossary-block.jpg36.83 КБ

Комментарии

Аватар пользователя yustos.com yustos.com 22 июля 2009 в 10:43

Первое, что пришло в голову. В таксономии создаете словарь, термины - буквы (от А до Я), каждой выводимой странице присваиваете букву, на которую она должна выводиться. Создаете вьюс по типу term (Taxonomy terms are attached to nodes) по данному словарю, вывод в блоке. Дальше вьюс ваших страниц, и вуаля! Где что как крепить разберетесь.

Аватар пользователя Vladimirovich Vladimirovich 22 июля 2009 в 12:50

yustos.com wrote:
Гляньте мой сайт http://clients.yustos.com/aquakran, сейчас в разработке. Там внизу вьюс по производителям. Поскольку сайт только делается, примеры есть только для Haiba, Emmevi и Campion

Небольшой оффтоп. Yustos, подскажите, как проще сделать разделение на 2 блока, как у вас сделано - "Сага о смесителе" "Раковины и приспособления"? Smile

Аватар пользователя zanami zanami 22 июля 2009 в 11:03

Нет, это не наш метод. Можно и еще проще поступить — сделать computed поле CCK, но это тоже не то.

Просто я вижу реально работающую вещь «из коробки» и вполне логично желание эту же работающую вещь прикрутить.

Вероятно, я плохо объяснил суть — на скрине во вложении мой сайт, все здорово, только надо как-то блок с буквами «отцепить» от этого view и засадить в блок.

Буду сам мучиться, если никто не поможет. Что получится — отпишу.

Аватар пользователя zanami zanami 10 ноября 2015 в 11:46

В общем, сделал. Покорежил ту же самую вьюху glossary, выкинул вывод attachment, добавил блок, изменил настройки по-умолчанию — убрал адргумент, поставил summary, sorted ascending. Подробнее во вложениях.

Результат тут: http://habrus.ru блок вверху страницы.

Аватар пользователя zanami zanami 22 июля 2009 в 14:51

О, блин. Блок-то оно выводит, а как сделать ссылки куда нужно — не понятно.

Как изменить ссылки в summary?

Аватар пользователя yustos.com yustos.com 22 июля 2009 в 15:34

2Vladimirovich

"Vladimirovich" wrote:
Небольшой оффтоп. Yustos, подскажите, как проще сделать разделение на 2 блока, как у вас сделано - "Сага о смесителе" "Раковины и приспособления"? :)

Здесь использовал Panel2. До этого такие вещи делал при помощи composite layout

Аватар пользователя zanami zanami 24 июля 2009 в 3:10

Решил задачку. Сделал блок и темизировал summary-unformatted

views-view-summary-unformatted--firms-block.tpl.php (firms-block — название view)

внутри заменил строчку

<?php<a href="<?php print 'firms/'.drupal_strtolower($row->link); ?>"><?php print $row->link?></a>
<?php /*  было так  <a href="<?php print $row->url; ?>"><?php print $row->link; ?></a> */ ?>

firms/X — это путь к другому view, которое отрабатывает собственно вывод нод на каждую букву
так просто можно обойти проблему — $row->url в блоке ничего не возвращает.

Аватар пользователя maggasha maggasha 24 мая 2010 в 22:08

zanami wrote:
Решил задачку. Сделал блок и темизировал summary-unformatted

views-view-summary-unformatted--firms-block.tpl.php (firms-block — название view)

внутри заменил строчку

<?php<a href="<?php print 'firms/'.drupal_strtolower($row->link); ?>"><?php print $row->link?></a>
<?php /*  было так  <a href="<?php print $row->url; ?>"><?php print $row->link; ?></a> */ ?>

firms/X — это путь к другому view, которое отрабатывает собственно вывод нод на каждую букву
так просто можно обойти проблему — $row->url в блоке ничего не возвращает.

Кто может объяснить этот пост подробней, стукните плиз в личку.

Аватар пользователя iNFerNo iNFerNo 24 сентября 2010 в 15:04

а как совместить фильтры во вьюхе и голоссарий.

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

Аватар пользователя woffi woffi 23 декабря 2011 в 4:38

Спасибо за изящное решение вопроса.

Есть пара комментариев, хоть это и можно посчитать некропостингом.

"zanami" wrote:
<?phplink); ?>"><?php print $row->link; ?>
<?php /*  было так  url; ?>"><?php print $row->link; ?> */ ?>

Тут правильнее было бы использовать путь '/firms/'.drupal_strtolower($row->link), если пути определяются относительно корня сайта, а не относительно текущего раздела. Иначе можно получить ссылку типа "сайт.ру/каталог/товары/железобетон/firms/a" в глоссарии на странице железобетонных изделий, и точно в том же глоссарии на странице туристических агентств Санкт-Петербурга ссылку "сайт.ру/агентства/санктпетербург/firms/а" в то время как обе организации должны быть доступны по ссылке "сайт.ру/firms/а"

"maggasha" wrote:

"zanami" wrote:

Решил задачку. Сделал блок и темизировал summary-unformatted
views-view-summary-unformatted--firms-block.tpl.php (firms-block — название view)
внутри заменил строчку
<?phplink); ?>"><?php print $row->link; ?>
<?php /*  было так  url; ?>"><?php print $row->link; ?> */ ?>
firms/X — это путь к другому view, которое отрабатывает собственно вывод нод на каждую букву
так просто можно обойти проблему — $row->url в блоке ничего не возвращает.

Кто может объяснить этот пост подробней, стукните плиз в личку.

Подробности, если это кому-то пригодится, следующие:
1. Берем стандартную вьюху glossary, имеющееся во views2 (если ваша вьюха называется иначе - запоминаем ее имя - оно нам пригодится в пункте 7)
2. Удаляем из нее дисплеи Page и Attachments
3. Добавляем дисплей Block
4. В свойствах аргумента (там по умолчанию один аргумент "Материал: Заголовок") выбираем "Summary, sorted ascending"
5. Если надо - настраиваем сортировку и фильтры (в моей ситуации надо было сделать несколько алфавитных указателей по разным типам материалов, сортировка всегда была по имени материала по возрастанию)
6. На странице блоков указываем, где нужно показывать созданный только что блок. При просмотре видим, что ссылки в алфавитном указателе не соответствуют тому, что нам нужно.
7. Копируем файл sites/default/modules/views/theme/views-view-summary-unformatted.tpl.php в папку с используемой вами темой (обычно sites/default/themes/имятемы) под именем views-view-summary-unformatted--glossary.tpl.php
7.1. Если имя вашей вьюхи отличается от стандартного (вдруг вы решили не трогать стандартный glossary и сделали его копию), то вот здесь вместо glossary надо подставить название вашей вьюхи из пункта 1
7.2. Если вы создаете больше одного блока с алфавитным указателем, пути у которых должны различаться, то тогда надо вместо файла views-view-summary-unformatted--glossary.tpl.php создать, соответственно, несколько файлов с именами views-view-summary-unformatted--glossary--block-1.tpl.php, views-view-summary-unformatted--glossary--block-2.tpl.php
8. В созданном файле исправляем указанную строку в соответствие исходным рекомендациям
"zanami" wrote:

<?phplink); ?>"><?php print $row->link; ?>
<?php /*  было так  url; ?>"><?php print $row->link; ?> */ ?>

В моем случае для views-view-summary-unformatted--glossary--block-1.tpl.php это было '/authors/'.drupal_strtolower($row->link), а для views-view-summary-unformatted--glossary--block-2.tpl.php - '/books/'.drupal_strtolower($row->link)

Вот, собственно, и все...

Кстати, было бы интересно узнать, может кто делал алфавитный указатель, где русские буквы в путях транслитерируются? Типа как вместо /firms/ж ссылка была бы /firms/zh?