Views2: ответы на вопросы

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

Аватар пользователя penexe penexe 19 марта 2009 в 8:38

Кто что не понимает во views2 задавайте вопросы, по пробую ответить.
вопросы принимаются как создать какой-то вид, что значит та или иная кнопочка и тд.
топик добра Smile мать его...

Комментарии

Аватар пользователя вOFFка вOFFка 19 марта 2009 в 11:11

ОК, я уже спрашивал на сайте, мне не ответили, поэтому спрошу еще раз: помогите настроить вид всех материалов с участием пользователя, т.е. как здесь на сайте в трекере (материалы с моим участием). Кажись уже все возможные варианты перепробовал и ничего не вышло Sad Что ставить в полях: фильтры, аргументы и релэйтиншипс?

Аватар пользователя penexe penexe 19 марта 2009 в 11:47

вOFFка wrote:
ОК, я уже спрашивал на сайте, мне не ответили, поэтому спрошу еще раз: помогите настроить вид всех материалов с участием пользователя, т.е. как здесь на сайте в трекере (материалы с моим участием). Кажись уже все возможные варианты перепробовал и ничего не вышло Sad Что ставить в полях: фильтры, аргументы и релэйтиншипс?

в аргументах: Материал: User posted or commented, также в настройках этого аргумента можно установить
Provide default argument = User ID from logged in user

Аватар пользователя вOFFка вOFFка 19 марта 2009 в 12:40

Не получается: выводит все записи, для проверки создаю запись одним пользователем, захожу под другим и у него эта запись тоже есть хотя в ней он не участвовал.

"Также в настройках этого аргумента можно установить Provide default argument = User ID from logged in user"

Это как я понимаю ставиться в поле: Action to take if argument is not present. У меня есть только User ID from UR, а не User ID from logged in user.

Т.е. как я понимаю проблема в том, что аргумент не представлен и поэтому выводит все материалы. (Action to take if argument is not present выставил Display all values)

И еще аргумент Материал: User posted or commented имеет вот какое пояснение:
Display comments only if a user posted the node or commented on the node, т.е. он выводит коменты?

Да, еще подумал - а то, что у меня выключен модуль трекера не имеет значения? Просто вкладка "Следить" в профиле мне не нужна.

Аватар пользователя вOFFка вOFFка 19 марта 2009 в 15:01

Спасибо за помощь и извиняюсь за поднятую шумиху - оказалось надо было просто обновить views... Зато теперь все работает!

Аватар пользователя Valeratal Valeratal 19 марта 2009 в 13:06

у меня простой вопросик
экспоз фильтры, не соображу, включить включил, а где настроить (это в 6-ке)
у меня страница: список названий нод, фильт по типу и по термину таксономии.
Хочу сделать "поиск" по полю заголовок

Аватар пользователя penexe penexe 19 марта 2009 в 13:20

Valeratal wrote:
у меня простой вопросик
экспоз фильтры, не соображу, включить включил, а где настроить (это в 6-ке)
у меня страница: список названий нод, фильт по типу и по термину таксономии.
Хочу сделать "поиск" по полю заголовок

ну как где настраивается, в том же месте где и создаешь
после нажатия Expose появляются доп. настройки, и все.
выше самого списка будет форма, правда если в Осн. настройках стоит Exposed form in block: Да
то надо включить дополнительно блок, он появится.

Аватар пользователя penexe penexe 19 марта 2009 в 14:17

volocuga wrote:
Как сделать сложный поиск вьюсами (если возможно)Возьмём классический пример-анкета сайта знакомств http://loveplanet.ru/a-expsearch/[/quote]
ну обычный фильтр я думаю знаете как делать, например по сск полям. проблема в том что селектбоксы одни.
но есть модуль Views Checkboxes и порт подл 6ку тут
заменяет на чекбоксы и радиокнопки.

Аватар пользователя penexe penexe 19 марта 2009 в 15:03

jchoo wrote:
как вывести на главную все записи одного типа контента в виде картинки и краткого описания?

создать вид, со страницей указать путь допустим front,
Row style: Материал, в доп. настройках указать Display only teaser. А картинку темизировать через node.tpl.php
в фильтрах установить Материал: Тип

Аватар пользователя penexe penexe 19 марта 2009 в 15:57

jchoo wrote:
Спасибо!
А подскажите ещё пожалуйста, как вывести список юзеров с мах кармой?

увы пока это невозможно

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

jchoo wrote:
Спасибо!
А подскажите ещё пожалуйста, как вывести список юзеров с мах кармой?

написал мини модулек
1)создаем вид http://easycaptures.com/6159685708
2) добавляем relationship Пользователь: Voting results
3) ставим в её настройках http://easycaptures.com/7788180469
4) добавляем поле Voting API results: Значение

Аватар пользователя gumk gumk 16 апреля 2009 в 22:39

Делал все как здесь описано (views 2.3, Voting API 2.0-rc2, Vote Up/Down betta-4) и таких настроек почемуто нет, точнее сома форма есть но нет в ней karma_points.

И второй вопрос как с помощью views вывести суммарное количество голосов за посты, принадлежащие этой группе?

Аватар пользователя penexe penexe 16 апреля 2009 в 23:14

gumk wrote:
Делал все как здесь описано (views 2.3, Voting API 2.0-rc2, Vote Up/Down betta-4) и таких настроек почемуто нет, точнее сома форма есть но нет в ней karma_points.

И второй вопрос как с помощью views вывести суммарное количество голосов за посты, принадлежащие этой группе?


1) karma_points нет, тк как нет user_karma
2) пока такого функционала нет

Аватар пользователя penexe penexe 16 апреля 2009 в 23:37

gumk wrote:
user_karma ключена со всеми плагинами, а karma_points так и не появлись

подсчет кармы произведите. мож поможет

Аватар пользователя penexe penexe 19 марта 2009 в 15:58

Ne_L wrote:
(2ая попытка)
Расскажи про relationships опции, для чего они нужны?

нужны для связи разных таблиц в видах, об это хорошо впринципе написано здесь.
автор пишет что поидее для каждого вида должны бить прописаны relationships, но тк views1 был бе этого функционала уже было поздно что-то переделывать. сейчас есть базовое отношение( когда создаешь вид там указывашь нода, термин ревизия и тд)
допустим выбрал нода(материал) надо сделать вид название ноды + её рейтинг из voting api, вот тут надо указать
relationship чтобы связать таблицу с нодами с 2мя таблицами отвечающими за рейтинг, тогда в полях появятся несколько новых полей и их можно использовать.
другой пример:
при создании установили Пользователь, у меня есть relationship Материал: Content Profile
с помошью него у меня будет базовая таблица users но я также смогу выбирать все что относится к ноде связанной через
Content Profile.
фишка вобщем в том что например файл может быть связан с пользователем, но не связан с нодой
или каждая ревизия одной ноды имеет авторство разных пользователей и тд

Аватар пользователя dfaker dfaker 19 марта 2009 в 16:10

Есть вид выводящий скажем заголовок, категорию и оценку (саму оценку и количество голосов, в виде 7.25/24, склеить два поля в один столбец темизировав табличный вьюс не проблема), представление табличное, нужно сделать чтоб при нажатии на заголовок оценки сортировка происходила сначала про оценке а потом по количесту голосов

Аватар пользователя penexe penexe 19 марта 2009 в 16:51

dfaker wrote:
Есть вид выводящий скажем заголовок, категорию и оценку (саму оценку и количество голосов, в виде 7.25/24, склеить два поля в один столбец темизировав табличный вьюс не проблема), представление табличное, нужно сделать чтоб при нажатии на заголовок оценки сортировка происходила сначала про оценке а потом по количесту голосов

делаем так http://easycaptures.com/3255523266, а вот результат http://easycaptures.com/1637420822 (причем без всяких темизаций)

Аватар пользователя dfaker dfaker 19 марта 2009 в 22:18

penexe спасибо, это логичное решение, но я не достаточно полно описал задачу, критерии сортировки уже используются в порядке: серия->номер серии->средняя оценка->количество голосов, для того чтобы когда сортирую по названию серии следом шла сортировка по номеру в серии, то есть сортировка по оценке уже не будет работать правильно т.к. приоритет у серии и номера (они выше по списку). В общем нужно чтобы при сортировке по оценке критерии серия и номер как бы удалялись (а лучше чтоб менялись их приоритеты), а при сортировке по серии удалялись критерии оценок. То есть нужно как-то динамически перехватывать (наверно в своем модуле) поле сортировки и менять на лету приоритеты критериев, вот Smile

По первому скрину, птичка "override normal sorting..." должны быть снята для достижения правильного результата.
А с объединением полей и правда затупил, я их темизацией склеивал Smile Хотя в моем случае без темизации все равно не обойтись, таблица у меня не обычная

Аватар пользователя Ne_L Ne_L 20 марта 2009 в 1:20

Как можно отследить причину того что не появляеться блок созданный с помощью Views?
в превью внизу всё отображаеться - "Empty text" задал, но блок нигде не появляеться, в блоках регион показа ему задал.
[решено Pardon
просто в поле аргументов забвл написать чтобы он показывал "Empty text" в случае если аргументов нет

Аватар пользователя penexe penexe 20 марта 2009 в 9:05

"Ne_L" wrote:
просто в поле аргументов забвл написать чтобы он показывал "Empty text" в случае если аргументов нет

бывает)

Аватар пользователя Dan Dan 20 марта 2009 в 11:44

Ух, халявная поддержка по views Smile

Сам недавно столкнулся с выводом извратного рейтинга в таблице пользователей, оказалось нужный relationships отсутствовал, пришлось юзать SQL )))

Засим вопрос: penexe, ты не встречал внятных howto по написанию субплагинов к views? В частности организация кастомного relationships.

Аватар пользователя penexe penexe 20 марта 2009 в 12:05

Dan wrote:
Ух, халявная поддержка по views Smile

Сам недавно столкнулся с выводом извратного рейтинга в таблице пользователей, оказалось нужный relationships отсутствовал, пришлось юзать SQL )))

Засим вопрос: penexe, ты не встречал внятных howto по написанию субплагинов к views? В частности организация кастомного relationships.


да рейтинг юзеров, вобще типовая задача, тоже маялся с SQL, думал в views сложно будет, пока сегодня не глянул разобрался маленько результат чуть выше в коментах
views я пока сам изучаю методом тыка и просмотра дефолтных хэндлеров из папки views а также контриб модулей
вот тут в группе можно кое чего почерпнуть http://groups.drupal.org/views-developers

Аватар пользователя Dan Dan 20 марта 2009 в 14:42

Задача следующая: список пользователей с полями профиля, плюс количество комментариев, ими оставленными, плюс рейтинг. Рейтинг высчитывается так: за каждый комментарий на сайте можно проголосовать (vote_up_down), соответственно рейтинг - кол-во очков за комментарии пользователей.

Твой votingapi_bonus.zip ещё не смотрел, обязательно изучу.

Аватар пользователя penexe penexe 20 марта 2009 в 16:06

Dan wrote:
Задача следующая: список пользователей с полями профиля, плюс количество комментариев, ими оставленными, плюс рейтинг. Рейтинг высчитывается так: за каждый комментарий на сайте можно проголосовать (vote_up_down), соответственно рейтинг - кол-во очков за комментарии пользователей.
Твой votingapi_bonus.zip ещё не смотрел, обязательно изучу.

кол-во комментариев хм.. интересно
кстати еще хорошо помогает

<?php
function hook_views_data_alter(&$data) {
dpm($data);
}
?>

чтобы посмотреть массив полей, свойств и тд

Аватар пользователя Dan Dan 20 марта 2009 в 17:49

"penexe" wrote:
кол-во комментариев хм.. интересно

Да, в лоб - можно установить UserStats и взять оттуда. С извратами может и во views можно будет, но это уже будет не список пользователей, а комментов скорее всего.
Вообще, надо будет хорошенько проштудировать мануалы - чую это всё легко через модули решить. На SQL-то один JOIN - и готово.

