Как вывести фильтрацию и сортировку views в разные блоки.
Здравствуйте. Существует такая проблема. Создал вьюху в виде странице. Раскрыл фильтрацию по полю таксаномии, вывел эту фильтрацию в блок. Блок разместил в правой колонке. Все это устраивает. Решил еще добавить сортировку по рейтингу - но вот в чем проблема при раскрытии сортировки для пользователей, она тоже появляется в правой колонке в блоке фильтрации. Как можно сортировку разместить с верху страницы. Т.е сортировка с верху списка, фильтрация в блоке справа.
Заранее спасибо за ответ
Здравствуйте, это можно решить с помощью jQuery, используйте appendTo():
http://api.jquery.com/appendTo/
Берете один див и переносите его в нужное место.
Можно как нибудь по подробней если не сложно. А то что то совсем не понял. Где и что прописать.
Сначала делаем это
Drupal и jQuery. Урок 1. Подключаем файл с jQuery.
Потом уже нужно добавить appendTo:
$('#селектор_того_что_переносим').appendTo($('#селектор_куда_мы_переносим'));
Огромное спасибо буду пробовать. Всегда очень вежливы с теми кто что то не знает, что встречается очень редко.
Есть еще один вопрос. Чтобы не создавать другую тему.
Допустим у меня есть поле field_statuscomment оно является списком и имеет 3 значения - отрицательный, положительный нейтральный. Если выбирают статус отрицательный, то комментарий выделяется красным цветом, если положительный то зеленым.
Поле field_statuscomment значения -
0|Положительный
1|Отрицательный
2|Нейтральный
Если у меня в head есть строчка <script src="http://knlback/misc/jquery.js?v=1.4.4" type="text/javascript">
Мне же не нужно подключать jquery.js
Во вьюсе добавил поле пользовательское <span id="span1">
Добавил шапку где ввел
<div id="div1">
Добавил подвал где ввел
$('#span1').appendTo($('#div1'));
Но почему то ничего не происходит.
Для views установил модуль views php. И в подвале создавал именно php поле.
Что делаю не так?
jQuery уже есть в друпале, его подключать не нужно. Проверьте нет ли ошибок в javascript'е. Установить плагин web developer на firefox и посмотрите здесь:
Для этого нужно править шаблон комментария:
comment-wrapper.tpl.php
https://api.drupal.org/api/drupal/modules!comment!comment-wrapper.tpl.php/7
Распечатайте массив комментария с помощью dsm(), модуля devel и сделайте проверку поля.
А если я вывожу комментарии при помощи views?
Да есть ошибка
Метка времени: 26.09.2013 12:40:05
Ошибка: TypeError: $ is not a function
Источник: http://knlback/spisok
Строка: 277
Нужно обернуть весь jquery код в
(function($){
//код
})(jQuery);
Значит нужно темизировать шаблон вьюс:
Все спасибо заработало. Все разжевали и в рот положили. Спасибо ОГРОМНОЕ. И напоследок можно вопрос. Вы как знаток друпал. Могли бы посоветовать следующее. Вопрос давное уже у меня в голове.
В общем создал я шаблон для типа заведения. Вот теперь надо мне вместо контента, выводить кучу информации разными вьюхами. Вьюха с полями, вьюха с картой, вьюха с комментариями все это на одной странице. Вопрос такой. Следует поставить модуль вроде бы panels или display suite, или же лучше править шаблон? Но я не могу вывести комментарии вьюхой, а стандартные комментарии скрыть, а оставить только форму добавления комментарий. Модулей и так много. Не хотелось бы ставить эти крупные модули.
Можно же просто вместо контента создать регион для блоков, и выводить туда вьюхи, я же правильно делаю?
Без вьюса обойтись не получится, но можно обойтись без display suite и panels (хотя если на сайте есть кеширование с apc, memcache, то эти модули не страшны), можно выводить вьюсы прямо в шаблоны с помощью module_invoke():
Вставка блока в любой шаблон (drupal insert block into template)
В помощь уроки по темизации и views:
- Создаем свою Друпал тему на основе Zen theme
- Темизация Drupal урок 1 Readme файл Zen theme
- Темизация Drupal урок 2 Верстаем главную страницу
- Темизация Drupal урок 2 часть 2 Темизация слайд-шоу (views slideshow)
- Темизация Drupal урок 2 часть 3 Заканчиваем верстку главной страницы
- Темизация Drupal урок 3 Верстаем Блог, Новости, Контакты
- Темизация Drupal урок 3 Верстаем Блог, Новости, Контакты часть 2
- Темизация Drupal урок 4 Темизация ноды. Создаем страницы сотрудников, портфолио
- Темизация Drupal урок 5 Темизация поля. Шаблон field.tpl.php.
- Темизация Drupal урок 6 Темизация Views slideshow и jcarousel
- Темизация Drupal урок 7 Темизация Термина таксономии
- Темизация Drupal урок 8 Темизация страницы пользователя user-profile.tpl.php
Как обычно огромное спасибо. Вы упомянули вот это - если на сайте есть кеширование с apc, memcache, то эти модули не страшны. Мы создаем один проект, на котором уже около 70-80 модулей. Как это может сказаться на производительности и посещаемости. Хостинг у нас it-patrol. И не могли бы вы дать ссылочки вот на это самое кеширование и оптимизацию, учитывая что вы профи в своем деле, то в скорее всего разбираетесь в этом тоже.
https://drupalbook.org/ru/forum/bystrodeystvie-sayta-na-drupal-keshirovanie
Спасибо за направление.
Здравствуйте. Чтобы не плодить темы на форуме. Снова задам вопрос здесь.
Следующая задача. Есть шаблон для определенного типа материала. На странице этого материала, не будет вывода стандартного контента, все будет сделано с помощью представлений. Не могу решить следующую задача как вывести форму комментариев. Я так понял что она выводиться вместе со всем контентом -
С ней выводиться содержимое node.tpl.php. Я удалил content. И создал на его месте блок. В этот блок я буду выводить свои представления. Так же все комментарии, созданные тоже при помощи views. Но вот как мне теперь вывести форму комментарий. Методом научного тыка, понял что можно сделать 2 шаблона node--тип материала.tpl.php. comment-wrapper--тип материала.tpl.php В моем шаблоне page--тип материала.tpl.php не удалять строчку
, она и будет выводить форму комментарий. В шаблоне node--тип материала.tpl.php удалить все кроме строчки
А в шаблоне comment-wrapper--тип материала.tpl.php удалить все кроме
Тогда будет выводиться только форма комментариев. Ну я так понял это глупое решение))))))))). Можно просто как то вывести форму комментариев непосредственно в шаблоне page--тип материала.tpl.php???
В шаблоне node.tpl.php комментарии выводятся
<?php
print render($content['comments']);
?>