Intellect Board Lite -- это интегрированная система управления сайтом (CMS) и форумом, предназначенная прежде всего, для создания сайтов, которые будут наполняться самими посетителями (так называемая технология Web 2.0). Intellect Board является frameworkом для создания сайта, представляющего собой дерево разнородных объектов, которыми могут быть статические страницы, темы с комментариями, форумы, статьи, фотогалереи, гостевые книги, чаты, блоги и т.п.
При этом система использует шаблон приложение-модуль-страница-отображение (AMPV, сокращенно от Appliсation, Module, Page, View), основную идею которго можно сформулировать следующим образом "страница -- это набор действий над теми или иными данными и последующее отображение результатов этих действий". Данный подход основывается на утверждении, что большинство задач, возникающих при разработке сайтов Web 2.0, весьма типичны и могут быть решены через с помощью достаточно небольшого количества действий, если реализовать их достаточно универсально (в частности, регистрация/авторизация пользователя, хранение и индексация для локального поиска некоторого текста, загрузка файла, обработка фоторгафии с изменением размера, получение вывод комментариев к статье или сообщений в теме форума, локальный поиск, контроль доступа, ситема рейтингов, защита от ботов, личные сообщения между пользователями, и т.п.), а выполнение более сложных и нетипичных действий можно представить как комбинацию выполнения более простых.
От шаблона MVC данный шаблон отличается тем, что нет четкого разделения между Model и Control, а также функции Control распределяются между приложением (которое определяет, к какому модулю относится запрошенная страница), модулем (который группирует логически связанные между собой действия для одного объекта) и собственно страницей.
Ключевые цели при разработке Intellect Board Lite:
* Форум -- это средство накопления и хранения полезной информации по той или иной теме, и он должен обеспечивать возможность не терять такую информацию среди "информационного шума".
* Модульность, гибкость и возможность максимального расширения возможностей сайта.
* Дружественность к поисковым системам (иерархическая структура сайта, отсутствие дублирования контента, поддержка технологий Sitemap, RSS, микроформатов, исключение из поиска служебных страниц).
* Удобная модерация и эффективное противостояние форумному спаму, гибкая система прав и возможностей с учетом полезности того или иного пользователя для сообщества.
* Самотестирование -- наличие средств, которые максимально упрощают выявление причин ошибок и проблем (удобные для анализа логи, детальные сообщения об ошибках).
* Устойчивость к высоким нагрузкам как по посщеаемости, так и по количеству сообщений.
* Удобство использования и дружественность к пользователю, предоставление возможности быстро сориентировать его на сайте.
Скачать Intellect Board Lite можно по ссылке:
http://intblite.ru/IntBLite-alpha1.zip
Самую последнюю версию можно скачать с помощью SVN:
svn checkout
http://intblite.googlecode.com/svn/trunk/ intblite-read-only
В настоящее время Intellect Board Lite находится в состоянии альфа-версии и предназначен в первую очередь для тестирования и изучения. Использовать его в серьезных проектах пока еще не рекомендуется. На данный момент реализованы следующие возможности (обозначения: + -- полностью, * -- частично, ? -- реализовано полностью, но не дотестировано):
[+] регистрация пользователя
[+] вход/выход пользователя
[?] восстановление пароля по EMail
[?] активация пользователя через EMail
[?] отложенная отправка почты (т.е. отправка после того, как закрыто соединение с БД и пользователю выдана страница)
[+] раздел типа "стандартный форум" (вывод списка тем с сортировкой по времени последнего сообщения) и создание новых тем
[+] раздел типа "тема" (вывод сообщений и отправка ответов)
[+] раздел типа "псевдостатическая страница"
[+] универсальное хранилище настроек (для сайта в целом, для отдельных объектов и для пользователей)
[+] универсальные простые списки (для хранения "плохих слов", забаненных IP-адресов и т.п.)
[*] теги BoardCode (в данный момент реализованы только простейшие b,s,i,u)
[+] произвольная структура объектов с человекочитаемыми URL
[+] логи в формате CSV, вывод детальной отладочной информации, дружественные сообщения об ошибках.
[+] использование шаблонизатора Twig и возможности вывода произвольных вспомогательных блоков с настройкой через админку
[*] множество стилей (с возможностью задавать для каждого объекта предпочитаемый стиль)
[+] отдельная библиотека авторизации пользователя (любители интеграции со сторонними проектами смогут легко заменить ее, не затрагивая остальной форум вообще).
[*] гибкая система прав доступа (на данный момент вместо нее стоит заглушка, которая разрешает гостям только читать, пользователям -- читать и писать, и администраторам делать все остальное)
[?] выполнение задач по графику (может запускаться как через crontab, так и через Web путем вставки однопиксельного img для его вызова)
[+] CAPTCHA для защиты от спама
[+] механизм задержек для предотвращения флуда и brute-force атак
Обозначения: [+] -- реализовано полностью, [?] -- недотестировано, [*] -- реализовано частично.
[*] два вида меню. В первом можно задавать пункты произвольно (и выбирать режим показа: для гостей, для пользователей, для админов), во втором пунктами являются вложенные по отношению к указанному разделы.
[+] указатель текущего местоположения пользователя на сайте (то, что иногда называют "хлебными крошками")
[?] хранение сессий пользователя в базе данных, а не в текстовых файлах и кеширование в них необходимой информации (что позволяет избежать обращения к таблице с данными пользователя и его настройками при просмотре каждой страницы)
В настоящее время инсталлятора не предусмотрено, установка производится вручную.
Сделать это достаточно просто:
1) создать базу данных (или выбрать уже существующую) и загрузить в нее содержимое файла intblite2.sql.
2) исправить в файле config/database.php параметры подключения (логин, пароль, название базы, адрес администратора) на настройки вашего сервера.
3) скопировать файлы дистрибутива в нужный каталог на сервере (IntB Lite может работать как в корне сайта, так и в подкаталоге).
После этого Intellect Board будет готов к работе.
О найденных ошибках пока предлагается сообщать через issues на странице проекта IntbLite в Google Code:
http://code.google.com/p/intblite/