Модуль «Фотогалерея»
Представляет собой прикладной модуль для просмотра и редактирования фотогалереи, привязанной к определенному ресурсу. Модуль выполняет следующие действия.
Index – выводит список альбомов для текущего ресурса. Принимает один пара- метр: идентификатор ресурса.
Album – выводит список фотографий для выбранного альбома. Параметры: идентификатор альбома.
Show – выводит на страницу фотографию из альбома. Параметры: идентифика- тор фотографии.
Add – добавляет фотографию в альбом. Параметры: идентификатор альбома.
Модуль «Файловое хранилище»
Данный прикладной модуль позволяет использовать на странице ресурса хранилище файлов. Действия модуля следующие.
Index – выводит список файлов по определенным критериям. Параметры: иден- тификатор ресурса, критерии поиска файлов (тип, размер, расширения, и т. д.).
Upload – позволяет закачать файл в файловое хранилище.
Audio – вызывает действие Index с критерием поиска по аудио-файлам.
Video – вызывает действие Index с критерием поиска по видео-файлам.
Pictures – вызывает действие Index с критерием поиска по файлам картинок.
Структура приложения
Для расширения функциональности необходимо понять принцип построения и распо- ложения основных компонентов системы. Так как мы имеем дело с MVC-приложением, компоненты делятся на 3 слоя – Модель, Вид и Контроллер.
Модель
Слой модели представлен классами для работы с данными. Эти классы располагаются в каталоге lib/model относительно директории приложения. В каталоге model располагает- ся подкаталог om, в котором находятся файлы BaseModelNamePeer.php и BaseModel- Name.php, где ModelName – имя модели (чаще всего совпадает с именем таблицы в базе данных). Эти классы отвечают соответственно за извлечение/работу с данными и сами данные. Например, c помощью вызова методов класса BaseProfilePeer программист извле- кает данные из базы данных, которые в свою очередь являются экземплярами класса Ba- seProfile. Вышеназванные классы – абстрактные, они были сгенерированы с помощью ORM Propel из схемы базы данных. В работе с системой используются наследуемые от этих классов классы ModelNamePeer и ModelName, расположенные на уровень выше в ка- талоге model. Эти классы программист может дополнить своими методами, например, до- писать в ProfilePeer.php необходимые нестандартные методы извлечения пользователь- ских профилей из базы данных, а в Profile.php – методы работы с отдельными экземпля- рами профилей. Таким образом программист может расширять слой модели.
Вид
Слой вида представляет собой набор шаблонов на языке Smarty [8]. Все они находятся в каталоге приложения – apps/frontend. Шаблоны делятся на общие и шаблоны модулей. Общие шаблоны располагаются в каталоге templates и используются различными модуля- ми, к примеру – layout.tpl. Данный шаблон является «рамкой» сайта, содержащий логотип, меню, и другое окружение сайта. В него вставляется результат работы модулей. Еще один пример общего шаблона – pager.tpl, содержащий внешний вид постраничной навигации на сайте.
Наряду с общими шаблонами существуют шаблоны модулей. Они располагаются в ка- талогах modules/module/templates и служат для отображения результата работы действий контроллеров.
Достарыңызбен бөлісу: |