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

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

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

Комментарии

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

19 марта 2009 в 11:11

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

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

19 марта 2009 в 11:47

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

"Также в настройках этого аргумента можно установить 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, т.е. он выводит коменты?

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

19 марта 2009 в 12:40

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

19 марта 2009 в 15:01

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

19 марта 2009 в 13:06

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

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

19 марта 2009 в 13:20

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

19 марта 2009 в 14:17

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

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

19 марта 2009 в 15:03

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

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

19 марта 2009 в 15:57

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

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

10 ноября 2015 в 11:46

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

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

16 апреля 2009 в 22:39

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

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


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

16 апреля 2009 в 23:14

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

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

16 апреля 2009 в 23:37

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

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

19 марта 2009 в 15:58

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

19 марта 2009 в 16:10

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

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

19 марта 2009 в 16:51

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

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

19 марта 2009 в 22:18

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

20 марта 2009 в 1:20

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

бывает)

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

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

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

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

20 марта 2009 в 11:44

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

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

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


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

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

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

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

20 марта 2009 в 14:42

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

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

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

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

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

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

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

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

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

20 марта 2009 в 17:49

всем привет!

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

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

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

спасибо!

21 марта 2009 в 13:30

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

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

23 марта 2009 в 15:07

Сделал блочный вьюз с аргументом 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 даже там, где точно есть соответствующие ноды, не пойму в чем ошибка?

29 марта 2009 в 15:33

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;
  }
}
?>
29 марта 2009 в 16:54

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 легко с помощью такого аргумент хендлин кода решал, а тут не выходит чего-то.

29 марта 2009 в 21:55

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

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

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

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

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

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

Я бы сделал программно:
<?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));
}
?>

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

29 марта 2009 в 21:03

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

29 марта 2009 в 22:50

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

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

Прикольно!

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

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

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

30 марта 2009 в 0:53

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

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

30 марта 2009 в 11:33

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

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

30 марта 2009 в 2:26

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

30 марта 2009 в 9:41

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'";
}
}
?>
но как-то это не очень красиво, есть ли более красивое решение?

30 марта 2009 в 11:35

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'];
?>

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

30 марта 2009 в 17:44

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

30 марта 2009 в 22:24

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

30 марта 2009 в 22:32

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

1 апреля 2009 в 5:32
Аватар пользователя ii ii 0

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

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

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

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

Не помогло.

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

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

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

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

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

2 апреля 2009 в 12:31

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

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

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

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

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

3 апреля 2009 в 9:42

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

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


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

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

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

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

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

3 апреля 2009 в 9:57

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

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

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

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

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

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

3 апреля 2009 в 13:42

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

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

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

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 } ] } });
  //--><!]]>
3 апреля 2009 в 13:58
Аватар пользователя Dan Dan 0

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

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

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

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

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

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

3 апреля 2009 в 14:14

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

3 апреля 2009 в 13:41

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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();
?>
Лишнее (аргументы) убрать. У меня заработало.

5 апреля 2009 в 17:01

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

6 апреля 2009 в 9:23

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

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

6 апреля 2009 в 9:44

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

7 апреля 2009 в 11:20

Павел

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

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

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

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

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

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

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

8 апреля 2009 в 11:35

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

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

13 апреля 2009 в 15:28

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

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

Show me the way!

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

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

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

15 апреля 2009 в 11:52

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

15 апреля 2009 в 14:34

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

15 апреля 2009 в 18:14

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

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

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

17 апреля 2009 в 1:48

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

19 апреля 2009 в 1:57

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']; // это для примера
}
?>

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

19 апреля 2009 в 3:10

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

19 апреля 2009 в 17:28

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

19 апреля 2009 в 19:37

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

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

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

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

20 апреля 2009 в 19:20

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

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

20 апреля 2009 в 19:41

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

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

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

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

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

21 апреля 2009 в 19:10

metakon wrote:

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

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

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

22 апреля 2009 в 5:01

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

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

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

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

20 апреля 2009 в 23:00

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

20 апреля 2009 в 23:43

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

21 апреля 2009 в 0:21

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

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

21 апреля 2009 в 0:23

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

21 апреля 2009 в 0:57

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

21 апреля 2009 в 11:11

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

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

22 апреля 2009 в 6:53

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

<?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?>

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

Спасибо

22 апреля 2009 в 0:09

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

22 апреля 2009 в 7:00

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

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

23 апреля 2009 в 4:52

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

23 апреля 2009 в 20:19

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

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

24 апреля 2009 в 4:39

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

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

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

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

24 апреля 2009 в 1:11

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

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

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

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

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

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

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

Как сделать?

27 апреля 2009 в 23:35

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

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

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

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

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

Дано: "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()....)

28 апреля 2009 в 18:21

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'
    ), 
  ); 
}
?>
28 апреля 2009 в 19:19

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

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

29 апреля 2009 в 0:32

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

29 апреля 2009 в 12:16

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

29 апреля 2009 в 20:59

"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 может? Как обратиться то к текущей ноде?