"penexe" wrote:
function hook_views_data_alter(&$data) {

Спасибо, учту

Аватар пользователя anreyyyy anreyyyy 21 марта 2009 в 13:30

всем привет!

хочу сделать следующее:
1) имеем сейчас - http://www.picamatic.com/view/2894809_11/
2) хочу сделать - http://www.picamatic.com/view/2894810_22/

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

ну еще неплохо сделать, чтоб и в наименовании тоже.

спасибо!

Аватар пользователя penexe penexe 23 марта 2009 в 15:07

volocuga wrote:
penexe,не могу найти во вторых вьюсах поля от Imagecache и VotingAPI.Подскажите,где искать?

от imagecache нет полей, есть от cck imagefield, ищите там где все поля от cck
для VotingAPI надо добавить сначала relationship Материал: Voting results

Аватар пользователя gorr gorr 29 марта 2009 в 15:33

Сделал блочный вьюз с аргументом taxonomy:termID.
Для валидации выбрал режим PHP code.
В поле для кода ввожу:

if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  $node = node_load(arg(1));
  $terms = taxonomy_node_get_terms_by_vocabulary($node, 2);
  return $terms[0]->tid;
}
return FALSE;

2 - ID словаря моего.
Таким образом хотел вывести в блоке ноды, которые прикреплены к тому же терму, что и нод, на странице которого находимся. Да не выходит что-то - выводит empty text даже там, где точно есть соответствующие ноды, не пойму в чем ошибка?

Аватар пользователя penexe penexe 29 марта 2009 в 16:54

gorr wrote:
Сделал блочный вьюз с аргументом taxonomy:termID.
Для валидации выбрал режим PHP code.
В поле для кода ввожу:

if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  $node = node_load(arg(1));
  $terms = taxonomy_node_get_terms_by_vocabulary($node, 2);
  return $terms[0]->tid;
}
return FALSE;

2 - ID словаря моего.
Таким образом хотел вывести в блоке ноды, которые прикреплены к тому же терму, что и нод, на странице которого находимся. Да не выходит что-то - выводит empty text даже там, где точно есть соответствующие ноды, не пойму в чем ошибка?


В Action to take if argument is not present: выбрать Provide default argument PHP code
И туда вставить

<?php
if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  
$node node_load(arg(1));
  
$terms taxonomy_node_get_terms_by_vocabulary($node2);
  if(
$term array_shift($terms)) {
    return 
$term->tid;
  }
}
?>
Аватар пользователя gorr gorr 29 марта 2009 в 21:55

penexe wrote:
gorr wrote:
Сделал блочный вьюз с аргументом taxonomy:termID.
Для валидации выбрал режим PHP code.
В поле для кода ввожу:

if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  $node = node_load(arg(1));
  $terms = taxonomy_node_get_terms_by_vocabulary($node, 2);
  return $terms[0]->tid;
}
return FALSE;

2 - ID словаря моего.
Таким образом хотел вывести в блоке ноды, которые прикреплены к тому же терму, что и нод, на странице которого находимся. Да не выходит что-то - выводит empty text даже там, где точно есть соответствующие ноды, не пойму в чем ошибка?


В Action to take if argument is not present: выбрать Provide default argument PHP code
И туда вставить

<?php
if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  
$node node_load(arg(1));
  
$terms taxonomy_node_get_terms_by_vocabulary($node2);
  if(
$term array_shift($terms)) {
    return 
$term->tid;
  }
}
?>


Попробовал, не выводит, но в этом случае и эмпти текст не выводится, вообще пусто.

@ Dan (если это мне) думаю, что это стандартная задача для вьюза, во вьюзе1 легко с помощью такого аргумент хендлин кода решал, а тут не выходит чего-то.

Аватар пользователя vitvas vitvas 29 марта 2009 в 20:36

Здравствуйте, ув. penexe

У меня такая задачка. Есть тип материала "Фото" (c полем cck imagefield) и словарем "Альбом". Возможно ли с помощью views2 на одной странице (например, mysite.ru/gallery) сделать выборку:

Альбом №1 (термин словаря) - три последние/первые/случайные ноды
Альбом №2 (термин словаря) - три последние/первые/случайные ноды
...
Альбом №n (термин словаря) - три последние/первые/случайные ноды

Подскажите, пожалуйста.

Заранее благодарен

Аватар пользователя Dan Dan 29 марта 2009 в 21:03

Я бы сделал программно:
<?php
$vid = 2;
$view_name = 'name';

$tree = taxonomy_get_tree($vid, 0, -1, 1);
foreach($tree as $term){
print views_embed_view($view_name, '', array($term->tid));
}
?>

Код не проверен!

Аватар пользователя gorr gorr 29 марта 2009 в 22:50

Dan, спасибо, сделал пока твоим способом, все вывелось, но все равно интересно, почему не идет из интерфейса вьюза...

Аватар пользователя volocuga volocuga 30 марта 2009 в 0:28

Автозаполняемые зависимые значения.Например,есть список городов,в теринах таксономии или просто как поле с множественными значениями в типе контента.Этот список городов выводим в виде развёрнутого фильтра.Юзер выбирает город,ему подгружается список областей.Можно ли ?

Аватар пользователя Dan Dan 30 марта 2009 в 0:53

Прикольно!

"gorr" wrote:
@ Dan (если это мне) думаю, что это стандартная задача для вьюза, во вьюзе1 легко с помощью такого аргумент хендлин кода решал, а тут не выходит чего-то.

Нет, не тебе, но рад, что работает Smile
Это для vitvas.
Для тебя ничего другого, кроме как решение от penexe посоветовать не могу. Если не работает, попробуй вместо этого кода вставить просто "return 123;", где 123 - термин, по которому точно должно выводиться что-то. Если не работает, - ошибка настройки views, копай там, если работает - ошибка в коде, проверь его.

2vitvas: не дублируй пожалуйста сообщения в форуме. Можно было просто дать ссылку.

Аватар пользователя vitvas vitvas 30 марта 2009 в 11:33

2 Dan: Спасибо за подсказку решения, завтра буду проводить испытания.
(но вопрос, можно ли реализовать такую задачку исключительно настройками views, остается актуальным, интересно же)

А за дубль, конечно, извините, но мне показалось нелогичным в обсуждении "задай вопрос" написать "мой вопрос здесь".

Аватар пользователя penexe penexe 30 марта 2009 в 2:26

"volocuga" wrote:
Автозаполняемые зависимые значения.Например,есть список городов,в теринах таксономии или просто как поле с множественными значениями в типе контента.Этот список городов выводим в виде развёрнутого фильтра.Юзер выбирает город,ему подгружается список областей.Можно ли ?

hierarchical_select + порт субмодуля под 6ку http://drupal.org/node/342991

Аватар пользователя gorr gorr 30 марта 2009 в 9:41

На данный момент интеграция hierarchical select с views для 6-ой версии отсутствует, разработчик модуля столкнулся со сложностями, которые не смог решить пока.

Аватар пользователя gorr gorr 30 марта 2009 в 11:35

penexe, спасибо, все работает, была моя ошибка.
А теперь хочется сделать немного посложнее, а именно:
Сейчас выводится на странице с нодом блок с несколькими нодами, которые прикреплены к тому же терму из данного словаря(а именно 2).
Хочется теперь добавить условие, чтобы nid у выводимых нодов был больше, чем у нода, на странице которого находимся.
Можно конечно добавить аргумент node:nid, в хендлин коде вставить опять определять по дефолту из адреса страницы с текущим нодом равный его nid и сделать модулек с хуком
<?php
hook_views_query_alter(&$view, &$query) {
if($view->name == 'MY_VIEW') {
$query[0]['clauses'][1(или какая цифра будет)] = "node.nid > '%s'";
}
}
?>
но как-то это не очень красиво, есть ли более красивое решение?

Аватар пользователя penexe penexe 30 марта 2009 в 17:44

gorr, на ум приходит только такое решение:

<?php
$nid 
arg(1);
//block_1 - это имя dispay, может быть page_1, page_2 и тд
$myview views_get_view('view_name'); // view_name -  имя вида
$id $myview->add_item('block_1''filter''node''nid');
$item $myview->get_item('block_1''filter'$id);
$item['operator'] = '>';
$item['value'] = array('value' => $nid);
$myview->set_item('block_1''filter''nid'$item);
$myview->is_cacheable FALSE;

$viewblock $myview->execute_display('block_1');
return 
$viewblock['content'];
?>

вызывать код в блоке, будет добавлять фильтр в вид

Аватар пользователя gorr gorr 30 марта 2009 в 22:24

Спасибо, penexe, все работает по этому способу, за исключением одного - почему-то теряется ограничение на кол-во выводимых нодов в таком блоке (у меня выставлено 2), а выводятся все ноды, у которых nid < (я вывожу с оператором <) данного. Пробовал добавить дополнительно такие записи:
<?php
$view->display['block_1']->handler->options['items_per_page'] = 2;
// или так
$view->display['block_1']->display_options['items_per_page'] = 2;
?>
Но не помогло.

Аватар пользователя gorr gorr 30 марта 2009 в 22:32

Странно, в настройках вьюза указано выводить по 2 нода, а проверил, оказывается ограничение все таки вьюз делает, но почему-то 10 нод, я нигде ему не указывал такого, откуда-то по дефолту тянет, что-ли? Как с этим бороться?

Аватар пользователя murad1986@drupal.org murad1986@drupal.org 1 апреля 2009 в 5:32

всем Здрасти.
У меня такой вопрос. Есть нода относящаяся к двум словарям Рубрика и Выпуск. Как мне получить в views термины из словаря Рубрика в нодах которые соотвествуют и термину из словаря Выпуск.
То есть есть нода с терминами Новости и №1, как мне вытащить в блок термины из первого словаря.
За тяжелую формулировку вопроса сорри.

Аватар пользователя ii ii 2 апреля 2009 в 11:02

Подскажи, пожалуйста, почему не работает аяксовая листалка?

<?php
$view 
views_get_view('producers');
$args = array();
print 
$view->execute_display('default'$args);
?>

Во views producers она включена. Так же пытался ее активизировать с помощью

<?php
$view
->use_ajax $use_ajax;
?>

Не помогло.

Аватар пользователя ii ii 2 апреля 2009 в 12:31

Dan wrote:
Так тоже не работает: print views_embed_view('producers', '', array()); ?

с тремя переменными не кажет вообще ничего.

<?phpprint views_embed_view('producers', '');?>

листался все так же без аякса.

Аватар пользователя penexe penexe 2 апреля 2009 в 20:25

"ii" wrote:
Подскажи, пожалуйста, почему не работает аяксовая листалка?

а просто ajax листалка работает? на странице

Аватар пользователя ii ii 3 апреля 2009 в 9:42

penexe wrote:
а просто ajax листалка работает? на странице

да, по ссылке указанной в страничном вьюсе аякс у листалки работает.

Аватар пользователя penexe penexe 3 апреля 2009 в 9:47

ii wrote:
penexe wrote:
а просто ajax листалка работает? на странице

да, по ссылке указанной в страничном вьюсе аякс у листалки работает.


очень странно, может какие-то ошибки js выдает?

Аватар пользователя ii ii 3 апреля 2009 в 9:57

penexe wrote:
очень странно, может какие-то ошибки js выдает?

проверил - ошибок нет.

куда будет вставляться файл js, если я встраиваю вьюсу в страницу? в переменную $scripts?

Аватар пользователя penexe penexe 3 апреля 2009 в 9:59

ii wrote:
куда будет вставляться файл js, если я встраиваю вьюсу в страницу? в переменную $scripts?

да, вот у меня работает и embed view и execute

Аватар пользователя ii ii 3 апреля 2009 в 13:42

penexe wrote:
ii wrote:
куда будет вставляться файл js, если я встраиваю вьюсу в страницу? в переменную $scripts?

да, вот у меня работает и embed view и execute

