Вставить галарею в произвольное место в тексте

Главные вкладки

Аватар пользователя zheka2 zheka2 23 июня 2015 в 21:22

Здравствуйте

Вопрос в теме
Пример страницы внизу
Т.е. внутри текста в произвольных местах вставлять галереи

В качестве галереи подходит Juicebox

Предполагаю что можно сделать через токены, но по запросу drupal gallery token толком ничего не нашёл
Есть вроде вариант сделать views с галереей и через "Token embed views" вставлять, но как то сложно ИМХО.

Комментарии

Аватар пользователя t1mm1 t1mm1 24 июня 2015 в 11:05

хм, да взять и написать свое.
по сути вам нужно написать свой токен с входным параметром айди сущности (айди ноды). И далее генерировать к этому токены вывод галереи.
Если не через токен, то сделать альтер вывода и ввязать свой уникальный тег, который будет менять на ваш код галереи.

Аватар пользователя t1mm1 t1mm1 24 июня 2015 в 11:06

Хороший пример есть на симпл мапс, там именно так сделано.
Но что бы готовый вариант - не встречал.

Кстати, спасибо за идею. На досуге напишу этот момент с галереей и подвязкой к полю имедж.

Аватар пользователя zheka2 zheka2 24 июня 2015 в 21:44

Спасибо за ответ
Раз ничего нет готового попробую своё написать

P.S. похоже это мой первый пост после которого меня не закидали помидорами Biggrin

Аватар пользователя zheka2 zheka2 24 июня 2015 в 23:49

Пошёл компромиссным путём, поставил Gallery Formatter, указал его в качестве форматера для поля с изображениями у целевой ноды (по инструкции)

Плюс модуль с реализацией токена:

function mymodule_token_info() {

        $type = array(
                'name' => t('gallery'),
                'description' => t('Gallery'),
        );

        $gallery_node['gallery_node'] = array(
                'name' => t('gallery_node'),
                'description' => t('Gallery node'),
        );

        return array(
                'types' => array('gallery' => $type),
                'tokens' => array('gallery_node' => $gallery_node),
        );

}

function mymodule_tokens($type, $tokens, array $data = array(), array $options = array()) {

        $replacements = array();

        if ($type == 'gallery') {
                foreach ($tokens as $name => $original) {
                        $node = node_load($name);
                        $display = array('type' => 'galleryformatter_default');
                        $tmp = field_view_field('node', $node, 'field_gallery_image', $display);
                        $replacements[$original] = render($tmp);
                }
        }

        return $replacements;
}

Возможно в чём-то ошибся, поправьте если так..

P.S. t1mm1, ещё раз спасибо Smile

Аватар пользователя t1mm1 t1mm1 25 июня 2015 в 12:59

Я это и имел ввиду )

С единственной поправкой - использовать без определенного форматтера и в виде постоянного тега.
Например, у вас текст в ноде :
bla bla bla bla bla bla bla bla
bla bla bla bla bla bla

bla bla bla bla bla bla bla bla
bla bla bla bla bla blabla bla bla bla bla bla bla bla
bla bla bla bla bla bla

И вы заменяете на html галереи. По такому же принципу работают токены, и вы верно все написали. Просто я не до конца понимаю, зачем форматтер для поля с кратинками. Что бы не выводить их в обычном поле? ТАк его можно было просто отключить.

Другой вопрос, что если нужно разбивать галерею. С этим сложнее. Хотя тоже решаемо (правда кастомным филд тайпом для картинок).

Кстати, как по мне - отличная идея. По моему в контриб решениях нет такого. По крайней мере я не нашел.

Аватар пользователя zheka2 zheka2 25 июня 2015 в 13:41

Заводской раб Спасибо, я похожй вариант рассматривал сначала, только с модулей "Token embed views"

t1mm1 "зачем форматтер для поля с кратинками". Просто время сэкономить, форматтер сразу выдаёт готовый html код jQuery галереи. Указывать его для поля с изображениями в настройках поля действительно не обязательно :), я просто по инструкции ставил

Аватар пользователя t1mm1 t1mm1 25 июня 2015 в 14:33

а, теперь понятно.
просто я заморочился.

У меня такая задача тоже предстоит. Буду делать модулем, что бы потом пилить под другие проекты.

Аватар пользователя WebRemake WebRemake 27 июня 2015 в 22:53

"ХулиGUN" wrote:
Когда-то я писал специальный редактор для подобного (не под друпал). Там фишка была в том, чтобы вставлять контент блоками...

для друпала такое тоже есть https://www.drupal.org/project/paragraphs