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

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

Что делать?

  • Темизация шаблона ноды;
  • Использование панелей;
  • Танцы с бубнами, наконец!..

 

Есть модуль, который кое-что подобное может делать. Content Injector позволяет вывести внутри материала блок с «внешним» кодом. Это можно использовать для того, чтобы добавить рекламу, допустим, от Гугла.

(В Вордпрессе подобный плагин тоже есть).

Ну а если хочется поставить в блок какой-нибудь Вьюс, а потом этот блок разместить внутри материала, среди большого количества текста? — тогда модуль Content Injector или ещё какие-то Adsense не подходят.

 

Так что же делать?!

Но вот он! Вот этот потрясающий модуль!

Block Inject

Инструкция по его настройке есть только на английском языке. Причем, некоторые настройки указаны аж в комментариях.

Исправляем эту недоработку.
Первоначальная настройка — очень простая. Такая же, как всегда у друпаловских модулей.
Переключить сайт в режим обслуживания (на всякий случай).
Закачать модуль на сайт и включить его.

Переходим в настройки модуля:

сайт/admin/structure/block-inject

 

Нажимаем на ссылку

Add inject region

 

incert1

 

Вводим имя нового региона (я назвала этот регион vstavka) и выбираем тип(ы) материалов, в которых будет доступен данный регион.
Так, на данном сайте я решила, что этот регион я буду использовать в типе Article.

 

Уже можно нажимать кнопку Create region. И для начала вполне можете так и сделать. Чтобы посмотреть на результат работы нового региона.
В дальнейшем свойства региона можно отредактировать.

А можно отметить галочкой чекбокс с Условиями. Эти условия влияют на место размещения нового блока — выше или ниже по тексту — через сколько абзацев.

incert2more

 

Ну вот. Мы уже создали целый новый регион!

 

Теперь идем в управление блоками. И переносим в этот новый регион какой-нибудь ранее созданный блок.

Я перенесла в регион vstavka блок с представлением «Похожие материалы».

 

pohogie1

 

Хм… получилось довольно неплохо…
Если вам подходит, то можно уже на этом завершить настройку.

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

И вот тут надо немного пошаманить.

1. В файле модуля block_inject.module переходим на строчку 304.

И зверски удаляем следующий кусок кода:

 

 

 // Add a clearfix div if requested
 if ($clearfix === true) {
 $region['#suffix'] .= '<div class="clearfix"></div>';
 }

 

udalit

 

2. В файле css нашей темы в самом конце добавляем вот такой кусочек:

.block-inject
 {float: right; width: 280px; margin: 3px; padding: 3px;}

 

Конечно, стиль css блока можно немножко подправить по своему разумению.

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

Ну и наконец… Вставляем в блок всякую красоту и наслаждаемся результатом.

Пример страницы со вставленным регионом вот тут

 

Правда же, замечательный модуль?

регистрация доменов
домен RU - 99 руб
домен РФ - 99 руб
www.

Тут была реклама Google Adsense. Почему я её убрала?

Не забывайте подписываться на rss и/или твиттер блога. Нажимайте на лайки.  Сделала и веду больше 15 сайтов. Точная цифра - всё время меняется. Подробнее - читайте на странице "Мои проекты". DivaDii (ДиваДии)


.

6 комментариев: Как вставить блок внутрь текста ноды?

  • АндрейNo Gravatar (28 comments):

    Кстати не знал о блок инжектере. Пользовался только AdSense Injector. И он на самом деле глючноватый.
    Спасибо за статью.

    • DivaDiiNo Gravatar (641 comments):

      Обратите внимание: блок инжектор — это модуль для Друпала. И он реально очень классный.

  • Bad PiggiesNo Gravatar (1 comments):

    Ещё один способ вставить рекламу в ноду — Insert Block. Из названия понятно что этот модуль может вставить любой блок в ноду, следовательно работать вы можете с любой рекламной системой.

    • DivaDiiNo Gravatar (641 comments):

      Спасибо за информацию.
      Я вижу, что этот модуль только dev-версии имеет. Но намного более популярный, чем Block Inject.
      Поковыряюсь, посмотрю, чем они отличаются. Возможно, — опишу различия. 🙂

  • Alex OhromenkoNo Gravatar (1 comments):

    Насколько помню просто блок можно вставить через module_invoke()

    • DivaDiiNo Gravatar (641 comments):

      Это надо вставлять в шаблон темы. То есть темизировать…
      Но в шаблоне страницы тяжело / невозможно «объяснить», что блок надо вставить где-то в конце, за пару абзацев до конца текста.
      Ведь текст всегда разной длины.
      Так вот этот модуль именно так и делает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сколько будет? *



DivaDii, aka Надежда Лях на Google+  Вверх
Плюсани!

Интересная тема!

Записи по месяцам:

Подпишись!


Читать Палю Тему в Твиттере




Введите Ваш email-адрес:



с помощью FeedBurner

Рассылки Subscribe.Ru
Лента "Палю тему"

Наш опрос:

Совершаете ли Вы ошибки при создании сайтов?

Результаты опроса

Загрузка ... Загрузка ...

Блоги:

Цыферки: