Перейти к публикации
Дизайн и модификация Invision 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

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


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

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

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

 

 

  Testweb писал:

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

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

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


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

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

 

$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 пользователей

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

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