Автор русской версии статьи: esclkm
Основные принципиальные различия CotontiSiena от CotontiGenoa - разделение информации и модуляризация. Ранее все функции находились в одном файле functions.php. Теперь этих файлов стало намного больше, они все разбиты по видам выполняемых функций. Также теперь намного более четко выделено ядро и настраиваемые модули.
Начнем разбираться со структурой движка. Дабы понимать, что и где искать.
|
Каталог / Файл |
Что там искать? |
|
datas/ |
Каталог, в котором находятся данные, доступные для записи. В нем находится конфигурационный файл (config.php), а также все загруженные пользовательские файлы.
|
|
images/ |
Каталог, в котором хранятся библиотеки картинок-иконок, используемые на сайте |
|
js/ |
JS скрипты, в том числе библиотека jQuery |
|
lang/ |
Языковые файлы ядра и общего пользования. По умолчанию Русская и Английская локализация. |
|
lib/ |
Дополнительные PHP и не только библиотеки (появилось в Siena) |
|
modules/ |
Модули. Тут хранится то, что обеспечивает основной функционал сайта (появилось в Siena) |
|
plugins/ |
Плагины. Это то, что расширяет функционал модулей. |
|
setup/ |
Каталог, в котором расположены вспомогательные файлы по автоматической инсталляции / обновлению CMS |
|
system/ |
Ядро CMS, а так же модули Users и Admin (это базовые модули – без них невозможно существование сайта) |
|
themes/ |
Каталогстемами. В Genoa онназывался Skins. |
|
admin.php |
Загрузчик админ-панели |
|
forums.php |
Загрузчик форумов |
|
index.php |
Главная страница сайта |
|
install.php |
Запуск инсталятора / апдейтера |
|
INSTALL.TXT |
Информация о установке на Англ языке |
|
License.txt |
Файл Лицензии |
|
list.php |
Файл необходим для корректного отображения старых линков модуля list. На новых сайтах файл не нужен |
|
message.php |
Модуль системных сообщений / ошибок / редиректов |
|
page.php |
Загрузчик модуля страниц / листов |
|
pfs.php |
Загрузчик модуля PFS (Мои файлы) |
|
plug.php |
Загрузчик standalone частей плагинов / модулей |
|
pm.php |
Загрузчик модуля личных сообщений |
|
polls.php |
Загрузчик модуля опросов |
|
rc.php |
Данный файл необходим для вывода консолидированных скриптов и стилей |
|
rss.php |
Модуль RSS |
|
users.php |
Загрузчик системного модуля пользователей |
|
view.php |
Специальный файл для вывода статических элементов (txt, html файлов) |
После этого краткого знакомства переходим к структуре файлов и папок в модулях/ плагинах. Разберем их в одном блоке, так как их структура ничем не отличается. Попав в директорию modules или plugins, видим дерево всех модулей или плагинов. Модули и плагины вместе образуют то, что мы называем расширениями движка. Внутри каждой директории находится содержимое расширения. Разберем его подробно:
|
Расширение / |
|
|
img/ |
Каталог для хранения изображений, которые используются данным расширением |
|
inc/ |
Дополнительные файлы данного расширения, в том числе расширение.functions.php , содержащий функции используемые данным расширением |
|
Js/ |
Для хранения JavaScript файлов |
|
lang/ |
Языковые файлы вида расширение.код_языка.php |
|
lib/ |
Для хранения JS, CSS, Flv и других файлов |
|
setup/ |
Дополнительная информация для установки расширений. Формат: расширение.install.php, расширение.uninstall.php, расширение.install.sql, расширение.uninstall.sql для файлов обновления: php_версия.inc и sql_версия.sql |
|
tpl/ |
Шаблоны данного расширения по умолчанию |
|
расширение.setup.php |
Установщик расширения |
|
расширение.часть.php |
Файлы частей расширения |
Для системных модулей (users, admin) содержимое директории inc помещено в корневую директорию модуля.
Содержимое директории system:
|
system/ |
|
|
admin/ |
Модуль админ-панели |
|
users/ |
Модуль пользователей |
|
auth.php |
Набор функций, связанных с распределением прав |
|
cache.php |
Библиотека для работы с кешем |
|
common.php |
Инициализация страницы. |
|
configuration.php |
Функции управления настройками сайта |
|
cotemplate.php |
Шаблонизатор |
|
database.php |
Библиотека для работы с базами данных |
|
debug.php |
Библиотека функций для отладки |
|
extensions.php |
Функции установки/удаления/обновления модулей и плагинов |
|
extrafields.php |
Добавление/редактирование/Импорт/Вывод экстраполей. |
|
footer.php |
Загрузчик подвала страницы |
|
forms.php |
Библиотека функций для работы с формами |
|
functions.php |
Стандартный набор функций ядра |
|
header.php |
Загрузчик шапки |
|
index.php |
Заглушка директории |
|
resources.php |
Ресурсы. Добавлено в Siena |
|
uploads.php |
Функции, облегчающие работу с загруженными на сайт файлами |
1 раз
Ok have to admit, the last section on themes is definitely worthwhile to see. Especially would be great in it's own section on a tutorial for writing themes ;)