Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Собственно хотел на сайт выдернуть редактор с 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 сам редактор не подгружается хотя в исходном коде страницы он вроде присутствует все

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

Рекомендованные сообщения

Опубликовано:

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

 

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

$registry->output->sendOutput();

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

Опубликовано:
  • Автор

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

 

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

$registry->output->sendOutput();

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Да вот что то не выходит, подключаю все стили 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" />

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

Опубликовано:

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

Опубликовано:
  • Автор

Что то не фига не выходит, если не сложно напишите как это сделать плиз.

Опубликовано:

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

<?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

Опубликовано:

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

Опубликовано:
  • Автор

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

а вот с этим

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

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

Изменено пользователем avgaz

Опубликовано:

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

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

Опубликовано:
  • Автор

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

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

Опубликовано:

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

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

Опубликовано:

Еще можно, поидее, стандартный вывод получить в переменную и модифицировать там, что нужно регекспами или в DOMDocument выгрузить и поправить.

$output = $registry->output->sendOutput(true);

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.