Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dreikanter/motoko

Motoko Blogging Engine
https://github.com/dreikanter/motoko

Last synced: 29 days ago
JSON representation

Motoko Blogging Engine

Awesome Lists containing this project

README

        

# Motoko Blogging CMS

Motoko (сокр. MTK) — бесплатная система управления контентом для блогов.

Проект стартовал примерно в 2001 году, был написан в одно лицо на PHP4 и голом энтузиазме, и прожил активной жизнью около трёх лет на asis.ru и paradigm.ru. На данный момент CMS не развивается, т.к. уже давно потеряла актуальность для автора. Исходники выложены в открытый доступ в качестве исторического артефакта. Спасибо всем, кто воодушевлял, помогал и стоял рядом. Любой фидбек можно отправлять по адресу [email protected].

### Системные требования

* Веб-сервер Apache;
* PHP 4.1+ (предпочтительна установка PHP как модуля Apache);
* MySQL 4+ (желательно так же иметь phpMyAdmin или другой фронтэнд для удобного управления СУБД, но это не критично);
* 6 Mb свободного дискового пространства;
* возможность использования конфигурационных файлов .htaccess;
* голова и руки.

### Установка

Для установки CMS понадобится скопировать файлы дистрибутива в доступную из веба директорию, настроить доступ к серверу БД и выполнить скрипт разметки базы данных. Подробнее:

1. Первое, что понадобится сделать — скачать последнюю версию дистрибутива Motoko с официального сайта. Дистрибутив распространяется в заархивированном виде, с именем файла, содержащим номер версии.
1. Архив понадобится распаковать и поместить доступную через веб директорию сервера. При этом, файл /index.php должен находиться в корневой директории установки. Например, при инсталляции системы на сайт http://exaple.com, у которого корневой директории сайта соответствует /home/example.com/public_html/, то после загрузки вышеупомянутого файла, его полное имя должно выглядеть как /home/example.com/public_html/index.php. На одном уровне с ним должны быть размещены директории mtk*.
1. После загрузки, необходимо проверить права доступа к файлам /index.php и /builddb.php, чтобы они могли исполняться на стороне сервера. Попросту говоря, если права доступа к ним отличны от 755, их необходимо заменить таким значением.
1. Если установка скрипта производится не в корневую директорию веб-сайта, понадобится откорректировать параметры ErrorDocument внутри файла /.htaccess, указав в них актуальный путь к файлу /index.php. Например, при установке блога по адресу http://example.com/blog, в директорию /home/example.com/public_html/blog/, в файле .htaccess понадобится указать значение /blog/index.php для всех параметров ErrorDocument, вместо заданных по-умолчанию значений /index.php.
1. Для доступа к базе данных нужно создать пользователя СУБД и базу данных, если этого не было проделано ранее. В случае использования MySQL, можно воспользоваться phpMyAdmin или любым другим удобным для вас фронтэндом для этой БД. На этапе установки MTK, пользователь базы данных должен обладать правами создания таблиц БД. Это необходимо для того, чтобы корректно отработал скрипт разметки базы. Позже в целях повышения безопасности это право можно отменить, оставив лишь возможность оперирования с созданными таблицами.
1. После того, как база данных подготовлена, параметры доступа к ней необходимо указать в конфигурационном файле Motoko, находящемся по адресу /mtk-conf/conf.inc.php. внутри этого файла необходимо задать корректные значения для констант DB_HOST (имя или IP сервера БД), DB_USER (имя пользователя для доступа к БД), DB_PWD (его пароль), DB_NAME (имя базы данных, в которой Motoko будет хранить свои таблицы), DB_PREFIX (префикс в имени таблиц Motko. Необязательный параметр, который становится актуальным при многократной установке CMS на одну БД).
1. Далее понадобится выполнить первичную разметку таблиц базы данных, для чего предназначен скрипт /builddb.php. Этот скрипт вызывается через браузер указанием своего URL. в нашем случае, его адрес будет выглядеть как http://example.com/builddb.php. В ходе работы программы, сгенерируется отчет с перечнем всех выполненных операций. В случае, если на этом этапе произошли какие-либо ошибки, наиболее вероятной причиной тому может быть некорректная настройка БД или параметров доступа к ней, и следует еще раз внимательно все проверить.
1. После разметки базы данных, CMS приходит в работоспособное положение, что следует проверить, зайдя на главную страницу (В нашем примере — http://example.com).
1. При разметке базы данных, в ней автоматически создается пользовательская запись с административными правами. Имя этого пользователя — admin, а заданный по-умолчанию пароль — test. Думаю, не нужно предупреждать, что сразу после разметки БД следует войти в систему и откорректировать админский пароль на менее тривиальный.

### Планы развития

* Нумерация страниц должна производиться в прямом порядке, а не обратном, как сейчас. От 1 и выше, чтобы поисковые индексы не менялись и кэш на поисковых системах дольше оставался актуальным. Это должно работать одинаково для общей ленты и для ленты каждой категории постов.
Переосмыслить почтовое уведомление о комментариях.
Изменения на уровне ядра
* Повышение эффективности от кэширования данных. Возможно кэширование на уровне веб-страниц. Цель - существенно снизить количество обращений к СУБД и (если это будет приемлемо) обеспечить возможность отдачи страниц из кэша при потере связи с сервером БД.
* Необходимо улучшить работу движка темплейтов или сменить его на более простой в использовании. Fast Templates достаточно производительно работает, но код в нем плохо систематизирован и все-равно содержит в какой-то мере фрагменты кода.
* Важно сделать XML-RPC интерфейс, совместимый с WordPress или Movable Type. Для того, чтобы с блогом можно было работать через Windows Live Writer. Это первоочередная задача.
* Ответы в комментариях (многоуровневая структура, которая уже заложена в БД).
* Страница централизованной модерации комментариев (возможность массовой обработки комментариев).
* Необходим веб-интерфейс для конструирования страниц. Возможно, имеет смысл использовать расширенную модель постов (добавить статический URL, отдельный шаблон для отображения, опциональное отображение в ленте). Wiki?
* Защита формы комментариев от роботов (CAPTCHA, проверка нажатия кнопки).
* Редизайн интерфейса
* Форма логина и форма поиска во всплывающих дивах.
* Колонка справа явно перегружена информацией. Стоит обдумать необходимость включать в нее список тегов.

### Используемые библиотеки

В Motoko использованы следующие штуки:

* Абстрактный слой для работы с базами данных ADOdb Lite;
* Генератор форм PEAR::HTML_QuickForm;
* Движок тепмлейтов Template Lite;
* Библиотека для форматирования текста PHP Markdown Extra;
* XSS фильтр SafeHTML от Pixel-Apes