Ссылки на якоря/термины или другие сущности внутри текста ноды с удобным виджетом автодополнения.

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

Аватар пользователя univerico univerico 13 сентября 2019 в 20:13

Здравствуйте! Есть необходимость прикрепить к ноде список сущностей (нод или терминов таксономии). Вероятно в отдельное поле с неограниченным количеством значений. В тексте этой ноды (вероятно в другом поле, но не обязательно) нужно добавлять ссылки на них. Т.е. нужно обязательно иметь возможность встраивать ссылки в текст удобным способом и очень удобно было бы иметь при создании ссылки виджет аналогичный виджету автодополнения терминов таксономии.
Предполагаю следующие варианты:
а)якоря и ссылки на якоря
сейчас виджет с помощью кнопки CKeditor без ручного ввода а со списком выбора такой

(а можно как-то для них прикрутить виджет с ручным вводом и автодополнением?)

б) ссылки на термины таксономии
(как ссылки на термины встроить в ноды?)

в)ссылки на ноды

(аналогично как можно сделать что-то типа виджета автодополнения сделать и интегрировать ссылки в текст ноды?) Придется свой модуль писать или может есть вообще еще какие-то другие варианты с аналогичным функционалом или какая-то кнопка CKeditor?

Лучший ответ

Аватар пользователя Mnilionic Mnilionic 13 сентября 2019 в 23:43
1

Определитесь с задачей. Если я правильно понял, то:
Нужно чтобы пользователь в текстовое поле (с визуальным редактором) мог вставить прямую ссылку на материал (нода, термин, пользователь). Если допустить что пользователь помнит заголовок материала или его идентификатора, то как на основе этих данных получить точную ссылку и вставить в текст.
Так?
Вы правильно сказали "автодополнение" в данном кейсе подходит как нельзя лучше.
Что для этого надо?
1 - плагин для визуального редакторе, который предоставляет функцию автодополнения
2 - модуль с зарезервированным путём, по которому плагин будет запрашивать "совпадения"
Как начать что-то делать?
Пойти поискать к вашему визуальному редактору существующие плагин автодополнений. Например вот этот https://ckeditor.com/docs/ckeditor4/latest/features/autocomplete.html
Посмотреть дэмо, понять устраивает ли интерфейс и есть ли возможность динамически задавать результату подстановки.
Подходит плагин?
Изучаете документацию "как задать свой путь колбека" и пытаетесь понять как вклинится друпалом в его работу.
После чего пишите модуль, который будет вклиниваться.
Когда заработает прототип:
Реализуйте логику получения списка "подходящих" материалов, под пришедший "запрос". С учётом того что вписал пользователь, и какие у него права.
Дополнительно заодно решите, будут ли вставляться именно ссылки или токены. Готовая ссылка это хорошо, но если алиас целевой страницы поменяется будет не очень хорошо. А если будете вставлять токены, и реплейсить их при показе актуальными ссылками - будет вам честь и хвала за такой модуль.

Комментарии

Аватар пользователя univerico univerico 13 сентября 2019 в 22:12

Спасибо за мнение. И для какого способа будет проще написать? (для якоря или ссылки на ноду виджет автодополнения или инструмент для встраивания ссылки на терминов в ноду)?
А ссылки на термины как проще будет встроить внутри текста ноды (не в отдельном поле?)

Аватар пользователя Mnilionic Mnilionic 13 сентября 2019 в 23:43
1

Определитесь с задачей. Если я правильно понял, то:
Нужно чтобы пользователь в текстовое поле (с визуальным редактором) мог вставить прямую ссылку на материал (нода, термин, пользователь). Если допустить что пользователь помнит заголовок материала или его идентификатора, то как на основе этих данных получить точную ссылку и вставить в текст.
Так?
Вы правильно сказали "автодополнение" в данном кейсе подходит как нельзя лучше.
Что для этого надо?
1 - плагин для визуального редакторе, который предоставляет функцию автодополнения
2 - модуль с зарезервированным путём, по которому плагин будет запрашивать "совпадения"
Как начать что-то делать?
Пойти поискать к вашему визуальному редактору существующие плагин автодополнений. Например вот этот https://ckeditor.com/docs/ckeditor4/latest/features/autocomplete.html
Посмотреть дэмо, понять устраивает ли интерфейс и есть ли возможность динамически задавать результату подстановки.
Подходит плагин?
Изучаете документацию "как задать свой путь колбека" и пытаетесь понять как вклинится друпалом в его работу.
После чего пишите модуль, который будет вклиниваться.
Когда заработает прототип:
Реализуйте логику получения списка "подходящих" материалов, под пришедший "запрос". С учётом того что вписал пользователь, и какие у него права.
Дополнительно заодно решите, будут ли вставляться именно ссылки или токены. Готовая ссылка это хорошо, но если алиас целевой страницы поменяется будет не очень хорошо. А если будете вставлять токены, и реплейсить их при показе актуальными ссылками - будет вам честь и хвала за такой модуль.

Аватар пользователя univerico univerico 16 сентября 2019 в 8:31

Супер! Спасибо! И плагин, и модули очень близки к тому, что надо. Попробую настроить все это без дописывания дополнительного модуля.