Где находится функция getPostContent - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

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

#1 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 26 Январь 2016 - 22:03

Где находится данная функция?
$this->getPostContent()


Все перерыл

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

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 26 Январь 2016 - 22:42

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

#3 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 11:04

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

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 27 Январь 2016 - 11:59

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

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

#5 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 12:30

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

protected function compilePostData()

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

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


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

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 27 Январь 2016 - 13:24

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

Цитата

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

DataHooks - http://ipbskins.ru/f...html#entry65536
0

#7 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 14:58

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

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


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

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 27 Январь 2016 - 16:00

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

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

0

#9 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 17:23

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

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 27 Январь 2016 - 19:38

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

#11 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 22:00

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


        $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 (27 Январь 2016 - 22:02)

0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 246
  • Регистрация: 20-Март 09
  • Репутация: 2 062
  • IPB version:3.1.x
 

Отправлено 27 Январь 2016 - 22:12

Просмотреть сообщениеTestweb сказал(а):

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

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


Просмотреть сообщениеTestweb сказал(а):

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

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

#13 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 27 Январь 2016 - 23:00

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

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


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

#14 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 28 Январь 2016 - 00:47

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

#15 Пользователь не на сайте   Testweb ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 275
  • Регистрация: 12-Ноябрь 14
  • Репутация: -3
  • IPB version:3.4.x
 

Отправлено 02 Февраль 2016 - 22:27

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

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

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

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

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна