Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
avgaz

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

У меня это $memberData =& $registry->member->fetchMemberData(); вызывает ошибку ну и $settings['emoticons_url'] = str_replace('<#EMO_DIR#>', 'default', $settings['emoticons_url']); не меняет <#EMO_DIR#>

Код выглядит у меня вот так

<?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'			=> 100,
'autoSaveKey'			=> '',
'warnInfo'			=> NULL,
'modAll'			=> FALSE,
'recover'			=> FALSE,
'noSmilies'			=> FALSE,
'isHtml'			=> FALSE,
'isRte'				=> NULL,
'isTypingCallBack'		=> '',
'delayInit'			=> FALSE,
'editorName'			=> NULL 	) );

//echo "$html";

$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->member()->fetchMemberData(); Поправил.

Поделиться сообщением


Ссылка на сообщение

Да, $registry->member()->fetchMemberData(); Поправил.

Ошибки нет, но в самом редакторе не чего не поменялось, смайлы так же через EMO_DIR файлового менеджера нет (((

Поделиться сообщением


Ссылка на сообщение

Строчки

$settings   =& $registry->fetchSettings();
$memberData =& $registry->member()->fetchMemberData();
$settings['emoticons_url'] = str_replace('<#EMO_DIR#>', 'default', $settings['emoticons_url']);

Нужно добавить после

$registry->init();

 

файлового менеджера нет (((

А мы о нем и не говорим

Поделиться сообщением


Ссылка на сообщение

Да так смайлы работают, кроме показать все. А файлов менеджер не как не сделать в редактор?

Поделиться сообщением


Ссылка на сообщение

Да так смайлы работают, кроме показать все.

перед

Loader.boot();

Добавить

ipb.vars['base_url'] 			= '{$settings['base_url']}';
ipb.vars['board_url']			= '{$settings['board_url']}';
ipb.vars['img_url'] 			= '{$settings['img_url']}';
ipb.vars['upload_url']			= '{$settings['upload_url']}';

 

А файлов менеджер не как не сделать в редактор?

Может и можно, только находится он в другом шаблоне - skin_post (Страница отправки тем/сообщений) -> uploadForm или attachiFrame

Поделиться сообщением


Ссылка на сообщение

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

Ну, не грузится же prototype.js на странице, что я давал. И все там работает, включая смайлы, медиабиблиотеку и остальные диалоговые окна.

Поделиться сообщением


Ссылка на сообщение

Ну, не грузится же prototype.js на странице, что я давал.

Страницу не смотрел, но в враппере форума $registry->output->sendOutput() он грузится по умолчанию (если используется сжатие minify это - /public/min/index.php?ibv=md5_ver&g=js).

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Про минифи забыл, есть такой скрипт. Спасибо за подсказку.

Поделиться сообщением


Ссылка на сообщение

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

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

Работает, но как отправлять содержимое из редактора?

Поделиться сообщением


Ссылка на сообщение
Работает, но как отправлять содержимое из редактора?

Форму создайте c кнопкой отправки.

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...