Testweb 3 01/26/2016 07:04 PM Где находится данная функция?$this->getPostContent() Все перерыл formatPost, нашел, а getPostContent нету Share this post Link to post
siv1987 2,629 01/26/2016 07:43 PM Зачем? Нет такого метода. У этого класса есть метод __call который обрабатывает гетеры и сетеры - несуществующие методы с get или set префиксом. Share this post Link to post
Testweb 3 01/27/2016 08:05 AM Мне необходимо при отправки формы, пост формы. Обработать ее как html и записать ее в таблицу, вот я и ищу ту функцию через которую проходит пост форма(при создании темы). Дабы сделать в своем модуле то же самое. Share this post Link to post
siv1987 2,629 01/27/2016 09:00 AM Для этого есть хук поинты postAddTopic и postAddReply. Если же лезть в код то classPost::compilePostData Share this post Link to post
Testweb 3 01/27/2016 09:31 AM Не совсем понимаю, а как пользоваться та хоть classPost::compilePostData protected function compilePostData() Как я в нее отправлю содержимое формы? IPSLib::doDataHooks($this->entry, 'blogEditEntryData'); Какую роль играет эта строчка при отправке отредактированной записи...? Share this post Link to post
siv1987 2,629 01/27/2016 10:25 AM Как собирались пользоваться getPostContent так и пользуйтесь. Какую роль играет эта строчка при отправке отредактированной записи...?DataHooks - http://ipbskins.ru/forum/topic10049.html#entry65536 Share this post Link to post
Testweb 3 01/27/2016 11:59 AM Нашел, вроде то что необходимо. Смотри $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH.'sources/classes/editor/composite.php', 'classes_editor_composite' ); $this->editor = new $classToLoad(); // $this->editor->setLegacyMode(false); $this->editor->setIsHtml(1); $entry['post'] = $this->editor->process($this->entry['post']); Отправляю запись с bbcodami. $entry['post'] содержит пост с и тд, его необходимо преобразовать и записать в таблицу уже как html. То есть как при написании постов на форуме. Не подскажешь как с этим работать? Share this post Link to post
siv1987 2,629 01/27/2016 01:01 PM Парсер сообщений $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser' ); $parser = new $classToLoad(); $parser->set( array( 'memberData' => $this->memberData, 'parseBBCode' => 1, 'parseArea' => 'topics', 'parseHtml' => 0, 'parseEmoticons' => 1 ) ); $postContent = $parser->display( $postContent ); Share this post Link to post
Testweb 3 01/27/2016 02:24 PM Спасибо, работает. Но вот тут меня мучает один вопрос. Инъекции и взломы, как с этим обстоят деля при таком использовании...? Share this post Link to post
siv1987 2,629 01/27/2016 04:39 PM Чтобы отфильтровать сообщения используйте classes_editor_composite, только естественно с setIsHtml( false ) $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' ); $editor = new $classToLoad(); $editor->setLegacyMode( false ); $editor->setIsHtml( false ); $postContent = $editor->process( $_POST['postContent'] ); Для парсинга ббкодов используйте classes_text_parser. Share this post Link to post
Testweb 3 01/27/2016 07:01 PM (edited) То есть есть уязвимость в первом способе? $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' ); $editor = new $classToLoad(); $editor->setLegacyMode(false); $editor->setIsHtml(false); $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser' ); $parser = new $classToLoad(); $parser->set(array('memberData' => $this->memberData, 'parseBBCode' => 1, 'parseArea' => 'topics','parseHtml' => 0,'parseEmoticons' => 1 ) ); $this->post = $parser->display($editor->process($this->post)); Такой огромный год получается ради того, чтобы текст обработать. Есть варианты более компактные? У меня такой вот вопрос. На форуме все ок, обзацы имеются. В блога, при обработке они пропадают. Причем это уже стандартно было. Не знаю в чем дело... Edited January 27, 2016 by Testweb Share this post Link to post
siv1987 2,629 01/27/2016 07:13 PM То есть есть уязвимость в первом способе?В парсере ббкодов нет фильтрации html, если вы это имеет имеете ввиду. Такой огромный год получается ради того, чтобы текст обработать. Есть варианты более компактные?Пишите свой короче. Share this post Link to post
Testweb 3 01/27/2016 08:01 PM Дак, у меня это только было, ваш вариант $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser' ); $parser = new $classToLoad(); $parser->set(array('memberData' => $this->memberData, 'parseBBCode' => 1, 'parseArea' => 'topics','parseHtml' => 0,'parseEmoticons' => 1 ) ); $this->post = $parser->display($this->post); Просто за уязвимости переживаю, то есть по другому никак. Чтобы инъекции не моли сделать... Share this post Link to post
Testweb 3 01/27/2016 09:48 PM Беда, если если пропускать через оба обработчика. У меня за место одной пустой строки, сразу две)) Share this post Link to post
Testweb 3 02/02/2016 07:28 PM Вот такой вот к тебе вопрос уважаемы. Сделал казалось бы все ок, но вот уже при редактировании записи, как пропустить этот html(что в бд сохранился) через обработчики, чтобы вставить его в редактор... Он вставляется, работает но вот к примеру. Вставил видос, ссылку, сохранил запись. Стал редактировать, открыл реадактор и это окно видоса, прямо в редакторе... Искал как пропускается при редактировании поста в топике, не нашел. Не подскажешь? Share this post Link to post