но ведь $scripts выводится в шапке - то есть раньше вывода вьюс, когда о листалке еще ничего не известно.

Аватар пользователя penexe penexe 3 апреля 2009 в 13:43

ii wrote:
но ведь $scripts выводится в шапке - то есть раньше вывода вьюс, когда о листалке еще ничего не известно.

не волнуйтесь, известно

Аватар пользователя ii ii 3 апреля 2009 в 13:58

penexe wrote:
ii wrote:
но ведь $scripts выводится в шапке - то есть раньше вывода вьюс, когда о листалке еще ничего не известно.

не волнуйтесь, известно

при встраивании скрипты у меня не прописываются - подгружаемые из sites/all/modules/views/js, а также скрипт вроде

  <!--//--><![CDATA[//><!--
  jQuery.extend(Drupal.settings, { "views": { "ajax_path": "/views/ajax", "ajaxViews": [ { "view_name": "producers", "view_display_id": "page_1", "view_args": "", "view_path": "catalog/new", "view_base_path": "", "view_dom_id": 1, "pager_element": 0 } ] } });
  //--><!]]>
Аватар пользователя Dan Dan 3 апреля 2009 в 12:47

"ii" wrote:
да, по ссылке указанной в страничном вьюсе аякс у листалки работает.

А мы встраиваем страничный вьюс в страницу? Может попробовать сделать блок, посмотреть, что он нормально работает (во вьюс-предпросмотре и в стд. блоках друпала), а потом пытаться вывести это программно.

Аватар пользователя ii ii 3 апреля 2009 в 14:14

Dan wrote:
А мы встраиваем страничный вьюс в страницу? Может попробовать сделать блок, посмотреть, что он нормально работает (во вьюс-предпросмотре и в стд. блоках друпала), а потом пытаться вывести это программно.

Вьюс не не страничный. Страничный вьюс я не встраиваю, он сам выводится по указанной ссылке, и листалка работает корректно. Заморочки начинаются, когда я встраиваю в страницу вид "По умолчанию".

В предпросмотре все работает.

Аватар пользователя DCat DCat 3 апреля 2009 в 13:41

Добрый день! Вопрос как сделать вывод views без шаблона page.tpl.php, как вывод RSS. Хочу сделать пару экспортов данных в разных форматах.

Аватар пользователя penexe penexe 3 апреля 2009 в 13:46

DCat wrote:
Добрый день! Вопрос как сделать вывод views без шаблона page.tpl.php, как вывод RSS. Хочу сделать пару экспортов данных в разных форматах.

http://groups.drupal.org/node/10129 посмотрите, там есть пример как писать плагин для json

Аватар пользователя Dan Dan 3 апреля 2009 в 15:11

"ii" wrote:
Вьюс не не страничный. Страничный вьюс я не встраиваю, он сам выводится по указанной ссылке, и листалка работает корректно. Заморочки начинаются, когда я встраиваю в страницу вид "По умолчанию".

Ссылку (path) можно указать только у страничного вьюс.

"ii" wrote:
В предпросмотре все работает.

Остальное тоже работает (блоки)?

Аватар пользователя ii ii 3 апреля 2009 в 16:37

Dan wrote:
"ii" wrote:
В предпросмотре все работает.

Остальное тоже работает (блоки)?

Да, если я к той же вьюсе добавляю блочный вид и вывожу его на странице (настроив в админве видимость блока), то аякс работает.

Может это извращение, но похоже я буду выводить вьюсу именно так... Спасибо за желание помочь.

Аватар пользователя Dan Dan 3 апреля 2009 в 15:13

"ii" wrote:
при встраивании скрипты у меня не прописываются - подгружаемые из sites/all/modules/views/js, а также скрипт вроде

Скрипты встраиваются только если они необходимы, в твоём случае что-то не так - вот и не встраиваются.

Дай доступ в админку, а то мы тут ещё сто сообщений напишем.

Аватар пользователя Dan Dan 4 апреля 2009 в 0:15

Нифига, рано сдаёмся Smile

Давай так пробуй:
print views_embed_view('producers', 'block_0');

где block_0 - блок номер один в списке вьюс (если он у тебя не первый, а второй - block_1 ну и т.д.

Аватар пользователя Dan Dan 5 апреля 2009 в 17:01

WTF!

А так:
<?php
$view = views_get_view('name');
$view->init();
$view->set_display('block_0');
$view->set_pager_element(10);
$view->set_arguments(array($data->data));
$view->set_use_ajax(true);
$view->set_use_pager(true);
$view->set_items_per_page(10);
print $view->render();
?>
Лишнее (аргументы) убрать. У меня заработало.

Аватар пользователя Integral Integral 6 апреля 2009 в 9:23

Привет,
А где темизируется табличный вывод? И возможно ли заменить стандартную таблицу на другой плагин jQuery?

Аватар пользователя penexe penexe 6 апреля 2009 в 9:44

"Integral" wrote:
Привет,
А где темизируется табличный вывод? И возможно ли заменить стандартную таблицу на другой плагин jQuery?

в настройках вида Theme: Информация, там перечень файлов для темизации ищите там в Style: views-view-table.tpl.php

Аватар пользователя Integral Integral 7 апреля 2009 в 11:20

Ага, да. Это кажется то место где таблица темизируется, правда. А вот где она генерируется, она ведь тоже яваскриптовая?

Аватар пользователя anpal anpal 6 апреля 2009 в 10:35

Павел

Извините не по теме. К сожалению, Вьюз не использую, но с помощью этого модуля можно исправить баг в модуле Paging - пустые страницы, если имеется одна страница с текстом, то высвечивает и вторую, совершенно пустую. При заполнении большим контентом, например из 12 страниц текста, добавляет еще семь пустых страниц, в итоге высвечивает 19 страниц, где семь просто лишние. Помогите пожалуйста это устранить. Спасибо

Аватар пользователя ii ii 8 апреля 2009 в 10:45

Dan,
у меня аякс работает в виде (и других)

<?php
print views_embed_view('producers');
?>

если прописывать его в node.tpl.php
в page.tpl.php уже не пашет.

Аватар пользователя ii ii 8 апреля 2009 в 11:35

Dan,
да, я проверяю на стандартной теме. версия вьюс последняя.
твой вариант работает, но без аякса. Smile если прописывать его в node.tpl.php или в форме при создании ноды - то аякс есть.

Аватар пользователя penexe penexe 13 апреля 2009 в 15:28

"Ne_L" wrote:
Можно ли заменить модуль taxonomy_menu с помощью Views

он вроде меню для словарей создает, как вы собираетесь заменить его views?

Аватар пользователя volocuga volocuga 15 апреля 2009 в 0:28

Акция ещё действует?

Как заменить вьюсой ПОЛНОСТЬЮ профиль пользователя.Имеется content profile+куча полей им созданная+Views

Show me the way!

Аватар пользователя Dan Dan 15 апреля 2009 в 11:52

2volocuga: views - это список данных одинакового типа, как правило. Ты можешь сделать список профилей - в этом смысл есть, но список полей одного пользователя... - зачем?

(Делаешь view с нужными полями, аргумент - user ID, темизируешь вывод типа материала, который "content profile")

Аватар пользователя Guide Guide 15 апреля 2009 в 14:34

У меня проблема со стилизацией вывода в блок.
Создал тип Expedition, создал в Views новый блок с выводом заголовка и тизера. Поставил фильтр на вывод только Expedition.
Блок нормально работает, но выглядит он как другие блоки, и нет расстояния между записями.
Не подскажете как это делается? Через отдельный файл в папке шаблона?

Аватар пользователя Guide Guide 15 апреля 2009 в 18:14

Извините если туплюю. Sad Но у меня еще один вопрос: Не могу понять как из блока достать переменные которые доступны на той странице в которой этот блок отображается? К примеру в типе содежимого "Пользователь" есть дополнительные поля "Всего сообщений", "Предупреждений" и "Репутация". При создании ноды по типу "Пользователь" в правом сайдбаре нужно вывести блок с помощью views, и в зависимости от параметров "Всего сообщений", "Предупреждения" и "Репутация" указать стабильность пользователя. Помогите плз Sad

Аватар пользователя ewgenk ewgenk 17 апреля 2009 в 1:48

И у меня вопрос.
Делаю сайт по обмену.
Есть словарь с предметами для обмена (free tag заполняется во время создания материала). 2 CCK поля (что меняю, что хочу получить), берущие значения из этого словаря.

Собственно вопрос: как сделать в View свободный выбор по этим полям, а не выпадающий список как у меня сейчас?

Если бы словарь был подключен к материалу как обычно, то таких проблем не возникло бы. что делать?

Аватар пользователя volocuga volocuga 19 апреля 2009 в 1:57

А вот такой вопрос: есть несколько пользователей,у которых в профиле есть поле например "Город".Используется content profile.
На сайте я вывожу где-нибудь в форме поиска ссылку на вид "Пользователи из моего города".У меня напимер горо "Киев" и я хочу найти пользователя ТОЛЬКО из своего города.
В фильтрах есть опции "Равно" или "Не равно" какому-то значению,т.е значение нужно выбирать.Я же хочу просто перейти на страницу вида,где уже всё посортировано(городов может быть очень много разных)
Как сделать?

Аватар пользователя penexe penexe 19 апреля 2009 в 3:10

volocuga wrote:
А вот такой вопрос: есть несколько пользователей,у которых в профиле есть поле например "Город".Используется content profile.
На сайте я вывожу где-нибудь в форме поиска ссылку на вид "Пользователи из моего города".У меня напимер горо "Киев" и я хочу найти пользователя ТОЛЬКО из своего города.
В фильтрах есть опции "Равно" или "Не равно" какому-то значению,т.е значение нужно выбирать.Я же хочу просто перейти на страницу вида,где уже всё посортировано(городов может быть очень много разных)
Как сделать?

проще простого) если у вас список пользователей, то добавляете Relationship Материал: Content Profile
потом в аргументах выбираете нужное поле, сск или там таксономия..
ставите настройки
Action to take if argument is not present: Provide default argument
потом
Default argument type: PHP Code
ну а тут дело техники

<?php
global $user;
$node node_load(array('type' => 'profile''uid' => $user->uid'status' => 1));
if(
$node) {
  return 
$node->field_gorod[0]['value']; // это для примера
}
?>

только не забудте закрыть доступ к виду анонимам

Аватар пользователя volocuga volocuga 19 апреля 2009 в 17:28

Ну не так уж и просто,тем более если не знать по каким ключевикам искать.Огромное спасибо,буду дерзать!

Аватар пользователя penexe penexe 19 апреля 2009 в 19:37

вроде норм, надо смотреть запрос который получается,
проверять так ли хранятся в ноде значения города
еще, проверь просто указав аргумент в строке просмотра, возможно его надо задавать ввиде цыфры

Аватар пользователя ihappy ihappy 20 апреля 2009 в 19:20

Доброго времени суток.
Самый главный вопрос. Есть поле "Год"
И я хочу сделать через фильтр в views чтобы можно было выбирать Год от и до

и еще вопрос.
У меня имеется меню
Книги
..жанр1
..жанр2
..жанр3
фильм
..жанр1
..жанр2
..жанр3

Сделал через Hierarchical Select + Exposed Filters. Все работает.
Но если я выбираю "Книги" и не выбираю "жанр*" то мне не выдает все что в "Книги"
То есть надо выбирать именно книгу и жанр. Что есть не удобно.
Как можно сделать чтобы я мог выбрать только "Книги" и мне выдало все что в Книгах есть?

Большое спасибо.

Аватар пользователя penexe penexe 20 апреля 2009 в 19:41

"metakon" wrote:
Самый главный вопрос. Есть поле "Год"
И я хочу сделать через фильтр в views чтобы можно было выбирать Год от и до

1)если поле от date есть спец виджет.
2) меню? может таксономия?

Аватар пользователя ihappy ihappy 21 апреля 2009 в 19:10

Quote:
1)если поле от date есть спец виджет.

