Форумчане подскажите: возможно ли загружать блоки и регионы через JS?

Аватар пользователя VasyOK

Форумчане подскажите: возможно ли загружать блоки и регионы через JS? Модулями кодингом - как угодно.

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя bumble
bumble 7 месяцев назад

Возможно. Модулями кодингом - как угодно.

Ну, или описание по-конкретнее.

Аватар пользователя VasyOK
VasyOK 7 месяцев назад

Конкретнее даже на знаю как сказать. Javascript подгружает блок или регион. Если в браузере оключен JS - то ничего не подгружается.

Можно ссыль на документацию или модули?

Аватар пользователя VasyOK
VasyOK 7 месяцев назад
<script>
function myModule_ajax_load() {
  jQuery("#ajax-target").load("/node/get/ajax/11");
}
</script>

Это можно без написания модуля использовать? В page.tpl.php например? Если да, как вместо ноды блок или регион подгружать?

Аватар пользователя bumble
bumble 7 месяцев назад

"Можно-нельзя" - это вопрос к своему внутреннему эстету и профессиональной совести.

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

Аватар пользователя VasyOK
VasyOK 7 месяцев назад

Хук меню. Мне как бы не нужно через меню. Просто страница грузится - блок или регион подгружаются.
А блок хоть можно если регион сложно?

Аватар пользователя VasyOK
VasyOK 7 месяцев назад

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

Аватар пользователя bumble
bumble 7 месяцев назад

Смеешься?? Выше куча ссылок об этом. Неужели сложно сложить вместе?

Аватар пользователя VasyOK
VasyOK 7 месяцев назад

Нет, не смеюсь. Да, сложно. Неужели то можно скрестить это:

<script>
function myModule_ajax_load() {
  jQuery("#ajax-target").load("/node/get/ajax/11");
}
</script>

и это:

<?php$block block_load($module_name$block_delta);
$blocks _block_render_blocks(array($block));
$blocks_build _block_get_renderable_array($blocks);
echo 
drupal_render($blocks_build);?>
Аватар пользователя bumble
bumble 7 месяцев назад

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

Аватар пользователя VasyOK
VasyOK 6 месяцев назад

Значит судя по всему то что мне нужно делает модуль https://www.drupal.org/project/blocklazyloader. Увы с блоками выводящими Owl Carousel, аккордеонами и табами на jQuery данный модуль не дружит.

Может другой способ отложенной загрузки блоков существует? Пока нашел только для D8 нормальный.