Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Testweb

Где находится функция getPostContent

Рекомендованные сообщения

Где находится данная функция?

$this->getPostContent()

 

Все перерыл

 

formatPost, нашел, а getPostContent нету

Поделиться сообщением


Ссылка на сообщение

Зачем?

Нет такого метода. У этого класса есть метод __call который обрабатывает гетеры и сетеры - несуществующие методы с get или set префиксом.

Поделиться сообщением


Ссылка на сообщение

Мне необходимо при отправки формы, пост формы. Обработать ее как html и записать ее в таблицу, вот я и ищу ту функцию через которую проходит пост форма(при создании темы). Дабы сделать в своем модуле то же самое.

Поделиться сообщением


Ссылка на сообщение

Для этого есть хук поинты postAddTopic и postAddReply.

 

Если же лезть в код то classPost::compilePostData

Поделиться сообщением


Ссылка на сообщение

Не совсем понимаю, а как пользоваться та хоть classPost::compilePostData

 

protected function compilePostData()

 

Как я в нее отправлю содержимое формы?

 

IPSLib::doDataHooks($this->entry, 'blogEditEntryData');

 

Какую роль играет эта строчка при отправке отредактированной записи...?

Поделиться сообщением


Ссылка на сообщение

Как собирались пользоваться getPostContent так и пользуйтесь.

 

Какую роль играет эта строчка при отправке отредактированной записи...?

DataHooks - http://ipbskins.ru/forum/topic10049.html#entry65536

Поделиться сообщением


Ссылка на сообщение

Нашел, вроде то что необходимо. Смотри

 

$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. То есть как при написании постов на форуме.

 

 

Не подскажешь как с этим работать?

Поделиться сообщением


Ссылка на сообщение

Парсер сообщений

 

$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 );

Поделиться сообщением


Ссылка на сообщение

Спасибо, работает. Но вот тут меня мучает один вопрос. Инъекции и взломы, как с этим обстоят деля при таком использовании...?

Поделиться сообщением


Ссылка на сообщение

Чтобы отфильтровать сообщения используйте 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.

Поделиться сообщением


Ссылка на сообщение
01/27/16 19:01 (изменено)

То есть есть уязвимость в первом способе?

 

 

        $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));

 

Такой огромный год получается ради того, чтобы текст обработать. Есть варианты более компактные?

 

У меня такой вот вопрос. На форуме все ок, обзацы имеются. В блога, при обработке они пропадают. Причем это уже стандартно было. Не знаю в чем дело...

Изменено пользователем Testweb

Поделиться сообщением


Ссылка на сообщение

То есть есть уязвимость в первом способе?

В парсере ббкодов нет фильтрации html, если вы это имеет имеете ввиду.

 

 

Такой огромный год получается ради того, чтобы текст обработать. Есть варианты более компактные?

Пишите свой короче.

Поделиться сообщением


Ссылка на сообщение

Дак, у меня это только было, ваш вариант

 

$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);

 

Просто за уязвимости переживаю, то есть по другому никак. Чтобы инъекции не моли сделать...

Поделиться сообщением


Ссылка на сообщение

Беда, если если пропускать через оба обработчика. У меня за место одной пустой строки, сразу две))

Поделиться сообщением


Ссылка на сообщение

Вот такой вот к тебе вопрос уважаемы. Сделал казалось бы все ок, но вот уже при редактировании записи, как пропустить этот html(что в бд сохранился) через обработчики, чтобы вставить его в редактор...

 

Он вставляется, работает но вот к примеру.

 

Вставил видос, ссылку, сохранил запись. Стал редактировать, открыл реадактор и это окно видоса, прямо в редакторе...

 

Искал как пропускается при редактировании поста в топике, не нашел. Не подскажешь?

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...