Добрый день, подскажите пожалуйста каким образом можно реализовать во Views поле, в котором пользователь сможет сам указать сколько нод на страницу ему выводить? Причем это должно быть совмещено с ExposedFilters.
Тоесть по сути мне нужен типичный фильтр для сайта по объявлениям о квартирах.
Пользователь выбирает как ему отфильтровать все + количество выводимых объявлений. Все кроме кол-ва объявлений уже сделал... вот осталось последнее...
Я вот что думаю... может есть некий параметр передаваемый для views-ы просто типа как src=asc или что-то в этом духе?
Поиск ответа пока ничего не дал, подскажите кто знает!
Комментарии
На форуме было решение для пятого друпала через аргументы.
Использовался выпадающий список с выбором 10, 20, 30.
Ищи.
почти что модуль) добавляет фильтр(exposed) с выбором кол-ва страниц
кто доведет модуль до ума тот молодец), а я спать
mymodule.module
<?php
function mymodule_views_api() {
return array('api' => 2);
}
?>
mymodule.views.inc
<?php
function mymodule_views_data_alter(&$data) {
$data['views']['items_per_page'] = array(
'title' => t('Items per page'),
'help' => t(''),
'filter' => array(
'handler' => 'views_handler_filter_items_per_page',
),
);
return
$data;}
function
mymodule_views_handlers() {return array(
'handlers' => array(
'views_handler_filter_items_per_page' => array(
'parent' => 'views_handler_filter',
),
)
);
}
?>
views_handler_filter_items_per_page.inc
<?php
$form['value'] = array(
class views_handler_filter_items_per_page extends views_handler_filter {
var $no_single = TRUE;
var $no_operator = TRUE;
function
operator_form(&$form, &$form_state) {$form['operator'] = array();
}
function value_form(&$form, &$form_state) {
$form['value']['#tree'] = TRUE;
'#type' => 'select',
'#title' => empty($form_state['exposed']) ? t('Value') : '',
'#options' => array(10 => '10', 20 => '20', 30 => '30'),
'#default_value' => $this->value,
);
}
function
admin_summary() {if (!empty($this->options['exposed'])) {
return t('exposed');
}
}
function query() {
if($this->value) {
$this->view->set_items_per_page($this->value);
}
}
}
?>
ЗЫ: модуль работает
Вот спасибо!
надо бы приспособить интерфейс для задания интервалов, возможно сегодня попробую
Хорошо будет запоминать выбор пользователя.
есть и такая функция
http://drupal.ru/node/31064
Большое спасибо за модуль!!! То что нужно