MicroBlog и визуальный редактор SPAW2

Сейчас пойдет речь о том, как прикрутить визуальный редактор SPAW2 к блоговому движку MicroBlog.
Первым делом загрузите визуальный редактор SPAW2 по адресу:

http://www.spaweditor.com

Вам нужно загрузить вторую версию, а не первую (файл spaw-php-2081-gpl.zip, 501 Кб). Распакуйте архив в каталог, в котором у вас размещен микроблог. Иерархия каталогов получится примерно такая:

data <каталог>
img <каталог>
plugins <каталог>
spaw2 <каталог>
admin.php <файл>
index.php <файл>
...

Зайдите в каталог spaw2/config. В нем вы найдете файл config.default.php. Этот файл нужно переименовать в config.php. После переименования откройте его в любом текстовом редакторе и раскомментируйте следующую строку:

SpawConfig::setStaticConfigItem('SPAW_DIR', '/spaw2/');

Это путь к SPAW2. Если вы хотите поместить файлы редактора в каталог, отличный от /spaw2/, нужно указать здесь новое имя каталога.
Затем русифицируем наш редактор. Найдите следующие строки:

SpawConfig::setStaticConfigItem('default_lang','en');
SpawConfig::setStaticConfigItem('default_output_charset','');

Отредактируйте эти строки так:

SpawConfig::setStaticConfigItem('default_lang','ru');
SpawConfig::setStaticConfigItem('default_output_charset','windows-1251');

Вторая строка задает кодировку текста. Кодировка должна совпадать с кодировкой, указанной в файле конфигурации микроблога (settings.php). Мы используем кодировку Windows-1251. Но если вам нужна кодировка UTF-8, то не забудьте изменить ее тут и в файле settings.php.
Следующие две строки задают ширину (по умолчанию 100%) и высоту редактора (200 пикселей). Ширину лучше не изменять, а вот высоту можно установить по своему усмотрению. Мне нравится высота в 400 пикселей.

SpawConfig::setStaticConfigItem('default_width','100%');
SpawConfig::setStaticConfigItem('default_height','200px');

Далее найдите блок каталогов:

// directories
SpawConfig::setStaticConfigItem(
'PG_SPAWFM_DIRECTORIES',
array(
array(
'dir' => SpawConfig::getStaticConfigValue('SPAW_DIR').'uploads/flash/',
'caption' => 'Flash movies',
'params' => array(
'allowed_filetypes' => array('flash')
)
),
array(
'dir' => SpawConfig::getStaticConfigValue('SPAW_DIR').'uploads/images/',
'caption' => 'Images',
'params' => array(
'default_dir' => true, // set directory as default (optional setting)
'allowed_filetypes' => array('images')
)
),
array(
'dir' => SpawConfig::getStaticConfigValue('SPAW_DIR').'uploads/files/',
'fsdir' => SpawConfig::getStaticConfigValue('SPAW_ROOT').'uploads/files/', // optional absolute physical filesystem path
'caption' => 'Files',
'params' => array(
'allowed_filetypes' => array('any')
)
),
),
SPAW_CFG_TRANSFER_SECURE
);

По умолчанию SPAW2 использует следующие каталоги:
uploads/flash – для флеш-объектов;
uploads/images – для картинок;
uploads/files – для прочих файлов.

Если вас чем-то не устраивают эти каталоги, измените файл конфигурации, прописав свои каталоги. Не забудьте установить права доступа 777 к этим каталогам (в FTP-клиенте):

chmod 777 spaw2/uploads/flash
chmod 777 spaw2/uploads/images
chmod 777 spaw2/uploads/files
chmod 777 spaw2/uploads

Когда отредактирован файл конфигурации SPAW2, закачайте каталог spaw2 на ваш Web-сервер.
Половина задачи уже выполнена: визуальный редактор настроен и загружен на Web-сервер. Осталось подключить его к микроблогу. Тут нам не обойтись без редактирования файла index.php микроблога. Откройте его и найдите следующую строку (обработка добавления записи):

case «add_post»:

Начиная от case, и до break отредактируйте PHP-код так:

case "add_post":
if (!is_admin()) exit();include "spaw2/spaw.inc.php";
$editor = new SpawEditor("text");if (!isset($_v['title']) || !isset($_v['text']))
{
$post['title'] = $post['text'] = $p = "";
hook(MBE_POST_FORM_SHOW_BEFORE);
include $tpl['post_form'];
hook(MBE_POST_FORM_SHOW_AFTER);
}
else
{
$p = time();
$post_title = $_POST['title'];
$post_html = $_POST['text'];

hook(MBE_POST_ADD_BEFORE);

$f = fopen("data/posts/".$p, "w+");
fwrite($f, $post_title."\n".$post_html);
fclose($f);
$f = fopen("data/comments/".$p, "w+");
fclose($f);

hook(MBE_POST_ADD_AFTER);

@chmod("data/posts/".$p, 0777);
@chmod("data/comments/".$p, 0777);
redirect($_SERVER['PHP_SELF']);
}
break;

Дальше нужно найти строку case «edit_post». Как и в случае с добавлением записи, код обработки редактирования записи будет выглядеть так:

case "edit_post":if (!is_admin() or !isset($_v['p'])) exit();if (!isset($_v['title']) || !isset($_v['text']) || !isset($_v['p']))
{
$post = post_info($_v['p']);

include "spaw2/spaw.inc.php";
$editor = new SpawEditor("text",$post['text']);

$post['title'] = str_replace('"', '"', $post['title']);
hook(MBE_POST_FORM_SHOW_BEFORE);
include $tpl['post_form'];
hook(MBE_POST_FORM_SHOW_AFTER);
}
else
{
hook(MBE_POST_EDIT_BEFORE);

$f = fopen("data/posts/".$_v['p'], "w+");
flock($f, LOCK_EX);
fwrite($f, $_v['title']."\n".$_v['text']);
flock($f, LOCK_UN);
fclose($f);

hook(MBE_POST_EDIT_AFTER);

redirect($_SERVER['PHP_SELF']);
}
break;

Сохраните index.php и загрузите его на сервер. После этого отредактируйте форму добавления записи – файл data/tpl/post_form.tpl (листинг 1). Как обычно, код, на который нужно обратить особое внимание, выделен жирным.

Листинг 1. Файл data/tpl/post_form.tpl

<center>
<form action=<?=$_SERVER['PHP_SELF'];?> method=post>
<input type=hidden name=action value=<?=$_v['action'];?>>
<input type=hidden name=p value=<?=@$_v['p'];?>>
<input type=text name=title size=88 value=»<?=$post['title'];?>»><br><br>
<? $editor->show(); ?><br><input type=submit>

</form>
</center>

Теперь посмотрим, что у нас получилось. Думаю, где ДО и ПОСЛЕ вы уже сами догадаетесь :) Скачать уже готовую версию можно тут: MicroBlog + spaw

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>