Да поле date.
А какой виджет не можешь подсказать?

Quote:
2) меню? может таксономия?

Да при помощи таксономии.

И еще один вопрос если можно.
Я делаю значит при помощи "Exposed Filters" выборку через таксономию.
Если я беру один термин, то все хорошо. Выводится все что с термином связано.
А если я делаю несколько терминов(Hierarchical Select позволяет сделать такое) то нечего не выводится.
Просто пустая страница.
Как можно сделать сделать чтобы я выбрал три термина и мне по трем терминам выдало все материалы.
Буду очень благодарен.

Аватар пользователя penexe penexe 22 апреля 2009 в 5:01

metakon wrote:

Да поле date.
А какой виджет не можешь подсказать?

там же есть отдельная группа Date(Дата) в ней все настраивается, ставишь просто оператор в is between.
metakon wrote:
Как можно сделать сделать чтобы я выбрал три термина и мне по трем терминам выдало все материалы.

отключите недоделаный HS

Аватар пользователя volocuga volocuga 20 апреля 2009 в 23:00

penexe,вопрос по темизации grid view.Например,мне нужно вывести данные пользователя (это где то с десяток полей+аватарка+виджет рейтинга).В таблицу не хочу совать-некомпактно,поэтому делаю вид гридом,указываю количество колонок "1".Теперь пытаюсь рассортировать поля в 3 "кучки","кучки" идут в строку.

Поле 1 Поле 4 Картинка
Поле 2 Поле 5 Рейтинг
Поле 3 Поле 6

Если бы каждая "кучка" имела свой div-контейнер,всё было бы просто-задать каждому контейнеру отступ и float:left,а так код получается громоздкий и глючный

Можно ли как нибудь сгруппировать поля ТОЛЬКО для данного вида?

Аватар пользователя penexe penexe 20 апреля 2009 в 23:43

volocuga,
идешь в вид, там где список тем. в группе Row style output
будет что-то вроде views-view-fields--имя вида--page.tpl.php
это шаблон определяющий список полей, эти поля попадут в ячейку grid view
в шаблоне поля выводятся просто циклом
делай в шаблоне

<?php
foreach ($fields as $id => $field) {
  
$out .= '<b>$fields[\''.$id.'\']</b> = '.check_plain($field->content).'<br/><br/>';
}
drupal_set_message($out);
?>

рескан темплейтс, нужный подсветится, идешь в вид и обновляешь страницу
ну а потом какие поля надо обернешь в дивы и выведешь через print

Аватар пользователя volocuga volocuga 21 апреля 2009 в 0:21

Чёт не хочет шаблон цеплять.Беру любое неподсвеченное название из "Row style output",создаю файл в директории views\theme,жму "Rescan template files"-всё также жирным отмечен дефолтный

Аватар пользователя penexe penexe 21 апреля 2009 в 0:23

"volocuga" wrote:
Чёт не хочет шаблон цеплять.Беру любое неподсвеченное название из "Row style output",создаю файл в директории views\theme,жму "Rescan template files"-всё также жирным отмечен дефолтный

файл должен быть в папке с темой

Аватар пользователя volocuga volocuga 21 апреля 2009 в 0:57

Ага,шаблон цепляется,но выделен всё равно дефолтный.penexe,ты мегачеловечище и лучший друг всех нубов!Спасибо!

Аватар пользователя Integral Integral 21 апреля 2009 в 11:11

penexe, а как можно выводить в таблицу последнее добавленное значение поля если я пользуюсь content multigroup?
как можно отфильтровывать вывод ревизий полей чтобы подряд не шли два одинаковых значения поля?

Аватар пользователя penexe penexe 22 апреля 2009 в 6:53

Integral wrote:
penexe, а как можно выводить в таблицу последнее добавленное значение поля если я пользуюсь content multigroup?
как можно отфильтровывать вывод ревизий полей чтобы подряд не шли два одинаковых значения поля?

не могу сказать, не сталкивался

Аватар пользователя volocuga volocuga 22 апреля 2009 в 0:09

пытаюсь темизировать форму развёрнутых фильтров,вставляю в шаблон:

<?php
foreach ($widgets as $id => $widget) {
  
$out .= '<b>$widgets[\''.$id.'\']</b> = '.check_plain($widget->content).'<br/><br/>';
}
drupal_set_message($out);
?>

Это правильно,что $widgets?

выводится что то типа $widgets['filter-uid_current'] =

Как это заюзать? С полями ясно,такой снипет работает

<?php print $fields['some_id']->content?>

А как с развёрнутыми фильтрами?

Спасибо

Аватар пользователя penexe penexe 22 апреля 2009 в 7:00

volocuga, с виджетами
<?php
print $widgets['some_id']->operator;
// оператор обычно вырублен, это селект (Is equal to, Is not equal to и тд)
print $widgets['some_id']->widget;
?>

Аватар пользователя penexe penexe 23 апреля 2009 в 4:52

"volocuga" wrote:
Всё выводится,но без лайблов.Как выводить лейблы,чёт на друпал орге я не нашёл :(

print $widgets['some_id']->label;

Аватар пользователя gumk gumk 23 апреля 2009 в 20:19

Добрый день, не подскажете как на страницу ноды (органик групс) добавить вкладку (в табы) если включен path autho
создал вид, берет аргумент из урла, вкладка появилась но она почему-то постоянно активная и ведет на главную страницу ноды
если же вести без алиасов урл (node/152/blabla) то все работает

Аватар пользователя penexe penexe 24 апреля 2009 в 4:39

gumk wrote:
Добрый день, не подскажете как на страницу ноды (органик групс) добавить вкладку (в табы) если включен path autho
создал вид, берет аргумент из урла, вкладка появилась но она почему-то постоянно активная и ведет на главную страницу ноды
если же вести без алиасов урл (node/152/blabla) то все работает

gumk, правильно путь для вкладки надо указывать node/%/blabla

Аватар пользователя ihappy ihappy 24 апреля 2009 в 1:11

Понемногу разбираюсь в views. Без него никуда))
Родилось пару вопросов.

Например.
Я сделал страницу где через фильтры выводятся поля из профиля пользователя.
Только выводится поля всех пользователей.
Как сделать чтобы выводилось данные из профиля текущего пользователя, тот что зашел на страницу?

И второй вопрос.
Поставил модуль usernode
И хотел вывести аватар пользователя.
Выбираю Usernode: Картинка
и нечего не происходит. Картинки нету. Аватар не ставил, но в настройках указал что выводить если аватара нету.
Тоже не пойму что делать.

Буду благодарен за помощь.

Аватар пользователя volocuga volocuga 27 апреля 2009 в 23:35

penexe,тот код,что ты мне дал (фильтр по полю "Город") оказался вполне рабочим,я протупил с фильтрами:)

А вот ситуёвина такая:
К примеру,сайт знакомств,в анкете среди прочих 2 основных поля в виде выпадающих списков:

------------
Я:

мальчик
девочка
что-то среднее
------------

--------------
Ищу:

мальчика
девочку
что-то среднее
--------------

Отфильтровать по "мальчик-девочка-что-то среднее" элементарно,однако нам нужно 100% совпадение интересов,т.е если парень ищет девушку,ему должны предоставляться только те девушки,которые интересуются как минимум парнями.

Как сделать?

Аватар пользователя penexe penexe 28 апреля 2009 в 10:09

volocuga, фантазии у вас нет совсем Smile
достаточно переименовать селекты. вот смотри
как может выглядеть фильтр
ищет: (Я)
— мальчика
— девочку
— что-то среднее

а сама кто: (Ищу)
— мальчик
— девочка
— что-то среднее

другими словами, у анкеты должны быть 2 слекта в котором юзер выбирает кто он и кого ищет.
а форму придется немного темизировать заменив окончания и название селекта

Аватар пользователя Dan Dan 28 апреля 2009 в 18:21

Павел, помоги, плиз с написанием субмодуля.

Дано: "Organic groups" и "OG Vocabularies". Второй позволяет создавать словари, доступные только внутри групп.

Проблема: Отображение материалов у меня построено на views, один из них использует фильтр "Taxonomy: Vocabulary", фильтр открытый (exposed). Загвоздка в том, что отображаются все словари, а не только те, что созданы внутри этой группы.

Решение: Написать свой фильтр для словаря, который будут учитывать контекст группы. Код я набросал такой (правлю модуль OG_vocab, далее перенесу код в отдельный модуль:

--- Объявляем новый обработчик (файл og_vocab.views.inc):
<?php
/**
* Implementation of hook_views_handlers() views uses.
*/
function og_vocab_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'og_vocab') . '/views',
),
'handlers' => array(
'views_handler_filter_og_vocabulary_vid' => array(
'parent' => 'views_handler_filter_in_operator',
),
),
);
}
?>

--- Пишем для него код (взял из taxonomy_views) (файл views/views_handler_filter_og_vocabulary_vid.inc):
<?php
/**
* Filter by vocabulary id
*/
class views_handler_filter_og_vocabulary_vid extends views_handler_filter_in_operator {
function get_value_options() {
if (isset($this->value_options)) {
return;
}

$this->value_options = array();

$group_node = og_get_group_context();
if ($group_node && node_access('view', $group_node)) {
foreach ((array)$group_node->og_vocabularies as $vid => $vocab) {
$this->value_options[$vid] = check_plain($vocab);
}
}
}
}
?>

--- А вот дальше - затык. Как привязать этот обработчик к уже определённым таблицам таксономии? Вот так не работает (фильтр не отображает словари) (файл og_vocab.views.inc):
<?php
/**
* Implementation of hook_views_data_alter().
*/
function og_vocab_views_data_alter(&$data) {
$data['vocabulary']['og_vocabulare'] = array(
'group' => t('-OG-Vocab'),
'title' => t('-OG Vocabulare'),
'real field' => 'vid',
'filter' => array(
'handler' => 'views_handler_filter_og_vocabulary_vid',
),
);
}
?>

PS: в модуль og_vocab.module информацию о версии API views поместил (og_vocab_views_api()....)

Аватар пользователя penexe penexe 28 апреля 2009 в 19:19

Dan, мб так?

<?php
function og_vocab_views_data_alter(&$data) { 
  
$data['term_data']['og_vocabulary'] = array( 
    
'title' => t('OG Vocabulary'),
    
'help' => t('Filter the results of "Taxonomy: Term".'), 
    
'real field' => 'vid'
    
'filter' => array( 
      
'handler' => 'views_handler_filter_og_vocabulary_vid'
    ), 
  ); 
}
?>
Аватар пользователя volocuga volocuga 29 апреля 2009 в 0:32

"penexe" wrote:
фантазии у вас нет совсем

Да,решение действительно простое и на виду.Тока подумать чуток надо было.Спасибо!

Аватар пользователя cosmos cosmos 29 апреля 2009 в 12:16

как задать значение в exposed фильтр п умолчанию при выводе старницы
те заходим на стр а там уже в 1 из фильтров задано значаение и по нему выводится список результатов

Аватар пользователя jason32 jason32 29 апреля 2009 в 20:59

