Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

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

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.

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).

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

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

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

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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа → Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.