И так тут я раскрою как создавать модули для фапос.
Что такое модуль фапос?
Это не что иное как папка в каталоге /modules/, имеющая название модуля. Например у модуля forum это папка forum. И лежащий в ней файл index.php. Этот файл обязательно должен содержать класс с названием модуля и приставкой Module. Для форума это было бы ForumModule. Первая буква заглавная. Этот класс должен наследоваться от общего класса Module
1 2 3
<?php class MyModule extends Module {
}?>
Как устроен модуль?
Класс модуля должен содержать экшены. Это методы или функции класса. Например в форуме есть такие экшены как view_theme, index, add_theme_form. Экшен index это тот экшен который является дефолтным, то есть он будет запущен если экшен не указан. Например когда вы заходите на форум по такой ссылке http://мойсайт/forum/, вы не указываете экшен, а указываете лишь модуль, в таком случае будет вызван экшен index. Модуль так же может содержать другие функции, так сказать вспомогательные, но для того чтобы юзер не мог их вызвать их имя должно начинаться со знака подчеркивания. Например экшен myaction в вашем модуле MyModule можно будет вызвать так http://мойсайт/my/myaction/, но если экшен будет иметь имя _myaction то такой вызов не запустит его http://мойсайт/my/_myaction/. Это сделано специально для того чтобы в модулях можно было писать вспомогательные функции.
View или вывод данных
Например вы создали модуль и экшены в нем, но как вывести что-то на экран чтобы оно было обработано шаблонизатором и ядром фапос. Для этого ваши финальные данные, то есть уже готовый контент, например список новостей, надо выводить так
1 2
<?php return $this->_view($content);?>
Тогда ваши данные обвернутся в общий шаблон и будут выведены на экран.
Настройки модуля
Настройки храняться в файле /sys/settings/config.php в виде массива, соответственно вы можете добавлять туда ваши настройки, так же в виде массива, где ключом будет название модуля, а значением массив с настройками. Пример вы можете посмотреть в том же файле. Как обращаться к этим настройкам вы можете увидеть на примере уже готовых модулей.
1 2
<?php Config::read()?>
Дизайн
Если вы установите в своем модуле свойство $template то будет юзаться файло из папки /template/вашдиз/html/$template, в противном случае из папки /template/вашдиз/html/default/. Хотя это касается лишь общего шаблона(хидер и футер), остальные файлы вы сами получаете в своем экшене и соответственно свойство $template ни на что не влияет.
Работа с базой
Работа с базой в Фапос ведется исключительно через собственный класс, то есть никаких mysql_query и прочего. Примеры можно посмотреть в готовых модулях, их там море.
Админка
Все что касается админки делается совершенно отдельно.
Пока все, если будут вопросы задавайте. Со временем будет дополняться.