Как сделать блок с материалами, у которых определенное поле совпадает? То есть например есть поле автор, при просмотре ноды с полем автор "иванов" выводился вид всех материалов, у которых это тоже автор "иванов". Что-то со связями никак не разбирусь - выводит всё подряд, а не только Ивановых (

Аватар пользователя jason32 jason32 29 апреля 2009 в 21:41

"penexe" wrote:

Ссылка не отобразилась, но как я понял речь про отображение всех материалов пользователя. Я понимаю, что через аргументы и php - только я не знаю точного формата во Views2. Пишу примерно так:

<?php $base_node=node_load($argument);
$f=$base_node->field_trainer;
if (
$view->field_trainer==$f) return true; else return false;?>

- не работает. Сравниваем как раз по полю field_trainer, которое я к тому же вывел в полях для удобства. Как правильно, никак не пойму, в какой переменной находится текущая нода, которую надо выбрать или не выбрать в зависимости от значения поля field_trainer? Это $node может? Как обратиться то к текущей ноде?

Аватар пользователя penexe penexe 29 апреля 2009 в 22:17

jason32,
в ссылке пробел уберите и попадете на нужный коммент, а код такой


<?php
$nid 
arg(1); // это есть надо выводить блок на странице ноды
$node node_load($nid);
if(
$node) {
  return 
$node->field_trainer[0]['value'];
}
?>
Аватар пользователя jason32 jason32 29 апреля 2009 в 22:54

не работает такой код, вообще не цепляет аргумент, когда внизу вводишь один из аргументов, то без вопросов, а из ссылки аргумент не берет. Код написал вот такой, работает, если есть аргумент, но его нет ((.

<?php $base_node=node_load($argument);
if (!empty(
$base_node->field_trainer)) {
$handler->argument=$base_node->field_trainer[0]['nid'];
return 
$handler->argument;
} else return 
false;?>

Внизу пояснения для поля:
Введите PHP-код, который вернет TRUE или FALSE. Если код не вернет ничего, то это будет как FALSE, так что проверяйте - возвращаете ли вы значение, если вы не хотите, чтобы аргумент был признан некорректным. Не используйте <?php ?>. Аргумент для проверки - это "$argument", а представление - "$view".Можете изменить аргумент, установив "$handler->argument".
Если использую arg(1) - вообще ничего не выводится, походу просто не знает эту функцию может? Может тут связи нужны какие-то?

Ссылка неверная, даже если убрать пробел - http://drupal.ru/node/26420 #comment-151585, не попадаю я ни на какой коммент

Аватар пользователя jason32 jason32 29 апреля 2009 в 22:54

короче проблема локализовалась. Код работает, но не цепляет аргумент при отображении ноды, то есть например на ссылке node/55 не отображается блок с правильными полями, а создал страничный вид для страницы veds, и на странице veds/55 всё правилно выводится. То есть проблема с блоком - он не цепляет $argument, и не цепляет arg(). Так как же ему скормить число 55 ?

Аватар пользователя penexe penexe 29 апреля 2009 в 23:00

jason32,
мда, код надо писать не в валидатор. раз уж не можете прочитать тот коммент продублирую его.

Action to take if argument is not present: Provide default argument
потом
Default argument type: PHP Code
вот туда мой код вставлять, в Validator options Basic validation

Аватар пользователя jason32 jason32 30 апреля 2009 в 12:11

решилось установкой
Тип аргумента по умолчанию: ID материала из URL, а код приведенный выше оставил какой есть. Так заработало. Попробовал вставить php код сверху, и базовую проверку - всё равно не работает.Возможно - нужны какие-то связи? Паршиво, что такие несостыковки с языками.

Аватар пользователя mac3k mac3k 2 мая 2009 в 13:47

Создан глоссарий по терминам словаря. В качестве терминов "Имя Фамилия" людей.
Вопрос: как сделать группировку не по первой букве терминов, это получается по Именам, а по Фамилиям, т.е. по первой букве после пробела?

Аватар пользователя volocuga volocuga 4 мая 2009 в 23:45

Возвращаясь к выводу доступных полей в шаблоне развёрнутых фильтров

Этот сниппет выводит только поля

<?php
foreach ($widgets as $id => $widget) {
  
$out .= '<b>$widgets[\''.$id.'\']</b> = '.check_plain($widget->content).'<br/><br/>';
}
drupal_set_message($out);
?>

как вывести кнопку "Go"? Спасибо.

Аватар пользователя IPlayer IPlayer 5 мая 2009 в 16:24

Да не часто такие топики (в плане концентрации вопрос-ответ) увидишь! Респект стартеру!

Вопрос:

Имеем вью, которая выводит по 10 нод на страницу (ноды - коротенькие стишки). Возможно ли после каждой ноды во вью вставить форму (свернутую) с полями для ввода мыла, темы и кнопки для отправки этой ноды по электрической почте? или какое другое красивое решение есть?

Аватар пользователя penexe penexe 5 мая 2009 в 17:07

IPlayer wrote:
Да не часто такие топики (в плане концентрации вопрос-ответ) увидишь! Респект стартеру!

Вопрос:

Имеем вью, которая выводит по 10 нод на страницу (ноды - коротенькие стишки). Возможно ли после каждой ноды во вью вставить форму (свернутую) с полями для ввода мыла, темы и кнопки для отправки этой ноды по электрической почте? или какое другое красивое решение есть?


простое решение врятли есть, тем более с views, надо писать небольшой модуль под задачу

Аватар пользователя gorr gorr 5 мая 2009 в 17:49

IPlayer, также можно в шаблон для вьюза вписать нужную форму после каждого рядка с выводом ноды.
Например форму можно сделать с помощью webform модуля. И потом вставить в шаблон для row вьюза после вывода необходимых полей, которые вьюз сам выведет node_view(node_load($form_nid));
Можно это дело завернуть в свернутый блочок еще и т.д.

Аватар пользователя IPlayer IPlayer 5 мая 2009 в 18:04

"gorr" wrote:
И потом вставить в шаблон для row вьюза после вывода необходимых полей, которые вьюз сам выведет node_view(node_load($form_nid));
Можно это дело завернуть в свернутый блочок еще и т.д.

О, спасибо за идею.. сразу вопрос... у меня, получается должно быть 10 форм однотипных на странице. Мне надо будет 10 форм делать с разными ид или одной будет достаточно? я просто с формами пока дела не имел...

Аватар пользователя gorr gorr 6 мая 2009 в 12:05

А вот еще модуль, если не хочется шаблон для вьюза править - то, что нужно. Позволяет добавлять ко вьюзу любые поля, в которые можно включать и пхп скрипты для вычислений, для которых доступны данные из базы, выведенные вьюзом. Можно и формы любые вставить.
http://drupal.org/project/views_customfield

Аватар пользователя IPlayer IPlayer 6 мая 2009 в 12:31

Ну я уже Ваш вариант (с правкой шаблона) попробовал. В принципе то, что хотел - получилось. Но и этот модуль посмотрю. Спасибо.

Аватар пользователя AkeLLbl4 AkeLLbl4 12 мая 2009 в 21:24

Conditional fields, есть что нибудь подобное для вывода полей exposed filter. Что бы поля фильрации выводились по такому же принципу как в этом модуле?

Аватар пользователя penexe penexe 12 мая 2009 в 22:09

Guide,
http://views.doc.logrus.com/ - доки, в описаниях хуков можно найти код с примерами
http://views-help.doc.logrus.com/ - хелп
http://groups.drupal.org/views-developers - группа
также дефолтные файлы node.views.inc, в них много полезных комментов

Аватар пользователя IPlayer IPlayer 15 мая 2009 в 14:15

Продолжаем постигать.....

Есть вью. У нее есть аргумент TermID. Во вью можно задать Title для страницы только с использованием термина таксономии который в аргументе. А у него есть 1-2 родителя и мне необходимо что бы в Title страницы была вся цепочка: Термин1 | Термин2 | Термин3. Как заполучить родителей?

Сам задал вопрос - мне и отвечать походу Smile

Сделал вот такой хук и к нему впридачу функцию построения заголовка.:

function modulename_views_pre_view (&$view,&$display_id,&$args)         {
$view->display_handler->set_option('title', pz_build_title($args[0]) );
        }

function pz_build_title($tid_)  {
$term_=taxonomy_get_term($tid_);
$title=$term_->name;
while (1) {
        $parents=taxonomy_get_parents($tid_);
        if (count($parents)==0) {
                break;
                }
        $title = reset($parents)->name .' | '.$title;
        $tid_=   current($parents)->tid;
}
return($title);
        }

Аватар пользователя AkeLLbl4 AkeLLbl4 17 мая 2009 в 17:58

подскажи с exposed form in block
создаю блок с закрытыми фильтрами + один раскрытый в виде выбора термина словаря таксономии, помещаю блок в колонку.
При попытке фильтровать новости на странице по термину блок передает браузеру значение ?tid=%
%-номер термина таксономии.
При этом никакой фильтрации не происходит.
Подскажи что не так.

Аватар пользователя chimkentec chimkentec 19 мая 2009 в 7:12

В профиле пользователя сделал выбор места жительства через таксономию и Hierarchical Select, как описано здесь.
С помощью Views сделал вывод краткой информации обо всех зарегистрированных пользователях. Пытаюсь прикрутить выборку по регионам.
В связи с этим такой вопрос: можно ли каким-нибудь образом ограничить список терминов в exposed фильтре только теми городами, которые были выбраны пользователями, чтобы не грузился список всех городов, какие только есть в словаре?

Аватар пользователя penexe penexe 19 мая 2009 в 8:03

chimkentec, стандартными средствами views это не решить.
надо делать свой обработчик для фильтра либо идти путем изменения формы через hook_form_alter

Аватар пользователя volocuga volocuga 21 мая 2009 в 22:43

penexe,мне нужно в профиле вывести блок с аватарками (аватарки в виде поля imagecashe) пользователей,кто смотрел этот профиль.

Можно ли вьюсами сделать такой блок?

Спасибо.

Аватар пользователя WiseMan WiseMan 23 мая 2009 в 13:14

Вопрос: можно ли реализовать через views вывод персональной формы контактов пользователя в зависимости от его принадлежности к домену созданному через модуль domain с включенным Domain Views + Domain User

Последний связывает выделенные поддомены с пользователями.

Получается, что domain интегрирован с views, но предоставляет только фильтры - id домена и т.п. - а среди аргументов чего-либо похожего не наблюдается.

Подскажите, пжта, можно ли как-то сделать, чтобы в меню была ссылка типа "Контакты", но на каждом поддомене это были свои контакты, контакты владельца поддомена к которому он привязан через Domain User

Domain предоставлялет API, включая domain_user.module, но я не особенно силен в программировании (чую без этого не обойтись в данном случае) хотя... потому и спрашиваю.

Помогите, пжта.

Аватар пользователя gumk gumk 23 мая 2009 в 14:54

А как сделать отображение всех постов, которые принадлежат группам, и которые не пренадлежат? (тип материала один и тот же)?

Аватар пользователя ihappy ihappy 24 мая 2009 в 5:26

У меня сложилась такая ситуация.
Надо вывести в панели 6 вьювов у которых стоит аргумент на user id
Хочу сделать одну панель и туда кинуть 6 вьювов и чтобы у панели не было четкого адреса, чтобы аргументы работали с панелью и по разным ссылкам эту панель выводило с применением аргументов.
Возможно ли это?
Может вопрос тут больше про панели, но я не пойму в чем бок у меня, либо панели ковырять или ковырять вьювы.
Интересует мнение.
спасибо.

Аватар пользователя jason32 jason32 28 мая 2009 в 13:31

"gumk" wrote:
А как сделать отображение всех постов, которые принадлежат группам, и которые не пренадлежат? (тип материала один и тот же)?

В 6-ке не знаю, а 5-ке пришлось писать для этого фильтр самому, в коробке нету. Видимо только руками

Аватар пользователя restyler restyler 4 июня 2009 в 12:11

хочу добавить определенный процессинг ко views (если конкретнее, менять сортировку основываясь на переменных из $_SESSION)
Так вот, запарился - все изменения которые я делаю в хуке модуля как будто не применяются. Функции вызываются, точно.
пробовал hook_views_pre_execute, hook_views_pre_view:
Элементарный код:

<?php
function site_helper_views_pre_view (&$view,&$display_id,&$args) {
drupal_set_message('called pre_view ' . $view -> name);
$view->display_handler->set_option('title', 'we' );
}

function site_helper_views_pre_execute(&$view) {
drupal_set_message('called pre_execute ' . $view -> name);
$view->display_handler->set_option('title', 'we' );
}
?>

никаких изменений в реальном отображении, чисти кеш-не чисти толку нет..

Аватар пользователя Dan Dan 4 июня 2009 в 12:42

2restyler

Менял сортировку в exposed-форме, основываясь на строке запроса. Тебе думаю можно делать аналогично, только брать не из $_GET, а из $_SESSION.

Сама форма фильтров у меня изменена функцией function МОДУЛЬ_form_views_exposed_form_alter( &$form, &$form_state )

Вот кусок:
<?php
function МОДУЛЬ_views_query_alter(&$view, &$query) {
// имя views -- competitors
if($view->name == 'competitors'){
// в форму добавлен выпадающий список сортировки - дата, рейтинг,...
if(isset($_GET['custom_sorting'])){
switch($_GET['custom_sorting']){
case 'date':
$query->orderby[]= 'node_created DESC';
$query->fields['node_created'] = array('field'=>'created', 'table' => 'node', 'alias' => 'node_created' );
break;
...........................
default:
}
}
}
}
?>

Аватар пользователя restyler restyler 4 июня 2009 в 18:41

ага, так получилось, спасибо! во views как копнешь так и не раскопаешься)
интересно конечно, почему через мои хуки не работает..

Аватар пользователя jason32 jason32 6 июня 2009 в 16:39

Вывожу фильтр по таксономии, термин необязателен при фильтрации,но система по умолчанию ставит первый термин из списка. Мне же нужно, чтобы при заходе на вид термин был не выбран и можно было его выбрать( или же не выбирать вообще). Никак не могу найти подобную настройку, уже все перерыл

Аватар пользователя jason32 jason32 9 июня 2009 в 22:11

"penexe" wrote:
jason32, в настройках фильтра

Галочка стоит и так. Убирание её лишает пункта "Любой" в списке, что неправильно. Поясняю ещё раз - по умолчанию должен стоять именно этот пункт, чтобы при заходе на фильтр отображались все возможные варианты, без фильтрации. Не помогло, короче

Аватар пользователя penexe penexe 10 июня 2009 в 4:03

"jason32" wrote:
Поясняю ещё раз - по умолчанию должен стоять именно этот пункт, чтобы при заходе на фильтр отображались все возможные варианты, без фильтрации.

ну он и стоит, обновите views до последней может там работает.
либо какие-то модули "влезли" в этот механизм

Аватар пользователя jason32 jason32 10 июня 2009 в 7:04

"penexe" wrote:
ну он и стоит, обновите views до последней может там работает.
либо какие-то модули "влезли" в этот механизм

Никаких вроде модулей нет, версия последняя, но вох и ныне там - выбирается автоматом первый сверху пункт, а не "Любой". Есть варианты, как побороть?

Аватар пользователя thehil thehil 10 июня 2009 в 9:49

Помогите, пожалуйста, решить задачу с помощью views. Имеется тип материала, в котором есть 4 числовых поля: день и месяц начала сезона, день и месяц конца сезона (без указания года, т.е. сезоны ежегодно в одно и то же время). Использовать date для этих целей не удалось, т.к. в дате никак нельзя уйти от привязки к году. Например: начало сезона 1 мая, конец — 15 сентября:

field_from_day_value   = 1;
field_from_month_value = 5;
field_to_day_value    = 15;
field_to_month_value  = 9;

Нужно вывести только те материалы где текущая дата попадает в диапазон между началом и концом сезона. Например, если сегодня 1 апреля, то приведённый сезон выводить не нужно, а если 15 мая — то нужно. Пока решил с помощью php-блока:


<?php
  $sql 
"SELECT np.nid, np.title, n.title as season
  FROM node n, node np, content_field_parent p,
(
select s.nid,
MAKEDATE(YEAR(CURDATE()),1) + INTERVAL s.field_from_month_value - 1 MONTH + INTERVAL s.field_from_day_value - 1 DAY as d1,
MAKEDATE(YEAR(CURDATE()),1) + INTERVAL s.field_to_month_value - 1 MONTH + INTERVAL s.field_to_day_value - 1 DAY as d2
from content_type_season s
) s
 WHERE s.nid = n.nid
   AND n.nid = p.nid
   AND np.nid = p.field_parent_nid
   AND ((d1 <= d2 AND CURDATE() BETWEEN s.d1 and s.d2) OR (d1 >= d2 AND CURDATE() NOT BETWEEN s.d2 and s.d1))"
;

$result db_query_range($sql010);
while (
$node db_fetch_object($result)) {
  
$output[] =  l($node->title"node/$node->nid") . ". $node->season";
}
print 
theme('item_list'$output);
?>

Хотелось бы использовать views, т.к. кроме блока нужна ещё и страница со списком всех сезонов. Да и удобнее через views редактировать. Помогите.

Аватар пользователя jason32 jason32 15 июня 2009 в 18:21

по видимому мой вопрос таки поставил уважаемого гуру в тупик. Повторю ка я его ещё раз:
Вывожу фильтр по таксономии, термин необязателен при фильтрации,но система по умолчанию ставит первый термин из списка( хотя выше есть пункт <Любой>) . Мне же нужно, чтобы при заходе на вид термин был не выбран и можно было его выбрать( или же не выбирать вообще).
Поясняю ещё раз - по умолчанию должен стоять именно <Любой> , чтобы при заходе на фильтр отображались все возможные варианты по данному фильтру, без фильтрации.
Никак не могу найти подобную настройку, уже все перерыл.

Аватар пользователя penexe penexe 24 июня 2009 в 2:08

"PVasili" wrote:
Как перекрыть стандартный вывод taxonomy_term

выводить вид вместо друпальной страницы из таксономии? путь указать taxonomy/term/%
и аргумент.
"PVasili" wrote:
pathauto в views

написать модуль, используя hook_taxonomy который будет генерить нужные алиасы Smile

Аватар пользователя PVasili PVasili 24 июня 2009 в 10:39

"penexe" wrote:
выводить вид вместо друпальной страницы из таксономии? путь указать taxonomy/term/%
и аргумент.

а просто "забить" стандартный (чтобы он не работал)хуком _menu() только? Так было бы проще...

Странно, почему views не отлавивает страници и аргументы таксономии от патчауто вида /tax/ma_slovar/termin, от материалов же прекрасно работает /my_type_meterial/name?

Аватар пользователя jason32 jason32 17 июля 2009 в 8:05

двухуровневая таксономия. Группируем по второму уровню, выводим нумерованным списком материалы, которые лежат там. Как отгрупировать по первому уровню без правки шаблонов вывода? То есть:
Животные
-- Кошки
-- Собаки
Птицы
-- Соловьи
-- Попугаи
-------------------------
Как сделать вывод материалов так же, чтобы группировалось термины второго уровня( Кошки, собаки) группировались внутри своих родителей, а материалы уже группировались внутри них. Сделал только второе первое делаю через шаблоны( что не очень получается), но может есть какой-нибудь изящный способ?

Аватар пользователя jason32 jason32 17 июля 2009 в 16:05

уточню задачу. Есть два поля. Надо сначала сгрупировать по одному полю( первый уровень таксономии вывел в поле computed field), а потом по второму. Не нашел нигде такого.

Аватар пользователя volocuga volocuga 18 июля 2009 в 1:27

А вот ещё вопросик.Установлен модуль content profile,то есть теперь каждый профиль пользователя=нода.К этим нодам профиля прикручена ссылка "Закладки" (используется модуль "flag").Теперь каждый пользователь может добавлять другого пользователя в свои закладки

Задача:Вывести топ пользователей,которые встречаются в закладках других пользователей наиболее часто.С фильтрами,сортировкой понятно,но тут не обойтись без аргументов...

Аватар пользователя volocuga volocuga 24 августа 2009 в 17:47

И снова я,страждущий...
Вопрос касается views 1,но,возможно,направите на путь истинный.

Итак,есть вид taxonomy/terms/term_ID,для него развёрнутый фильтр с терминами словаря,например "Производитель".Если я отрываю например категорию "Телевизоры",я получаю только телевизоры.Теперь хочу отфильтровать телевизоры "Sony",но получаю из выпадающего списка ВСЕХ производителей,которые есть на сайте.

Как динамически ограничить показываемые термины в развёрнутом фильтре только теми,которые подходят для данного продукта?

Аватар пользователя nBezborodov nBezborodov 4 сентября 2009 в 13:12

Добрый день, очень нужен совет-разъяснение по поводу переопределения вывода терминов.
Необходимо создать несколько разных представлений, для разных терминов. Используя стандартное представление taxonomy/term/% мы заменяем все термины из всех словарей. Видимо можно назначить отдельным терминам вьюс используя прямой адрес к термину (taxonomy/term/13). Но, что делать если таких терминов несколько, а что еще более страшно количество их изменяемое. Я использую для терминов определенного словаря (его термины должны иметь свой вид, отличный от вида других терминов в других словарях) автоалиасы типа brand/[cat-raw], но вьюс не понимает адрес brand/%.
Объясните плис, как быть в такой ситуации, что можно сделать...
Заранее, большое спасибо.

Аватар пользователя penexe penexe 4 сентября 2009 в 13:43

модуль taxonomy_redirect
вам надо выделить словарь брендов и сделать для них другое представление, тогда в настройках модуля выберите нужный словарь и укажите путь brand/!tid, ну а потом views2 будет принимать путь brand/%

Аватар пользователя nBezborodov nBezborodov 4 сентября 2009 в 16:00

спасибо)
только пока не помогло, что то страшное произошло после включения этого модуля и после введенных настроек. Облако тегов, выводящее термины этого словаря, перестроилось и теперь отображает все наоборот, там где больше материала выглядит намного меньше того где нод немного. Кроме того не работают ссылки на термины (страницы недоступна).
Может мешает autopath?

Аватар пользователя nBezborodov nBezborodov 7 сентября 2009 в 12:31

"nBezborodov" wrote:
спасибо)
только пока не помогло, что то страшное произошло после включения этого модуля и после введенных настроек. Облако тегов, выводящее термины этого словаря, перестроилось и теперь отображает все наоборот, там где больше материала выглядит намного меньше того где нод немного. Кроме того не работают ссылки на термины (страницы недоступна).
Может мешает autopath?

