Задать вопрос

Как вывести модуль Joomla посредством javascript?

Задача — выводить нужный модуль в контенте главной страницы, в зависимости от разрешения монитора на клиенте.

Решение задачи, как я её вижу, по пунктам:
В html коде шаблона вставляем код
<?php
// если находимся на главной, добавляем стандартными средствами joomla код javascript

	$menuha = & JSite::getMenu();
	if ($menuha->getActive() == $menuha->getDefault()) {
		$document = & JFactory::getDocument();
                $document->addScript('/media/system/js/vin.js');
	}
?> 


в теле материала в нужном месте добавляем строчку, в которую посредством скрипта будем вставлять модуль
<p id="vin"> </p>


код javascript (vin.js'):
setTimeout(function(){
	var vin = document.getElementById("vin");
	if (screen.width > 1152) {
	//	vin.innerHTML = "{loadposition Vinaora}"; - к сожалению оба способа 
        //      vin.innerHTML = " {module Vinaora}"; - вставки модуля тут не работают
	} else {
		//	vin.innerHTML = "{loadposition Vinaora2}"; - к сожалению оба способа 
              //        vin.innerHTML = " {module Vinaora2}"; - вставки модуля тут не работают
	}
}, 1200);


Прошу больно не пинать, понятно что гораздо правильнее допилить модуль, чтоб он приспосабливался к разным разрешениям, но хочется уже разобраться в этом вопросе для себя.

Ajax способ не подходит, вследствии того что по сути нужно вызывать один и тот же модуль с разными настройками.
аякс способ:
$(document).ready(function() {
$('#vin').load('ПУТЬ_К_ФАЙЛУ/mod_vt_nivo_slider.php');
});
  • Вопрос задан
  • 4922 просмотра
Подписаться 7 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Поместить контент модуля в скрытый блок а после загрузки dom яваскриптом переносить контент из скрытого блока в нужное место.
Не знаю как это сделать на mootols, но на jquery будет примерно так:
<div class="hidden-module" id="hm1"><jdoc:include type=”modules” name=”hiddenpos” /> </div>
<!-- html -->
<div class="visible-module" id="vm1"></div>
<script>
$(document).ready(function(){
  $('#vm1').html($('#hm1').html());
});
</script>
<source>
Ответ написан
sogologo
@sogologo
можно вопрос ) а зачем именно js выводить? просто это абсолютно не обязательно для вашего решения
Ответ написан
CanVas
@CanVas
Веб-мастер
<jdoc:include type='modules' name='module_position' />
и надо написать. а ещё надо подправить "templateDetails.xml" который лежит в корне шаблона, и туда прописать название вашего модуля, т.е.

<positions>
  <!--все стандартные позиции шаблона-->
  <position>module_position</position>
</positions>


и тогда в админке, при выборе модуля, появится эта позиция, и вы сможете в ней вывести модуль
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы