Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Как вывести фильтрацию и сортировку views в разные блоки.

Как вывести фильтрацию и сортировку views в разные блоки.
, by

Здравствуйте. Существует такая проблема. Создал вьюху в виде странице. Раскрыл фильтрацию по полю таксаномии, вывел эту фильтрацию в блок. Блок разместил в правой колонке. Все это устраивает. Решил еще добавить сортировку по рейтингу - но вот в чем проблема при раскрытии сортировки для пользователей, она тоже появляется в правой колонке в блоке фильтрации. Как можно сортировку разместить с верху страницы. Т.е сортировка с верху списка, фильтрация в блоке справа.

Заранее спасибо за ответ

1 answer
votes: 1112
Answer

Здравствуйте, это можно решить с помощью 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 и посмотрите здесь:

web developer


Для этого нужно править шаблон комментария:

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


Значит нужно темизировать шаблон вьюс:

Темизация Views, правим шаблоны view.tpl.php (поля, строки, блоки, страницы). Подключаем jquery-плагин EasySlider


Все спасибо заработало. Все разжевали и в рот положили. Спасибо ОГРОМНОЕ. И напоследок можно вопрос. Вы как знаток друпал. Могли бы посоветовать следующее. Вопрос давное уже у меня в голове.

В общем создал я шаблон для типа заведения. Вот теперь надо мне вместо контента, выводить кучу информации разными вьюхами. Вьюха с полями, вьюха с картой, вьюха с комментариями все это на одной странице. Вопрос такой. Следует поставить модуль вроде бы panels или display suite, или же лучше править шаблон? Но я не могу вывести комментарии вьюхой, а стандартные комментарии скрыть, а оставить только форму добавления комментарий. Модулей и так много. Не хотелось бы ставить эти крупные модули. 

 

Можно же просто вместо контента создать регион для блоков, и выводить туда вьюхи, я же правильно делаю?


Без вьюса обойтись не получится, но можно обойтись без display suite и panels (хотя если на сайте есть кеширование с apc, memcache, то эти модули не страшны), можно выводить вьюсы прямо в шаблоны с помощью module_invoke():

Вставка блока в любой шаблон (drupal insert block into template)

 

В помощь уроки по темизации и views:


Как обычно огромное спасибо. Вы упомянули вот это - если на сайте есть кеширование с 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']);

?>