Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
avgaz

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

У меня это $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;

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Строчки

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

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

$registry->init();

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

перед

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

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

Share this post


Link to post
Share on other sites
Работает, но как отправлять содержимое из редактора?

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

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...