Создание новой темы, используя API в IP.Board 3

Предположим у вас есть сайт и вы прикрутили к нему форум IPB 3.0.x. Бывает, что вы хотите сделать возможность создавать форумные темы вне форума. К примеру, организовать публикацию новостей или статей на своём сайте, но, чтобы эти же сообщения появились и на форуме. Можно конечно мудрить и самому делать вставки на уровне MySQL. Но IPB предлагает внешние API, которые упрощают работу с форумом.

Использовать API очень просто, например, вот так можно создать новую тему:

// Подключаем API
$f=Zend_Registry::get('config')->paths->forum;
require_once($f.'/initdata.php');
//если вы используете ZandFramework, то отключаем автолодер
Zend_Loader::registerAutoload('Zend_Loader', false);
require_once( $f.'/admin/sources/base/ipsController.php');
require_once( IPS_ROOT_PATH . '/sources/base/ipsRegistry.php' );
$registry = ipsRegistry::instance();
define('CCS_GATEWAY_CALLED', true);

$registry->init();
	
$request = $this->getRequest(); 
require_once( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php' );
$postClass = new classPost(ipsRegistry::instance());
// Параметры
$forumID = '2';
$memberID = '1';
// Настраиваем
$postClass->setIsPreview(false);
$postClass->setPublished(true);
$postClass->setForumData( ipsRegistry::getClass('class_forums')-> forum_by_id[$forumId]);

$postClass->setSettings(array(
	'enableSignature' => 1,
	'enableEmoticons' => 1,
	'post_htmlstatus' => 1,
	'enableTracker'   => 0,
	));

$postClass->setForumID( $forumID );
$postClass->setForumData( $registry->class_forums->forum_by_id[ $forumID ] );
	
$bbcode = IPSText::getTextClass('bbcode');
$bbcode->parse_html      = 1;
$bbcode->parse_nl2br     = 1;
$bbcode->parse_smilies   = 1;
$bbcode->parse_bbcode    = 1;
$bbcode->parsing_section = 'global';
$text = $bbcode->preDbParse($postmsg;);
$postClass->setTopicTitle($posttitle);
$postClass->setPostContent( $text );
$postClass->setAuthor( $memberID );




try
{
	$postClass->addTopic();
}
catch( Exception $error )
{
	print $error->getMessage();
}

  Категории: 3.0.x и 3.1.x
  • zhabba

    вот бы еще документацию внятную сделали ребята из IP, цены бы им не было.

  • faubyfluona

    I Really wanted to thank you , for sharing this article.I Really looking forward to reading more.Its really good.Thanks.