Привет всем еще раз.
Я уже постил сюда свой сайт, сайт готов, дорабатывается.
Созрел такой вопрос - Как сделать возможность сортировку материала "Фильмы" по алфавиту, над фильмами стоят буквы алфавита и тыкая на "А" человек получает только фильмы на "А".
1. Пока придумал только сделать в таксономии Словарь "Алфавит" - Термины "Все буквы алфавита" - по моему топорное решение?:), и вывод через вьювс.
2. Делать Названия фильмов терминами - и уже их фильтровать на вывод через вьювс, получается делать для каждой буквы свое представление... - то же топорновато имхо.
Может есть уже готовые решения?
Сайт - www.zombieclub.ru
Сори, нашел решение методом активации во Views - Glosary Пойду его править под себя:)
Комментарии
Я сделала по-другому, хотя и не претендую на лучшее решение. Хочется чего-то проще.
Сделала поле - алфавит, где можно выбрать букву. Сделала вьюс и экпозит-фильтр по этому полю. Потом сверху линейку, где вручную указала ту страницу, которая создается при выборе буквы в фильтре. Много читала про модули, помогающие сделать это. Но пришла к такому решению
Напишу свое решение и выложу код вьюхи, ибо почему то моя отказывалась нормально выводиться, хотя была 1 в 1 как с сайта drupal.org ( видимо не 1 в 1 ).
Вьюха аля стандартный Glossary, только выводиться как блок! Очень удобно и практично, выводим блок где нам надо.
Вот код
$view->name = 'glossary_zk';
$view->description = 'A list of all content, by letter.';
$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(
'title' => array(
'label' => 'Title',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'name' => array(
'label' => 'Author',
'link_to_user' => 1,
'exclude' => 0,
'id' => 'name',
'table' => 'users',
'field' => 'name',
'relationship' => 'none',
),
'changed' => array(
'label' => 'Last update',
'date_format' => 'large',
'custom_date_format' => '',
'exclude' => 0,
'id' => 'changed',
'table' => 'node',
'field' => 'changed',
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'title' => array(
'default_action' => 'default',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '',
'default_argument_type' => 'fixed',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'glossary' => 1,
'limit' => '1',
'case' => 'upper',
'path_case' => 'lower',
'transform_dash' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
'default_argument_user' => 0,
'default_argument_fixed' => 'a',
'default_argument_php' => '',
'validate_argument_vocabulary' => array(),
'validate_argument_type' => 'tid',
'validate_argument_php' => '',
),
));
$handler->override_option('access', array(
'type' => 'none',
'role' => array(),
'perm' => '',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('use_ajax', TRUE);
$handler->override_option('items_per_page', 36);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 0,
'order' => 'asc',
'columns' => array(
'title' => 'title',
'name' => 'name',
'changed' => 'changed',
),
'info' => array(
'title' => array(
'sortable' => 1,
'separator' => '',
),
'name' => array(
'sortable' => 1,
'separator' => '',
),
'changed' => array(
'sortable' => 1,
'separator' => '',
),
),
'default' => 'title',
));
$handler->override_option('exposed_block', TRUE);
$handler = $view->new_display('attachment', 'Attachment', 'attachment');
$handler->override_option('arguments', array(
'title' => array(
'default_action' => 'summary asc',
'style_plugin' => 'unformatted_summary',
'style_options' => array(
'count' => 1,
'override' => 0,
'items_per_page' => '25',
'inline' => 1,
'separator' => ' | ',
),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '',
'default_argument_type' => 'fixed',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'glossary' => 1,
'limit' => '1',
'case' => 'upper',
'path_case' => 'lower',
'transform_dash' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
'default_argument_user' => 0,
'default_argument_fixed' => 'a',
'validate_argument_vocabulary' => array(),
'validate_argument_php' => '',
),
));
$handler->override_option('attachment_position', 'before');
$handler->override_option('inherit_arguments', 0);
$handler->override_option('inherit_exposed_filters', FALSE);
$handler->override_option('inherit_pager', FALSE);
$handler->override_option('render_pager', TRUE);
$handler->override_option('displays', array(
'block_1' => 'block_1',
'default' => 0,
));
$handler = $view->new_display('block', 'Блок', 'block_1');
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);
Незабудьте поменять фильтрацию под себя...Пример как работает на моем сайте, в первом посте в разделе Фильмы.