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

Аватар пользователя VasyOK VasyOK 24 марта 2018 в 13:01

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

0 Thanks

Комментарии

Аватар пользователя bumble bumble 24 марта 2018 в 13:22

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

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

Аватар пользователя VasyOK VasyOK 24 марта 2018 в 13:42

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

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

Аватар пользователя bumble bumble 24 марта 2018 в 13:47
Аватар пользователя VasyOK VasyOK 24 марта 2018 в 15:38
<script>
function myModule_ajax_load() {
  jQuery("#ajax-target").load("/node/get/ajax/11");
}
</script>

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

Аватар пользователя bumble bumble 24 марта 2018 в 16:02

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

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

Аватар пользователя VasyOK VasyOK 24 марта 2018 в 16:11

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

Аватар пользователя VasyOK VasyOK 24 марта 2018 в 17:19

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

Аватар пользователя VasyOK VasyOK 24 марта 2018 в 17:27

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

<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 24 марта 2018 в 17:31

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

Аватар пользователя VasyOK VasyOK 4 апреля 2018 в 22:35

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

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