Аватар пользователя B.X

Nascentes morimur...

Nascentes morimur, finisque ab origine pendet. — Рождаясь, мы умираем; конец обусловлен началом.

Top.Mail.Ru Каталог webplus.info Яндекс.Метрика

Пользователей онлайн: 0.

«Они считали чувство вины ошибкой, а угрызения совести — слабостью. Они всегда были практичны и никогда — сентиментальны. Но дружба их не имела границ.»

Views 2 - Month Archive (настроенный вид, код) 6.0 | [Харзах]-[РУ]

Аватар пользователя B.X

Настроенный как у меня (блок и страница) вид Архива по месяцам всех документов. Точнее, на странице стоит ограничение в 100 пунктов. Я думаю, этого на ближайшие года хватит. Импортируйте этот вид в настройках Views, разрешите блок Archive и пользуйтесь. Если какие-то вопросы будут или замечания, то пишите в комментариях, хотя у меня всё работает.

$view = new view; $view->name = 'archive'; $view->description = 'Display a list of months that link to content for that month.'; $view->tag = 'default'; $view->view_php = ''; $view->base_table = 'node'; $view->is_cacheable = FALSE; $view->api_version = 2; $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ $handler = $view->new_display('default', 'Defaults', 'default'); $handler->override_option('fields', array( 'created' => array( 'label' => 'Post date', 'alter' => array( 'alter_text' => 0, 'text' => '', 'make_link' => 0, 'path' => '', 'alt' => '', 'prefix' => '', 'suffix' => '', 'help' => '', 'trim' => 0, 'max_length' => '', 'word_boundary' => 1, 'ellipsis' => 1, 'html' => 0, ), 'date_format' => 'small', 'custom_date_format' => '', 'exclude' => 0, 'id' => 'created', 'table' => 'node', 'field' => 'created', 'relationship' => 'none', ), )); $handler->override_option('sorts', array( 'created' => array( 'id' => 'created', 'table' => 'node', 'field' => 'created', 'order' => 'DESC', 'granularity' => 'second', 'relationship' => 'none', ), )); $handler->override_option('arguments', array( 'created_year_month' => array( 'default_action' => 'summary desc', 'style_plugin' => 'default_summary', 'style_options' => array( 'count' => 1, 'override' => 1, 'items_per_page' => '100', ), 'wildcard' => 'all', 'wildcard_substitution' => 'All', 'title' => '%1', 'default_argument_type' => 'fixed', 'default_argument' => '', 'validate_type' => 'none', 'validate_fail' => 'not found', 'id' => 'created_year_month', 'table' => 'node', 'field' => 'created_year_month', 'validate_user_argument_type' => 'uid', 'validate_user_roles' => array( '2' => 0, ), 'relationship' => 'none', 'default_options_div_prefix' => '', 'default_argument_user' => 0, 'default_argument_fixed' => '', 'default_argument_php' => '', 'validate_argument_node_type' => array( 'poll' => 0, 'image' => 0, 'forum' => 0, 'page' => 0, ), 'validate_argument_node_access' => 0, 'validate_argument_nid_type' => 'nid', 'validate_argument_vocabulary' => array( '1' => 0, '2' => 0, '5' => 0, '4' => 0, ), 'validate_argument_type' => 'tid', 'validate_user_restrict_roles' => 0, 'validate_argument_php' => '', ), )); $handler->override_option('filters', array( 'status' => array( 'operator' => '=', 'value' => 1, 'group' => 0, 'exposed' => FALSE, 'expose' => array( 'operator' => '', 'label' => 'Published', 'use_operator' => FALSE, 'identifier' => 'status', 'remember' => FALSE, 'single' => TRUE, 'optional' => FALSE, ), 'id' => 'status', 'table' => 'node', 'field' => 'status', 'relationship' => 'none', ), )); $handler->override_option('access', array( 'type' => 'none', 'role' => array(), 'perm' => '', )); $handler->override_option('title', 'Monthly archive'); $handler->override_option('items_per_page', 17); $handler->override_option('use_pager', 'mini'); $handler->override_option('pager_element', 10); $handler->override_option('use_more', 1); $handler->override_option('style_options', NULL); $handler->override_option('row_plugin', 'node'); $handler->override_option('row_options', array( 'teaser' => 1, 'links' => 1, 'comments' => 0, )); $handler = $view->new_display('page', 'Page', 'page'); $handler->override_option('path', 'month'); $handler->override_option('menu', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, 'name' => 'navigation', )); $handler->override_option('tab_options', array( 'type' => 'none', 'title' => '', 'description' => '', 'weight' => 0, )); $handler = $view->new_display('block', 'Block', 'block'); $handler->override_option('arguments', array( 'created_year_month' => array( 'default_action' => 'summary desc', 'style_plugin' => 'default_summary', 'style_options' => array( 'count' => 1, 'override' => 0, 'items_per_page' => '25', ), 'wildcard' => 'all', 'wildcard_substitution' => 'All', 'title' => '%1', 'default_argument_type' => 'fixed', 'default_argument' => '', 'validate_type' => 'user', 'validate_fail' => 'not found', 'id' => 'created_year_month', 'table' => 'node', 'field' => 'created_year_month', 'relationship' => 'none', 'validate_user_argument_type' => 'uid', 'validate_user_roles' => array( '2' => 0, ), 'override' => array( 'button' => 'Use default', ), 'default_options_div_prefix' => '', 'default_argument_user' => 0, 'default_argument_fixed' => '', 'default_argument_php' => '', 'validate_argument_node_type' => array( 'poll' => 0, 'image' => 0, 'forum' => 0, 'page' => 0, ), 'validate_argument_node_access' => 0, 'validate_argument_nid_type' => 'nid', 'validate_argument_vocabulary' => array( '1' => 0, '2' => 0, '5' => 0, '4' => 0, ), 'validate_argument_type' => 'tid', 'validate_user_restrict_roles' => 0, 'validate_argument_php' => '', ), )); $handler->override_option('block_description', 'Archive list'); $handler->override_option('block_caching', -1);
Аватар пользователя Sergey1917

