0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 858 Просмотров
*

DragonZX

  • Захожу иногда
  • 70
  • 3 / 1
Удачного время суток, уважаемые форумчане.
Есть небольшой вопрос: Пишу плагин для Joomla (2,5/3.0) необходимо, чтобы он брал некоторые собственные параметры (значения переменных) из тега (или наподобие), например
{text s='bold'}Мой текст{/text} - возвращало бы Мой текст
{text s='italic'}Мой текст{/text} - возвращало бы Мой текст
При этом обрабатывало бы
{red s='italic'}Мой текст{/text} - возвращало бы Мой текст (где red - произвольная функция, что-то делающая с текстом (в данном случае делающая его красным)).
Итого вопрос, как происходит чтение?
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 724 / 7
  • Все начинается с Value
посмотрите плагины группы контент
к примеру plugins/content/pagebreak, plugins/content/loadmodule и т. д
регулярными выражениями выбираются из текста
*

DragonZX

  • Захожу иногда
  • 70
  • 3 / 1
Нет, это всё понятно, но как лучше в рамках плагина реализовать именно поиск параметра ведь
Код
preg_match_all('#\[widgetkit id=(\d+)\]#', $article->text, $matches); 
либо
Код
$article->text = preg_replace('|{youtube}(.*){\/youtube}|e', '$this->embedVideo("\1")', $article->text);
Так в первом случае используется переменная, которая, скорее всего подгружается из компонента
Во втором - идет поиск парного тега, а он должен парсить то, что в этом теге указано.
Есть ли какие каноничные способы сделать это только плагином?

UPD: Догадался, но все-таки жду ответ.
« Последнее редактирование: 06.12.2014, 17:31:43 от DragonZX »
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 724 / 7
  • Все начинается с Value
Если разбирать много параметров надо используй preg_replace_callback с функцией обратного вызова
Пример этот плагин http://joomlaforum.ru/index.php/topic,270657.msg
*

DragonZX

  • Захожу иногда
  • 70
  • 3 / 1
Спасибо, для второго примера правильный ответ
Код
$article->text = preg_replace_callback('|{youtube}(.*){\/youtube}|',function ($match){return $this->embedVideo($match[1]);}, $article->text);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с валидацией плагина Shack Open Graph Pro

Автор Lemonez

Ответов: 1
Просмотров: 561
Последний ответ 23.02.2019, 06:21:48
от Lemonez
Перенесено: Разрабока плагина - Обновление

Автор b2z

Ответов: 0
Просмотров: 715
Последний ответ 07.01.2015, 14:25:52
от b2z
После включения плагина FaLang Database Driver пропали товары VirtueMart

Автор nightbodom

Ответов: 0
Просмотров: 939
Последний ответ 09.04.2014, 16:14:33
от nightbodom