Вставка поля в текст ноды

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

Есть нода - статья.
Чтобы она была красивее и юзабильнее хочу вставить в тексте статьи (там где -то 3 - 5 к символов) картинки и ссылки на похожие материалы.
Делать это через редактор или при создании статьи не совсем удобно, потому как статей много, а копирайтеров мало. И объяснять как и что делается не совсем правильно.
А вот если создать поле img, которое будет заполняться при создании статьи и автоматически выводится не после body и не перед ним а в тексте body... например после 4го или после 1 тысячи символов - это уже правильнее.
Я даже модуль нашел block inject, но он официально не поддерживается. Хочу попробовать программно. Может через node.tpl.php

Модули и темы:
Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя DivaDii
DivaDii 4 дня назад

Модуль block inject работает вполне нормально.
И подходит для описанной Вами цели.
Он глючит только в длиннных материалах, которые автоматически или вручную разбиваются на страницы (с пейджером).
Если длинных материалов на проекте нету, то можно использовать block inject - других неприятностей я за ним не заметила.

Аватар пользователя sas@drupal.org
sas@drupal.org 3 дня назад

Я сделал через токены

Аватар пользователя Марк
Марк 3 дня назад

находил подобное решение, но это лишняя заморочка копирайтеру. Хотя все зависит от целей.
Я все же сделал через block inject
Блок отображает представление где находится похожий материал от модуля similar.
Чуть темизировал и вуаля - образец в статье про наследство
Удобно. Копирайтер не париться вообще.
Один минус - модуль позволяет вставить всего один блок. Хотя если над ним поработать можно было увеличить количество до двух

Аватар пользователя Марк
Марк 3 дня назад

Еще к бутстрапу прикрутил affix
и довольно элегантное слежение за менюшкой

если кому пригодиться
jQuery(document).ready(function($){
$('#block-toc-node-toc-node').affix({
offset: {
top: 100
}
});

$(window).scroll(function(){
$('.toc-item-anchor a').each(function(){ //запускаем функцию для каждого заголовка
if($(this).offset().top<$(window).scrollTop()+1){ //которая срабатывает при прокрутке
var currentclass =$(this).attr('name'); //записываем название айдишников
$('.toc-node-level-2 a').each(function(){ //запускаем функцию для каждого пункта меню
if($(this).attr("href").indexOf(currentclass) + 1){ //проверяем наличие в пункте меню анкора из заголовка
$(this).addClass('first'); // добавляем класс если есть
}
else {
$(this).removeClass('first'); //удаляем если нет
}
});
};
});
});
})

Аватар пользователя Марк
Марк 3 дня назад
DivaDii написал:
Модуль block inject работает вполне нормально.

И подходит для описанной Вами цели.

Он глючит только в длиннных материалах, которые автоматически или вручную разбиваются на страницы (с пейджером).

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

не получалось использовать 2 и более блоков через этот модуль на одном материале?

Аватар пользователя DivaDii
DivaDii 2 дня назад

Получалось без проблем. Только надо смотреть на _длину_ материала.
Там же подсчет абзацев "хитрый".
Вставить в какое-то конкретное место (после 2-го и 6-го абзаца, допустим) мне не удавалось. Впрочем, у меня не было такой точной задачи. Мне надо было, чтобы блоки-врезки (автор текста и похожие материалы) где-то внутри материала.

Аватар пользователя Марк
Марк 2 дня назад

Странно. Я не смог в тот же тип материала вставить второй блок. При создании второго блока в перечне отсутсвует тип который уже используется.

Аватар пользователя DivaDii
DivaDii 2 дня назад

Сейчас стала проверять - действительно новый регион не добавляется в тот же тип материала. хм...
Тогда не помню.
Либо была предыдущая версия модуля, где эта возможность была.
Либо я два блока (автор + похожие материалы) вставляла в один регион, один над другим.
Сейчас ещё покопаю.

....
Дополняю. Посмотрела... не, не помню.
Кажется мне, что ставила на сайт два независимых региона и в каждом по блоку.
Но это было давно - в 2015 году.
Может быть, память подводит. :(
А после того переверстывала сайт. И сейчас только один блок в одном добавленном регионе.

Аватар пользователя Марк
Марк 1 день назад

я этот модуль попробую доработать.