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

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

как сделать так чтобы не перезагружалась вся страница
, by

Добрый день.

 

Создаю тему для друпала 7, всё вроде пока получается. назрело пару вопросов.

 

немного о моей теме.

есть главное меню в регионе примари_линк (где выбирается тип контента) (и в регионе хеадер)

есть меню навигации по статьям определённого вида, которое меняется от главного меню.(в регионе левая_колонка) и (в регионе main-wrapper)

и есть колонка контент в которой собственно выводится определённый контенттип в зависимости от главного меню.  (в регионе правая_колонка) и (в регионе main-wrapper)

 

вопрос первый. 

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

потом при выборе в регионе левая_колонка перезагружается только регионе правая_колонка .

я так понимаю тут нежно пользоватся ajax только не нашёл не чего вразумительного. по этой теме.

 

вопрос второй

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

 

вопрос третий

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

 

в page.tpl.php использую drupal 7

следующий кусок кода


<script language="JavaScript" type="text/javascript">

	function setEqualHeight(columns){
		var tallestcolumn = 0;
		columns.each(function(){
			currentHeight = $(this).height();
			if(currentHeight > tallestcolumn){
				tallestcolumn = currentHeight;
				}
			}
		);
		columns.height(tallestcolumn);
	}
	$(document).ready(function() {
		setEqualHeight($(".container > div"));

});

</script>



не работает !!!
 
что ни так делаю. убил целый день.
 
 

С этим гемороем разобрался наконецто после ужина :) оказывается в 7-м Drupal не нравится когда пишут $

его нужно заменить на jQuery и всё сразу заработало с пол тычка.

как я вычетал причина том что jQuery работает в режиме noConflict

 

должно быть примерно такого вида

 

jQuery(document).ready(function() {
setEqualHeight(jQuery(".container > div"));
});

 

ну и соответственно везде $ на jQuery и будет вам счастие. 

Надеюсь комуто будет полезная информация.

 

первые 2-а вопроса остаются открытыми. 

 

 

 

1 answer
votes: 468
Answer

вопрос первый. 

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

потом при выборе в регионе левая_колонка перезагружается только регионе правая_колонка .

я так понимаю тут нежно пользоватся ajax только не нашёл не чего вразумительного. по этой теме.

Самое простое это вывести меню и добавить каждому пункту класс, допустим "menu-ajax", теперь в jquery можно добавить событие по этому классу:

$('.menu-ajax').click(function(){
  return false;
});

Теперь перейти по ссылки при включенном javascript не получится. И можно настраивать вывод в нужный регион страницы. О том как использовать ajax можно почитать здесь:

http://tutorialzine.com/2009/09/simple-ajax-website-jquery/

На а вообще в Друпале свой ajax фреймворк:

http://drupal.org/node/305747

вопрос второй

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

Если выводить через  Views, то можно использовать relations. Для каждой ноды задать поле зависимости, в подмодулях CCK есть модули user relations, node relations, для 7ки есть тоже модуль relations. Так вот задает зависимости для нод от каких-то других нод (пользователей, терминов таксономии) и уже во Views добавляем relation и аргумент который будет выбирать нужную нам ноду и уже к этой ноде привязывает relation к другим нодам.