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

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

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

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

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<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 10 месяцев назад

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

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

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

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