Jump to content

API или как выдернуть редактор


avgaz
 Share

Recommended Posts

Собственно хотел на сайт выдернуть редактор с IPB путем его интеграции и так тут показана как это делать http://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/editor-bbcode-r146

Делаю так

<?php
require_once( '/forum/initdata.php' );
require_once( '/forum/admin/sources/base/ipsRegistry.php' );
$registry=ipsRegistry::instance();
$registry->init();
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );  
$editor = new $classToLoad();  $html = $editor->show( 'Post', array(
'type'				=> 'full',
'minimize'			=> TRUE,
'height'			=> 300,
'autoSaveKey'			=> '',
'warnInfo'			=> NULL,
'modAll'			=> FALSE,
'recover'			=> FALSE,
'noSmilies'			=> FALSE,
'isHtml'			=> FALSE,
'isRte'				=> NULL,
'isTypingCallBack'		=> '',
'delayInit'			=> FALSE,
'editorName'			=> NULL 	) );

echo "$html";

 

Но отображает просто поле textarea сам редактор не подгружается хотя в исходном коде страницы он вроде присутствует все

В чем ошибка что не так сделал?

Link to comment
Share on other sites

Для редактора нужны еще стили. Нормально он будет работать только в среде форума

 

$registry->output->addContent($html);

$registry->output->sendOutput();

(вместо echo "$html")

Link to comment
Share on other sites

Для редактора нужны еще стили. Нормально он будет работать только в среде форума

 

$registry->output->addContent($html);

$registry->output->sendOutput();

(вместо echo "$html")

Блин обломно, мне как бы оболочка форума не нужна, без этого форумный редактор не как не выдернуть?

Link to comment
Share on other sites

Форумный редактор вы выдернули - стилей нету. Подключайте стили которые требуются для редактора и будет счастье.

Link to comment
Share on other sites

Форумный редактор вы выдернули - стилей нету. Подключайте стили которые требуются для редактора и будет счастье.

Да вот что то не выходит, подключаю все стили css которые на странице с редактором когда в оболочке форума

		<link rel="stylesheet" type="text/css" media='screen,print' href="http://111.ru/forum/public/min/index.php?ipbv=a7d9f2a2e92a4ebacf2b80119d9e3df9&f=public/style_css/css_1/SOS_BBCodes.css,public/style_css/css_1/ipb_help.css,public/style_css/css_1/ipb_mlist_addon.css,public/style_css/css_1/calendar_select.css,public/style_css/css_1/ipb_common.css,public/style_css/css_1/ipb_styles.css,public/style_css/css_1/ipb_ckeditor.css" />

Один фиг просто форма отображается

Link to comment
Share on other sites

А, ну так там еще и скрипты нужно подключить - прототайп и объект ipb. Редактор же подключается через ipb.textEditor.initialize

Link to comment
Share on other sites

Прототайп для редактора не нужен. С враппером все нужные скрипты и стили подгружаются автоматом:

<?php
require_once('initdata.php');
require_once('./admin/sources/base/ipsRegistry.php');

$registry = ipsRegistry::instance();
$registry->init();

$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );  
$editor = new $classToLoad();
$html = $editor->show( 'Post', array('minimize' => FALSE) );

$registry->output->setTitle('My Title');
$registry->output->addContent($html); 
$registry->output->sendOutput();

Нормально работает у меня - http://test.emule-rus.net/ipb346/test.php

 

Если форумный враппер не нужен, то видимо лучше подключить чистый ckeditor, замещающий любое поле textarea. http://www.site-script.ru/articles.php?id=13

Link to comment
Share on other sites

Для форумного нужен. Он подключается через объект ipb который инициализируется используя запросы прототайпа. А ТС'у нужен редактор вне оболочки форума.

Link to comment
Share on other sites

Прототайп для редактора не нужен. С враппером все нужные скрипты и стили подгружаются автоматом:

Просто хотел подключить к сайту этот редактор, что бы он настраивался в АЦ форума и использовать ещё при этом менеджер файлов форума. ckeditor без проблем но это не то

Link to comment
Share on other sites

$settings   =& $registry->fetchSettings();
$memberData =& $registry->member()->fetchMemberData();

$settings['emoticons_url'] = str_replace('<#EMO_DIR#>', 'default', $settings['emoticons_url']);

/* Скрипты */
echo <<<FEOF
<script type='text/javascript'>
jsDebug			= 0; /* Must come before JS includes */
DISABLE_AJAX	= parseInt(0); /* Disables ajax requests where text is sent to the DB; helpful for charset issues */
inACP			= false;
var isRTL		= false;
var rtlIe		= '';
var rtlFull		= '';
</script>
{$registry->output->getTemplate('global')->includeJS(array('textEditor.bbcode' => 1, 'textEditor' => 1))}
<script type='text/javascript'>
Loader.boot();
</script>
<link rel="stylesheet" type="text/css"  href="{$settings['board_url']}/public/style_css/css_1/ipb_ckeditor.css" />
FEOF;

/* Редактор */
echo $html;

 

Скрипты в сжатом виде ($registry->output->getTemplate('global')->includeJS)

<script type='text/javascript' src='{$settings['board_url']}/public/min/index.php?g=js'></script>
<script type='text/javascript' src='{$settings['board_url']}/public/min/index.php?charset=UTF-8&f=public/js/ipb.js,cache/lang_cache/{$memberData['language']}/ipb.lang.js,public/js/ips.textEditor.bbcode.js,public/js/ips.textEditor.js' charset='UTF-8'></script>

Link to comment
Share on other sites

Спасибо, но не корректно работает, в частности не вставка картинки не ссылки, смайлы и тд не работает ((

а вот с этим

{$registry->output->getTemplate('global')->includeJS(array('textEditor.bbcode' => 1, 'textEditor' => 1))}

Вроде бы нормально.

Edited by avgaz
Link to comment
Share on other sites

Тогда нужно еще подключить скрипт еффектов, заменить директорию смайликов, и добавить скрипт с лэнгами.

Скрипты все же лучше подключать из шаблона форума, а не вручную ($registry->output->getTemplate).

Link to comment
Share on other sites

В принципе все работает кроме смайлов, не пойму как директорию поменять?

А как подключить менеджер файлов форума и загрузчик http://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/kernel-uploading-classuploadphp-r170

Link to comment
Share on other sites

В принципе все работает кроме смайлов, не пойму как директорию поменять?

Смотрите в коде, там добавлено.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...