Предположим у вас есть сайт и вы прикрутили к нему форум 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();
}
вот бы еще документацию внятную сделали ребята из IP, цены бы им не было.
I Really wanted to thank you , for sharing this article.I Really looking forward to reading more.Its really good.Thanks.