Реализация shorcode по аналогии с wordpress

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Реализация shorcode по аналогии с wordpress

Сообщение delfi »

Есть у меня сайт, где реализовал редактирование страниц с админки.
Хотелось бы на страницах в текст вставлять что-то вроде [contact-form], получить форму, которая бы обрабатывалась каким-то образом.

Естественно, где этого shortcode нет - там не надо подгружать обработчик формы.

Как такое можно реализовать на Yii2? Хотелось бы отвязаться от статичного кода, сделав более динамичным свой сайт.
Спасибо

UPD Исправил shorttag на shortcode, ошибся в терминах
Последний раз редактировалось delfi 2015.08.20, 12:43, всего редактировалось 1 раз.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Реализация shorttag по аналогии с wordpress

Сообщение maleks »

Это шорткод называется.
В вордпрессе эти шорткоды вроде каждый раз при показе статьи парсятся, ты также хочешь?
Или складывать отпарсенные поля в кеш?
Если второе то с простыми шорткодами проблем не будет, а с формой будет, т.к. для формы нужны актуальные токены чтобы она была принята.
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorttag по аналогии с wordpress

Сообщение delfi »

maleks, точно, перепутал название.

Да, нужен парсинг при каждой загрузке.
По сути, это личный сайт, где будет 1-2 таких шорт кода - страница контактов и еще что-нибудь незначительное.

Остается вопрос, как при найденом шорткоде подгружать обработчик формы.
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorttag по аналогии с wordpress

Сообщение delfi »

Отлично, спасибо, буду смотреть.

Т.е. смысл в том, что создаем Behavior, который динамически подгружает виджеты, в зависимости от найденных шорткодов?
Вижу еще кеширование.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Реализация shorttag по аналогии с wordpress

Сообщение ElisDN »

В Yii2 базового контроллера обычно нету, но есть класс View. Так что поведение можно подключить к классу yii\web\View через контейнер. Или просто вместо поведения перенести код в хелпер.

А так суть в обходе по preg_match_all и запуске виджетов внутри ob_start().
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Реализация shorttag по аналогии с wordpress

Сообщение mkramer »

https://github.com/tpoxa/yii2-shortcodes, https://github.com/loveorigami/yii2-plugins-system. Первый на одном проекте у меня стоит - нормально работает.
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Реализация shorttag по аналогии с wordpress

Сообщение mkramer »

А чтоб код автоматом работал, я в событие afterRender его засунул.
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorcode по аналогии с wordpress

Сообщение delfi »

Всем спасибо.

yii2-shortcodes пойдет как раз под мою задачу.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Реализация shorcode по аналогии с wordpress

Сообщение maleks »

для личного сайта пойдет а обычному пользователю такие шифро шорткоды вставлять не удобно, не зря в вордпрессе данные для шорткода вводятся в форму, а потом уже в текстарию вставляется результирующий шорткод.
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorcode по аналогии с wordpress

Сообщение delfi »

Не совсем понятно.
yii2-shortcodes, например. Вставил в текстареа [contact-form], получил все, что нужно. Что сложного для пользователя?
В WP разве что некоторые коды можно вывести в редактор, но это тоже не проблема
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Реализация shorcode по аналогии с wordpress

Сообщение maleks »

этот то ваш шорткод простой, а другие - нет.
Программист то вставит что душе угодно, а владелец сайта или контент менеджер - нет. Думаешь им просто будет вставить со своими данными такие шорткоды как в примере выше?:

Код: Выделить всё

<p>{{w:flash|file=/banners/banner1.swf;w=320;h=240}}</p>
<p>{{w:gallery|folder=vecherinka2012}}</p>
<p>{{w:submenu|parent=services}}</p> 
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorcode по аналогии с wordpress

Сообщение delfi »

Да, передача параметров - вещь полезная. В целом, думаю, можно доработать, чтобы передавались параметры виджета так
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Реализация shorcode по аналогии с wordpress

Сообщение mkramer »

Так передаются же в yii2-shortcodes
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Реализация shorcode по аналогии с wordpress

Сообщение mkramer »

delfi писал(а):Да, передача параметров - вещь полезная. В целом, думаю, можно доработать, чтобы передавались параметры виджета так
Они передаются в yii2-shortcodes
delfi
Сообщения: 21
Зарегистрирован: 2012.07.19, 07:20

Re: Реализация shorcode по аналогии с wordpress

Сообщение delfi »

Точно, заметил сейчас в примере [lastphotos limit=8]
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Реализация shorcode по аналогии с wordpress

Сообщение Loveorigami »

сделал привязку виджетов через шорткод с возможностью конфигурировать через админку.
оставлю тут для примера
https://github.com/loveorigami/yii2-shortcodes-pack
тема для обсуждения - viewtopic.php?f=9&t=42209
Ответить