проблему так и не решил. taxonomy_redirect поставил как и сказали для словаря brand/!tid
Мне кажется проблема с autopath. При настройке [tid] он добавляет к алиасам (-0), получается адрес типа brand/9-0
если вручную изменить на brand/9 (стереть -0), то алиас работает.
Из просмотра синонимов:
brand/9 taxonomy/term/ - это видимо taxonomy_redirect создает, при этом ссылка не работает.
brand/9-0 brand/9 - autopath заменяет

Аватар пользователя Dan Dan 7 сентября 2009 в 17:55

Проблемы ву алиасах, разберитесь, кто что создаёт. taxonomy_redirect алисы _не_ создаёт! Он устанавливает обработчик для термина по существующему системному пути.

Аватар пользователя volocuga volocuga 8 сентября 2009 в 4:03

Мда,а я то бился с этим стандартным taxonomy/term.Всё же часами втыкать в форумные посты полезно,проскакивают озарения Smile

Аватар пользователя penexe penexe 8 сентября 2009 в 18:20

"PVasili" wrote:
Отчего могут не дружить Аргументы с Фильтрами? По отдельности все работает - вместе нет.

больше инфы, больше...

Аватар пользователя PVasili PVasili 8 сентября 2009 в 19:10

"penexe" wrote:
больше инфы, больше...

К материалу привязано 2 словаря.
Первый в фильтры (Таксономия: Термин ID), второй в аргументы (Таксономия: Синоним термина).
По отдельности - всё ОК. Как вместе - траблы.
При аргументах = Таксономия: ID Термина оба словаря работают...
Думал, может особенность есть совместного использования.

Полез смотреть разницу в генерируемых запросах...

Аватар пользователя penexe penexe 9 сентября 2009 в 0:11

должно работать, сам проверил. а в чем траблы? неправильный запрос в бд?
или просто ничего не выводится?

Аватар пользователя PVasili PVasili 9 сентября 2009 в 1:35

"penexe" wrote:
неправильный запрос в бд?
С этим и проблема Sad

