Все началось с того, что я решил обновить наш Мантис с 1.1.8 до версии 1.2.3. Как это сделать простым нажатием ссылки в мантисе я не нашел, пришлось "танцевать с бубном".
Итак,все по порядку.
Обновление мантиса
1. Качаем
отсюда последнюю стабильную версию (на момент написания - 1.2.3).
2. Делаем бэкап файлов мантиса с сервера (на всякий случай), затем удаляем все, за исключением папки с wiki (если она у вас стоит).
3. Делаем бэкап базы данных с мантисом.
4. Переименовываем базу данных с мантисом в другое имя, например test_db, создаем новую базу данных со старым именем, например mantis_db. Заливаем в нее бэкап из п.2.
5. Таблицу mantis_category_table базы данных mantis_db приводим к такому виду:
`mantis_category_table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, // новое поле
`project_id` int(10) unsigned NOT NULL DEFAULT '0',
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL DEFAULT '', // переименованное поле category
`status` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_category_project_name` (`project_id`,`name`) // новый индекс
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
6. Распаковываем мантис на сервер и устанавливаем, при установке указываем все наши данные, в том числе базу mantis_db.
7. Далее необходимо подправить поля с датами. Мантис версии 1.2 хранит даты в полях типа INTEGER, в отличие от ранней версии, которая использует для этого DATETIME. Для обновления полей используем запрос вида:
update `test_db`.`mantis_bugnote_table`, `mantis_db`.`mantis_bugnote_table`
set `mantis_db`.`mantis_bugnote_table`.`date_submitted` = unix_timestamp(`test_db`.`mantis_bugnote_table`.`date_submitted`)
where `mantis_db`.`mantis_bugnote_table`.`id` = `test_db`.`mantis_bugnote_table`.`id`
Проделываем данную операцию со всеми таблицами, в которых есть даты.
8. Прикручиваем wiki, как это сделать читаем
здесь.
Плагины
С плагинами я думал засада... Я никак не мог понять как установить плагины для мантиса. Пока не допетрил, что решение простое и лежит на поверхности. Итак:
1. Плагины берем здесь -
http://git.mantisforge.org/2. Нужна утилита для работы с git хостингом. У меня Ubuntu поэтому я просто установил из репозитория git и для нужных плагинов сделал git clone git://git.mantisforge.org/PlaginName.git. После этого папки с плагинами залил на сервер в папку /plugins/.
3. После п.2 в мантисе в "Управление" -> "Управление плагинами" появляются все наши закаченные плагины. Нажимаем "установить" и устанавливаем необходимый плагин.
UPD. С плагинами еще проще - git не нужен, спасибо
kirillkr за подсказку с snapshot.
BBCode
Для работы с форматированием текста есть плагин MantisBT Formatting 1.0a, по-моему он даже прикручен по умолчанию. Есть также опция форматирования ссылок $g_html_make_links в config_defaults_inc.php. Но все равно этого мало (имхо). Я, например, люблю структурировать текст, что то выделять и т.п., и поэтому считаю, что bbcode должен быть встроен в мантис, а не доступен в виде плагина. Плагин
bbcode мне показался убогим и поэтому я решил использовать
tinymce в качестве bbcode. Причем его можно использовать как просто редактор, например
так, и как редактор
bbcode. Итак, начнем:
1. Скачиваем TinyMCE и заливаем его в папку javascript.
2. Открываем файл core/html_api.php и правим функцию html_head_javascript():
function html_head_javascript() {
if( ON == config_get( 'use_javascript' ) ) {
html_javascript_link( 'common.js' );
echo '';
html_javascript_link( 'ajax.js' );
global $g_enable_projax, $g_use_wysiwyg;
if( $g_enable_projax ) {
html_javascript_link( 'projax/prototype.js' );
html_javascript_link( 'projax/scriptaculous.js' );
}
if($g_use_wysiwyg){
echo '';
echo '';
}
}
}
3. В файл config_defaults_inc.php добавляем - $g_use_wysiwyg = ON;.
4. Если используем tinymce не как редактор bcode, то в файле /plugins/MantisCoreFormatting/MantisCoreFormatting.php необходимо закомментировать все строчки с string_nl2br().
P.S.
1. Если вы используете tinymce как редактор bbcode, то необходимо установить плагин
bbcode, и при необходимости добавить в него (файл /plugins/BBCode/BBCode.php) обработку соответствующих тэгов.
2. Не используйте совместно плагины BBCode и Highlight с
http://git.mantisforge.org/.
3. В случае использования tinymce в качестве обычного редактора необходимо подумать о вопросах безопасности вводимых данных (для меня было не актуально, поэтому данный вопрос я не рассматриваю здесь). Так же, имхо, лучше отключить ссылки в редакторе и использовать встроенный механизм формирования ссылок.
(с) andrvm