29 апреля 2009 в 21:41

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


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

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

<?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, не попадаю я ни на какой коммент

29 апреля 2009 в 22:54

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

29 апреля 2009 в 22:54

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

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

29 апреля 2009 в 23:00

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

30 апреля 2009 в 12:11

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

2 мая 2009 в 13:47

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

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

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

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

4 мая 2009 в 23:45

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

Вопрос:

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

5 мая 2009 в 16:24

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

Вопрос:

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


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

5 мая 2009 в 17:07

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

5 мая 2009 в 17:49

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

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

5 мая 2009 в 18:04

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

6 мая 2009 в 12:05

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

6 мая 2009 в 12:31

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

12 мая 2009 в 21:24

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

12 мая 2009 в 22:09

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

Есть вью. У нее есть аргумент 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);
        }

15 мая 2009 в 14:15

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

17 мая 2009 в 17:58

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

19 мая 2009 в 7:12

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

19 мая 2009 в 8:03

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

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

Спасибо.

21 мая 2009 в 22:43

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

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

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

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

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

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

23 мая 2009 в 13:14

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

23 мая 2009 в 14:54

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

24 мая 2009 в 5:26

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

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

28 мая 2009 в 13:31

хочу добавить определенный процессинг ко 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' );
}
?>

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

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

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:
}
}
}
}
?>

4 июня 2009 в 12:42

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

4 июня 2009 в 18:41

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

6 июня 2009 в 16:39

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

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

9 июня 2009 в 22:11

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

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

10 июня 2009 в 4:03

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

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

10 июня 2009 в 7:04

Помогите, пожалуйста, решить задачу с помощью 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 редактировать. Помогите.

10 июня 2009 в 9:49

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

15 июня 2009 в 18:21

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

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

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

24 июня 2009 в 2:08

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

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

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

24 июня 2009 в 10:39

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

17 июля 2009 в 8:05

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

17 июля 2009 в 16:05

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

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

18 июля 2009 в 1:27

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

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

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

24 августа 2009 в 17:47

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

4 сентября 2009 в 13:12

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

4 сентября 2009 в 13:43

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

4 сентября 2009 в 16:00

"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 заменяет

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

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

7 сентября 2009 в 17:55

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

8 сентября 2009 в 4:03

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

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

8 сентября 2009 в 18:20

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

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

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

8 сентября 2009 в 19:10

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

9 сентября 2009 в 0:11

"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

9 сентября 2009 в 1:35

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

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

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 обрабатывать термины по И?

13 сентября 2009 в 2:56

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

24 сентября 2009 в 20:52

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

Спасибо Wink

9 октября 2009 в 1:11

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

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

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

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

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

16 октября 2009 в 7:33

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

3 ноября 2009 в 7:58

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

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

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

9 ноября 2009 в 6:04

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

9 ноября 2009 в 19:18

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

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

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

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

Есть советы?

24 декабря 2009 в 22:44

Стоит задача: вывести через 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?

11 февраля 2010 в 9:35

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

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

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

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

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

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

11 февраля 2010 в 15:12

"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). А не браться по умолчанию из дефолтового дисплея.

11 февраля 2010 в 16:04

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

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

26 февраля 2010 в 1:23

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

26 февраля 2010 в 1:56

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

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

26 февраля 2010 в 2:04

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

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

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

-Boss

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

6 апреля 2010 в 22:02

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

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

6 апреля 2010 в 23:54

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

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

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

27 мая 2010 в 3:25

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

27 мая 2010 в 10:36

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

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

27 мая 2010 в 10:53

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

27 мая 2010 в 17:14

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

11 июня 2010 в 8:14

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

Selection type: Dropdown

11 июня 2010 в 8:27

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

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

11 июня 2010 в 20:17

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;
}

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

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

14 июня 2010 в 12:23

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

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

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

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

14 июня 2010 в 14:15

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

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

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

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

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

26 июня 2010 в 19:04

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

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

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

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

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

28 июня 2010 в 21:28

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

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

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

28 июня 2010 в 21:34

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

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

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

28 июня 2010 в 22:54

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

28 июня 2010 в 23:54

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

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

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

27 июля 2010 в 14:38

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

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

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

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

17 августа 2010 в 20:49

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

18 августа 2010 в 6:52

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

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

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

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

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

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

23 сентября 2010 в 16:40

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

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

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

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

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

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


всё можно

23 сентября 2010 в 16:57

Имеется табличное представление - выводится несколько таблиц которые сгруппированны по термину таксономии присвоенному ноде.
в примере есть 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а термина по которому делается групировка таблиц во вьюхе.

1 октября 2010 в 16:25

решил вопрос заменой значения $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));
она часто проявляется пустой строчкой там где выводится пустой вид.

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

<?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;
}
?>
Как-то так.

8 октября 2010 в 21:52

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

9 октября 2010 в 20:40

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

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

10 октября 2010 в 15:20

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

10 октября 2010 в 16:38

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

11 октября 2010 в 13:20