SELECT node.nid, node.title
 FROM node node
 INNER JOIN term_node term_node ON node.vid = term_node.vid
 INNER JOIN term_synonym term_synonym ON term_node.tid = term_synonym.tid
 WHERE (node.status <> 0) AND (node.type IN ('story')) AND (term_node.tid = 170) AND (term_synonym.name = 'test')

К отфильтрованному добавляем какой-то воздух... Sad

Аватар пользователя penexe penexe 9 сентября 2009 в 3:31

PVasili, был неправ и вправду так не работает
но вот при галочке в аргументах Allow multiple arguments to work together работает

Аватар пользователя Dan Dan 13 сентября 2009 в 2:56

Views не распознаёт конструкцию вида /taxonomy/term/1,2,3?

Стоят два аргумента: "Таксономия: Term ID (with depth)", "Таксономия: Term ID depth modifier". Со вторым понятно, проблемы с первым:
- установлена опция валидации и проставлен параметр "Term IDs separated by , or +"

При таком раскладе, views формирует:
...(SELECT tn.vid FROM term_node tn WHERE tn.tid = 1)...

Если включить опцию "Allow multiple terms per argument", то:
...(SELECT tn.vid FROM term_node tn WHERE tn.tid  IN (1,2,3) )...

То есть выборка идёт по ИЛИ, хотя путь указан по И (1,2,3). В описании опции так и написано: "If selected, users can enter multiple arguments in the form of 1+2+3. Due to the number of JOINs it would require, AND will be treated as OR with this argument."

Засим вопрос: возможно ли заставить views обрабатывать термины по И?

Аватар пользователя mac3k mac3k 24 сентября 2009 в 20:52

Здравствуйте всем!
Надо переделать трекер - добавить новую колонку: "Материал: Автор последнего комментария", и, чтобы это поле ссылалось не на профиль юзера, а на последний комментарий или подменять ее ссылку с поля "Материал: Новые комментарии".
Подскажите плиз, как подобное сделать.

Аватар пользователя volocuga volocuga 9 октября 2009 в 1:11

Как вывести вьюсами топ авторов?Для форума.Суммировать (или на крайняк просто комментарии) количество созданных нод (топиков) и количество каментов,созданных пользователем.В лоб,клацая мышкой не получилось.
Нашёл нечто похожее http://drupal.org/node/302030,но здесь без аватарок (добавить не могу,т.к не дружу с пхп) и нет гибкости.

Спасибо Wink

Аватар пользователя cmdhitman cmdhitman 11 октября 2009 в 22:22

Не подскажете как вывести связи пользователей и самих пользователей попарно которые взаимосвязаны - модуль взаимосвязей user relationships. Заранее спасибо

Аватар пользователя ii ii 16 октября 2009 в 7:33

Как в exposed фильтре вывести селект с терминами определенного словаря, которые находятся на определенном уровне иерархии?

Конкретно - мне нужно организовать форму поиска товаров одно из полей которой - производитель. Производители у меня представлены терминами таксономии, причем стоят они на втором уровне иерархии. Первый уровень - вид товара, второй - наименование производителя, третий - коллекция производителя. (Еще одна сложность - это то, что один производитель может иметь нескольких родителей, то есть выпускать несколько видов товара). Вот такая жопа.

Отмечу, что искать мне нужно именно по производителю. Вид товара и коллекция производителя в селекте отображаться не должны.

Аватар пользователя Drugan Drugan 3 ноября 2009 в 7:58

Есть представление, в котором сделан фильтр по терминам таксономии. Как ограничить выпадающий список только теми терминами, которые на текущий момент использованы в нодах?

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

Доброго времени суток... Мучаюсь с вкладками на views_tabs. Подскажите как реализовать: sitename.com/portfolio тут должно быть три вкладки с со слайд шоу на лайтбокс. На одну ноду все нормально выводится...а вот как вкладки реализовь с помощью views_tabs никак понять не могу... Я еще не очень шарю в views так что пожайлуйста попдробнее... Очень буду благодарен... и еще в английском не силен...

Аватар пользователя Dan Dan 9 ноября 2009 в 6:04

Вместо views_tabs я бы рекомендовал [module=quicktabs] - он универсальнее и функциональнее.
А по поводу views_tabs - посмотрите в "Основных настройках" "Стиль" и "Стиль строки" - скорее всего там. Ну в "Administer › Site configuration › Views Tabs" на всякий случай.

Аватар пользователя Azon Azon 9 ноября 2009 в 19:18

Спасибо посмотрю. В "Administer › Site configuration › Views Tabs" все включил. В основных настройках > есть "Views Tabs" но каким макаром они настраиваются не понятно... как не мучился или пустой результат или ошибку выдает. Как я понял там прикол с аргументами... но как его настроить не понятно... помогите плиз...

Аватар пользователя digital_sword digital_sword 24 декабря 2009 в 22:44

Такой вопрос: на сайте таксономия организована так:
Словарь местоположение:
Термин Уфа
-термин улица Ленина
-Гоголя
-Глинки

Термин Москва
-улица Пушкина
-Лермонтова
-Чехова

Добавить в exposed фильтр поиск по улицам - не проблема. Включил фильтр и все. Но как по городам? Может, с аргументами как-то замутить?

Допустим, нужны все материалы со старшим терсином "Уфа".
Или как-то сделать, чтобы пользователь изначально город выбрал где-то, а эту форму убрать...

Есть советы?

Аватар пользователя rujet rujet 11 февраля 2010 в 9:35

Стоит задача: вывести через views популярные пути за определенный период.
Для подсчета статистики использую visitros http://drupal.org/project/visitors

Для использования таблиц модуля visitors воспользовался модулем Table wizard. Для подсчета использовал Views GroupBy.

Все отлично: выводятся популярные пути в порядке убывания.

Но есть одна трабла. Не могу сделать выборку за определенный период.
Так как в таблице visitors дата-время хранится в unixtime и тип данных поля int.
1. То есть views не воспринимает это поле как дата и соответственно к нему применить фильтры для даты.
2. Необходимо сделать выбору за определенный период. А фильтрах можно прописать только определенные значения.

Модуля формирующего фильтры динамически из php я не нашел.
Есть материал http://drupal.org/node/70145. Но это для 5-й версии.
Еще http://drupal.org/node/335037 и http://drupal.org/node/550886. Не заработало.
Еще есть вариант модифицировать SQL-запрос на лету http://www.drupal.ru/node/29934.

Как сделать динамические фильтры для views2/drupal6?

Аватар пользователя BurnRam BurnRam 11 февраля 2010 в 15:12

Ну и мне уже помогите http://www.drupal.ru/node/40256

Помогите новичку, плиз

Делаю магазин на ubercart, вывожу через обычную таксономию, views прикручен
с помощью CCK добавил тип продукта и текстовые поля характеристик, например field_size1,field_size2 - размер и field_color1, field_color2 - цвет, ввожу их при создании материала

нужно: что бы пользователь при заказе мог выбрать цвет из 2-х и размер из 2-х вариантов и соответственно что бы все это в корзине отображалось.

Знаю, что нужно делать через аргументы к views, а как, не знаю. Расскажите, плиз поподробнее и куда эти аргументы вставлять?

заранее благодарен

Аватар пользователя rujet rujet 11 февраля 2010 в 16:04

"penexe" wrote:
rujet, а нельзя ли в таблице tw_columns значение coltype поменять с int на datetime? только кеш вьюсов сбросить.

Нет, я не нашел как менять тип данных в table wizard .

Я пошел другим путем.
http://groups.drupal.org/node/10129
Нашел как обращаться к фильтрам из php.
И в блоке набрал такой php-код:

<?php
//Обращаемся к views
$view = views_get_view("popular_node");
//Выбираем дисплей
$display_id = "page_1";
$view->set_display($display_id);
//Что то делаем с кэшем
$view->is_cacheable = FALSE;
//Назначаем фильтр минимальную дату - 36 часов назад
$view->display[$display_id]->display_options['filters']['visitors_date_time']['value']['min']=time()-129600;
//Назначаем фильтр максимальную дату - текущую дату
$view->display[$display_id]->display_options['filters']['visitors_date_time']['value']['max']=time();
//Выбираем сколько строк войдет в выборку
$view->display[$display_id]->handler->options['items_per_page'] =10;
//Вывод views
print $view->preview($display_id);
?>

Замечание. Фильтры уже заведены в дисплее. Все параметры которые меняются, обязательно должны быть заведены в самом дисплее (в моем случае page_1). А не браться по умолчанию из дефолтового дисплея.

Аватар пользователя digital_sword digital_sword 26 февраля 2010 в 1:23

Темизирую exposed фильтр. Нашел на форуме, что нужно найти в папке модуля файл views-exposed-form.tpl и переместить в папку темы. Сделал. Изменяю - нет реакции от сайта.

Во что его стоит переименовать? Жал на reskan template files, нет там ничего со словом exposed...

Аватар пользователя digital_sword digital_sword 26 февраля 2010 в 1:56

Ну точно! Кэш. Торможу. Спасибо!
Вопрос по навеске уникальных стилей, как можно навесить стиль = машинному имени поля (ну или другому слову)?
Я вижу, как в этом файле создается описание метки, где описан ввод exposed поля. Но как этот класс вставить, какой переменной?

Аватар пользователя penexe penexe 26 февраля 2010 в 2:04

digital_sword wrote:
Ну точно! Кэш. Торможу. Спасибо!
Вопрос по навеске уникальных стилей, как можно навесить стиль = машинному имени поля (ну или другому слову)?
Я вижу, как в этом файле создается описание метки, где описан ввод exposed поля. Но как этот класс вставить, какой переменной?

либо я туплю, либо там в цикле есть переменная $id

Аватар пользователя v.menshikov v.menshikov 6 апреля 2010 в 22:02

есть словарь:

Мужская парфюмерия
-Armani
-Boss
-Lacoste
Женская парфюмерия
-Balmain
-Celine
-CK

Можно ли сделать views который , например, будет показывать на странице с url вида man/B

-Boss

с условием что с термином Boss связаны какие-либо ноды?

Аватар пользователя iNFerNo iNFerNo 6 апреля 2010 в 23:54

Как убрать заголовок пустого поля?

т.е. для пользователя выводится и полле и заголовпк для гостя не выводится поле и не должно выводится заголовок этого поля. а он выводит... куда копать.

Аватар пользователя Ne_L Ne_L 27 мая 2010 в 2:00

Что за поле delta в новых Views -ах?
на org судя по результатам поиска уже многие пользуют - а я никак не могу понять для чего оно.
Те кто знает что это - расскажите.

Аватар пользователя Dan Dan 27 мая 2010 в 3:25

Если это в пейджере, то далеко не новый параметр.
Используется в случае нахождения на одной странице нескольких списков с "листалками".

Аватар пользователя Ne_L Ne_L 27 мая 2010 в 10:36

Нет, я про поле (field), оно появляется для Taxonomy полей CCK материала. вышлядит как "Content: Название поля (тип поля) - delta"

Аватар пользователя penexe penexe 27 мая 2010 в 10:53

Ne_L wrote:
Нет, я про поле (field), оно появляется для Taxonomy полей CCK материала. вышлядит как "Content: Название поля (тип поля) - delta"

это скорее всего для полей с множественными значениями

Аватар пользователя Ne_L Ne_L 27 мая 2010 в 17:14

да - точно - так вернее
а какое предназначение у этой "delta"?
Что с помощью неё можно сделать? На(самый простой)пример

Аватар пользователя gunnya gunnya 11 июня 2010 в 8:14

Подскажите, если я делаю фильтрацию Таксономия:Term выводятся поля "оператор" и "значение", куда вводится значение вручную... как сделать, чтобы не вбивать значение вручную, а выбирать из словаря?

Аватар пользователя penexe penexe 11 июня 2010 в 8:27

gunnya wrote:
Подскажите, если я делаю фильтрацию Таксономия:Term выводятся поля "оператор" и "значение", куда вводится значение вручную... как сделать, чтобы не вбивать значение вручную, а выбирать из словаря?

