Laetius est, queties magno...

Laetius est, queties magno sibi conostat honestum. — Доблесть тем приятнее, чем труднее её достичь.

Мишель Монтень

«Опыты»

Рейтинг@Mail.ru Rambler's Top100 Каталог 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 спрятана эта функция?

Аватар пользователя 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

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

комментировать

Plain text

  • Вы можете использовать BBCode-теги в тексте. Адреса будут автоматически показаны как ссылки.
Проверка
Ответ должен быть написан на английском языке. Например: какого цвета небо? Ответ: blue
Введите ответ в это поле.