Начал использовать этот модуль для создания архива, импортировал ваше представление, все нормально. Попутно попытался сделать вывод списка терминов из словаря с подсчётом количества нод. Нигде не нашел как сделать этот посчет. А в архиве эта функция используется. Подскажите пожалуйста как это можно сделать? Где во Views спрятана эта функция?

Аватар пользователя B.X

для этого есть много решений (разных):
http://www.drupal.ru/node/108989
http://cmspress.info/drupal/snippet/576

Аватар пользователя Sergey1917

Пока у меня списки на сниппетах, но есть проблема. Если на одной странице несколько анонсов со сниппетом, то сайт выпадает. Один работает, а два уже нет. Это явно видно на примере архива по месяцам. Создал несколько страниц со списками терминов. Если дата их одним и тем же месяцем, то при выборе из архива сайт падает. Можно конечно их разнести по разным месяцам, но это как-то неправильно.

По приведенным вами ссылкам. Сниппет я уже описал, а вот решение на Views 3 у меня застопорилось, http://xandeadx.ru/blog/drupal/415
когда дохожу до пункта 4:
4. Добавляем новое поле Content: nid
У меня этого поля нет в списке предлагаемых. Что я мог упустить? Почему нет этого поля? А без него цепочка создания представления списка обрывается.

Аватар пользователя B.X

Вам надо было почитать комментарии к этой странице ( http://xandeadx.ru/blog/drupal/415 ), там написано:

Огромное человеческое спасибо за материал :)

Только одна поправочка: у меня не было поля Content: nid (пункт 4). Заменил его полем "Добавляемый термин: ID термина". Всё работает.

Аватар пользователя Sergey1917

Спасибо за подсказку! Список выводит так:
Термин 1
(3)
Термин 2
(10)
Термин 3
(5)

А хотелось бы вот так:
Термин 1 (3)
Термин 2 (10)
Термин 3 (5)

Как в архиве.

Аватар пользователя Гость

Заменил его полем "Добавляемый термин: ID термина". Всё работает.

Не работает. В скобках везде стоит 1. Раз ввели поле ID термина, так наверное термины и считаются, а раз термины все по одному, вот и получается при подсчете - все по 1.

Аватар пользователя B.X

А хотелось бы вот так:
Термин 1 (3)
Термин 2 (10)
Термин 3 (5)

Хм... это решается уже или через CSS или в точных настройках темы. Тут уж я ничем помочь не могу... у Views много настроек и там даже можно везде вставлять свои классы для css.

Аватар пользователя Гость

Пока решил обойтись списками на сниппетах. Развел их по разным датам, чтобы в архиве новостей не глючили. Views слишком проблемный.

Аватар пользователя B.X

не знаю, не знаю... по мне так - чрезвычайно мощный инструмент...
не так давно делал на Views сайт для Доски Объявлений...

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

Аватар пользователя Sergey1917

Здравствуйте Владимир! У меня снова появился вопрос по этому представлению, на Drupal 7. Все работает нормально. У меня в архиве выводится 17 строк (поменьше, чем у вас). Я в настройках представления выбрал: "Использовать постраничный навигатор:Полный. И: Постранично, 10 элементов. А выводятся все равно все 17. Вместо полного пробовал и Мини, то же самое. Что я делаю не так?

Аватар пользователя Sergey1917

"Точнее, на странице стоит ограничение в 100 пунктов". А как снять это ограничение на 100 пунктов?

Аватар пользователя Sergey1917

Вопросов нет. Разобрался.

Аватар пользователя B.X

Эхх, давно не работал с Drupal. Уже всего и не упомнишь...

Аватар пользователя Sergey1917

Владимир, а с чем же вы сейчас работаете? Уж не с Джумлой ли?

Аватар пользователя B.X

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