Selection type: Dropdown

Аватар пользователя AkeLLbl4 AkeLLbl4 11 июня 2010 в 20:17

Имеится views и date.
Создана вьюха сортирующая ноды по времени.
Как сделать чтобы если число в поле datestamp совпадало с сегодняшним отображалось не число а надписью "Сегодня" и аналогично "Завтра"

Заранее спасибо за помощь!

Аватар пользователя penexe penexe 14 июня 2010 в 15:45

AkeLLbl4 wrote:
Имеится views и date.
Создана вьюха сортирующая ноды по времени.
Как сделать чтобы если число в поле datestamp совпадало с сегодняшним отображалось не число а надписью "Сегодня" и аналогично "Завтра"

Заранее спасибо за помощь!


в шаблон для поля

<?php
$now = time();
$data = $row->{$field->field_alias};

$today = format_date($now, 'custom', 'Y|n|j');
$date = format_date($data, 'custom', 'Y|n|j');
$tomorrow = date("Y|n|j", $now + 86400);

if($date == $today) {
  print 'Сегодня';
}
elseif ($date == $tomorrow) {
  print 'Завтра';
}
else {
  print $output;
}

Аватар пользователя ii ii 14 июня 2010 в 12:23

подскажите, пожалуйста, как добавить в exposed filter критерий по возрасту - "щенок" (до года), "подросток" (от года до двух) и "взрослый" (от двух лет), если в таблице хранятся даты рождения?

Аватар пользователя penexe penexe 14 июня 2010 в 15:46

ii wrote:
подскажите, пожалуйста, как добавить в exposed filter критерий по возрасту - "щенок" (до года), "подросток" (от года до двух) и "взрослый" (от двух лет), если в таблице хранятся даты рождения?

без своего обработчика фильтра не получится сделать.

Аватар пользователя Dan Dan 14 июня 2010 в 14:15

Никак, у вас храняться один тип данных, а нужен вам другой.
Или писать свой модуль, который будет делать преобразование в фильтре views или в материале заводить computed field в котором хранить возраст и делать по нему фильтр "от и до" или "между".

Аватар пользователя AkeLLbl4 AkeLLbl4 26 июня 2010 в 13:03

Сделал шаблон для сегодня и завтра, но вот формат даты не выставляется и выводится криво. Деньнедели/Месяц/День/Год
http://avto-kino.ru/afisha
Как выставить человеческий формат, типа "d. m. Y - l"

Ковырял настройки поля даты, но похоже вопрос во вьюсах.

Аватар пользователя Dan Dan 26 июня 2010 в 19:04

"AkeLLbl4" wrote:
Ковырял настройки поля даты, но похоже вопрос во вьюсах.

Поковыряйте ещё раз. Формат вывода поля даты можно менять.

Аватар пользователя iNFerNo iNFerNo 28 июня 2010 в 21:28

Возникла загвоздка. Пробовал сам не входит. Может быть вьюхой это и не делается.

Задача вывести одну вьюху для двух рлей (гости и залогиненые) по разному...

разница заключается в следующем.

у гостей должно быть 5 элементов на страницу вьюхи и не должно быть страниц (постраничного вывода)

а у залогиненых по 10 элементов и со страницами.

Аватар пользователя iNFerNo iNFerNo 28 июня 2010 в 21:34

Т.е. должна быть дефолтная + 1 для гостя + для юзера

я просто дефолтную на гостя делал и другую на юзера...

или вы имееете что-то другое под фразой выводить в зависимости от роли? это выставляется в строчке Доступ:
где можно выбрать... роли.

Аватар пользователя iNFerNo iNFerNo 28 июня 2010 в 22:54

Я через вьюха скк сделал фотогалерею...

решается ли вьюхой количество фотографий (нод) в галереи для гостя определеное число, для зарегеных - полностью

кажется что это решается снипетами и они прикручиваются куданить в скк

Аватар пользователя iNFerNo iNFerNo 28 июня 2010 в 23:54

Сделал во вьюхе, но эффекта который хотел не произошло, просто визуально убрались скрылись с глаз долго большее количество нод...

Аватар пользователя iNFerNo iNFerNo 27 июля 2010 в 14:38

возможно собрать вьюху по следующим полям...

никнейм и где в данный момент находится на сайте.

мерси. о гуру.

Аватар пользователя oleg2106 oleg2106 17 августа 2010 в 20:49

Имеется тип материала Книга, у него есть поле типа image (фотка книжки)
Никак не получается вывести все книжки без фото.

Вo views1 все просто, я устанавливал оператор 'has image' для фильтра "Image: Изображение (field_book_image)" в значение нет и все.

Во views2, имеется фильтр "Содержание: Изображение (field_book_image) - list", у которого 2 значения Истина и Ложь. При выборе Ложь, представление возвращает пустой результат. При выборе Истина показываются книги с фото.

В общем, книжки с изображением я выбрать могу, а без - нет ((

Аватар пользователя penexe penexe 18 августа 2010 в 6:52

oleg2106 wrote:
Имеется тип материала Книга, у него есть поле типа image (фотка книжки)
Никак не получается вывести все книжки без фото.

Вo views1 все просто, я устанавливал оператор 'has image' для фильтра "Image: Изображение (field_book_image)" в значение нет и все.

Во views2, имеется фильтр "Содержание: Изображение (field_book_image) - list", у которого 2 значения Истина и Ложь. При выборе Ложь, представление возвращает пустой результат. При выборе Истина показываются книги с фото.

В общем, книжки с изображением я выбрать могу, а без - нет ((


В Relationships выбрать связь с таблицой вашего поля (Require this relationship галку не ставить, Delta = 1), потом в фильтре File: File fid выбрать значение Not empty

Аватар пользователя iNFerNo iNFerNo 23 сентября 2010 в 16:40

Есть ли возможность во вьевс2 вывести следующее:

1.
заголовок материала конкретного типа с результатом голосования текущим пользователем...

т.е. пользователь отдавал голоса за материалы +1 или -1

необходимо вывести заголовок материала (определенного типа) с результатами голосования текущего пользователя ( просматривющий страницу).

2.
а лучше всего может ли с вьюхой следующее сделать

на странице в выпадающем меню все заголовки типа материала за который голосвал текущий юзер) и пр и выборе чего то из списка выводило бы список пользователей которые также проголосовал.

Аватар пользователя penexe penexe 23 сентября 2010 в 16:57

"iNFerNo" wrote:
Есть ли возможность во вьевс2 вывести следующее:

1.
заголовок материала конкретного типа с результатом голосования текущим пользователем...

т.е. пользователь отдавал голоса за материалы +1 или -1

необходимо вывести заголовок материала (определенного типа) с результатами голосования текущего пользователя ( просматривющий страницу).

2.
а лучше всего может ли с вьюхой следующее сделать

на странице в выпадающем меню все заголовки типа материала за который голосвал текущий юзер) и пр и выборе чего то из списка выводило бы список пользователей которые также проголосовал.


всё можно

Аватар пользователя Ne_L Ne_L 1 октября 2010 в 16:25

Имеется табличное представление - выводится несколько таблиц которые сгруппированны по термину таксономии присвоенному ноде.
в примере есть 3 сгруппированных таблицы, -=цифры=- результат вывода строки
print $count; в темизированном views-view-table.tpl.php
Как нибудь можно докопатся до TID термина (ов) по которым осуществляется группировка таблиц.
Сейчас я это делаю с помощью такого кода в темизированном views-view-table.tpl.php

  <?php if (!empty($title)) : ?>
<?php print "<a name='".strip_tags($title)."'></a>"; print $title; ?>
  <?php endif; ?>
<table class="<?php print $class; ?>">
  <thead>
    <tr>
      <?php foreach ($header as $field => $label): ?>
        <th class="views-field views-field-<?php print $fields[$field]; ?>">
          <?php print $label; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($rows as $count => $row): ?>
<?php print "-=".$count."=-"; ?>
      <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
        <?php foreach ($row as $field => $content): ?>
          <td class="views-field views-field-<?php print $fields[$field]; ?>">
            <?php print $content; ?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>
<?php
    foreach ($view->result[$count]->node_data_field_note_field_note_value as $notes_arg) {
        $notes_args .= "+".$notes_arg[value];
    }
    if ((substr($notes_args,1)) != "") {
        print views_embed_view('notes', 'default', substr($notes_args,1));
    }    
?>

в куске кода между последними PHP тэгами я использую переменную $count, но при таком способе не получится поместить эти строки до того места как эта переменная была задана, к тому же даное решение кривовато, может быть есть более элегантный способ достучатся до TIDа термина по которому делается групировка таблиц во вьюхе.

Аватар пользователя Ne_L Ne_L 8 октября 2010 в 2:16

решил вопрос заменой значения $count
на значение первого элемента массива возвращемого функцией
$current = array_keys($rows);
получилось вот так:

  <?php if (!empty($title)) : ?>
<?php print "<a name='".strip_tags($title)."'></a>"; print $title; ?>
  <?php endif; ?>
 
<?php
    $current = array_keys($rows);
    foreach ($view->result[$current[0]]->node_data_field_note_field_note_value as $notes_arg) {
        $notes_args .= "+".$notes_arg[value];
    }
    if ((substr($notes_args, 1)) != "") {
        print views_embed_view('notes', 'default', substr($notes_args,1));
    }
?>
<table class="<?php print $class; ?>">
  <thead>
    <tr>
      <?php foreach ($header as $field => $label): ?>
        <th class="views-field views-field-<?php print $fields[$field]; ?>">
          <?php print $label; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($rows as $count => $row): ?>
      <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
        <?php foreach ($row as $field => $content): ?>
          <td class="views-field views-field-<?php print $fields[$field]; ?>">
            <?php print $content; ?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

но осталась проблемма с проверкой пустого вывода у строчки
print views_embed_view('notes', 'default', substr($notes_args,1));
она часто проявляется пустой строчкой там где выводится пустой вид.

Аватар пользователя Dan Dan 8 октября 2010 в 21:52

<?php
//...
$args = array();
foreach ($view->result[$current[0]]->node_data_field_note_field_note_value as $notes_arg) {
$args[] = $notes_arg[value];
}
if (count($args)) {
$view = views_get_view('notes');
$view_output = $view->execute_display('default', array(implode('+', $args)));
if($view->result)
print $view_output;
}
?>
Как-то так.

Аватар пользователя FORTIS FORTIS 9 октября 2010 в 20:40

как в views2 в аргументах через php-handler изменить значение существующего фильтра вьюхи (фильтр по заголовку материала) на передаваемый аргумент?

Аватар пользователя penexe penexe 10 октября 2010 в 15:20

FORTIS wrote:
как в views2 в аргументах через php-handler изменить значение существующего фильтра вьюхи (фильтр по заголовку материала) на передаваемый аргумент?

зачем? аргумент ведь итак работает как фильтр

Аватар пользователя FORTIS FORTIS 10 октября 2010 в 16:38

аргумент не может фильтровать ноды по заголовку без точного совпадения, а фильтром можно отобрать ноды заголовки которых содержат ту часть которая передана аргументом, можно обычный фильтр либо exposed, но всеравно нужно передавать значение аргумента значению фильтра. пытаюсь заставить работать finder views а он передает вьюхе как аргумент введенное в поле значение.

Аватар пользователя jobber jobber 11 октября 2010 в 13:20

При помощи hierarchical_select и CCK в словарь пользователи добавляют многоуровневые термины.
-Первый термин
--Подтермин1
--Подтермин2
---Термин подтермина1
---Термин подтермина2
Вопрос: можно вывести разным views'ом отдельные уровни словаря? На второй уровень, например, одно представление, на третий другое.
Taxonomy Views Integrator или taxonomy_redirect мог бы использовать просто приписывая терминам разные пути, но термины создаются пользователями, значит как то нужно покрутить вьюс чтоб он воспринимал уровни. Такое можно сделать?