Автор русской версии статьи: 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 ;)