Yaroslaw Опубликовано 13 Февраля 2011 Жалоба Поделиться Опубликовано 13 Февраля 2011 (изменено) Когда создаю новую настройку и указываю "Расширенный редактор":http://savepic.ru/2303645.png http://savepic.ru/2320031.png в шаблоне - "{$this->settings['guestinfoform']}". В этом случае все ббкоды и html-теги отображаются как есть: http://savepic.ru/2314906.png Подскажите, пожалуйста, как сделать так, чтобы форум пропарсил ббкоды и отобразил html? Изменено 13 Февраля 2011 пользователем Yaroslaw Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Yaroslaw Опубликовано 14 Февраля 2011 Автор Жалоба Поделиться Опубликовано 14 Февраля 2011 (изменено) Не знаю, на сколько это хорошое решение, но я нашел два способа, размещаю здесь, может кому-то пригодится:1. Разместить php код прямо в нужном template, что-то по типу:<php> if($this->settings['guestinfoform']) { IPSText::getTextClass( 'bbcode' )->parse_bbcode = 1; //Указываем, что нужно парсить бб-коды (это значение по ум., поэтому можно не указывать) IPSText::getTextClass( 'bbcode' )->parse_html = 1;//Отображать разрешенный html IPSText::getTextClass( 'bbcode' )->parse_nl2br = 1;//Перевести все переводи строки в '<br>' $guestinfoform = IPSText::getTextClass('bbcode')->preDisplayParse($this->settings['guestinfoform']); } </php>И вставляем в нужном месте переменную, к примеру: <if test="guest_info:|:$this->settings['guestinfoon']"> <ul> <li class='field'> {$guestinfoform} <li> </ul> </if> 2. Второй вариант, код тот-же, только через систему хуков, в этом примере переменные передаются в skin_post/guestInfo и шаблон с вставленными переменными возвращается:<?php class GuestInfo { protected $registry; protected $settings; public function __construct() { $this->registry = ipsRegistry::instance(); $this->settings = $this->registry->fetchSettings(); } public function getOutput() { if ($this->settings['guestinfoon']) { $bbcode = IPSText::getTextClass( 'bbcode' ); $bbcode->parse_bbcode = 1; $bbcode->parse_html = 1; $guestinfoform = $bbcode->preDisplayParse($this->settings['guestinfoform']); return $this->registry->output->getTemplate('post')->guestInfo( $this->settings['guestinfotitle'], $guestinfoform); } return; } }Ну и чтоб хук работал, нужно сделать настройки в админ-панели. Полезные ссылки:http://www.ipbcustomize.com/topic/2407-developer-articles-%26gt;-parsing-bbcode-and-html/http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/hooks/template-hooks-r400http://community.invisionpower.com/blog/1174/entry-3977-ipboard-310-dev-update-modification-development-enhancements/http://community.invisionpower.com/blog/1174/entry-2385-ipb-3-making-templating-easier/http://community.invisionpower.com/blog/3169/entry-5196-creating-an-invision-power-board-v3x-hook-with-acp-setting-a-beginners-guide/ Изменено 14 Февраля 2011 пользователем Yaroslaw Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
Yaroslaw
Когда создаю новую настройку и указываю "Расширенный редактор":
в шаблоне - "{$this->settings['guestinfoform']}". В этом случае все ббкоды и html-теги отображаются как есть:
Подскажите, пожалуйста, как сделать так, чтобы форум пропарсил ббкоды и отобразил html?
Изменено пользователем YaroslawСсылка на комментарий
Поделиться на других сайтах
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.