This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
dev:faq:how-start-development-by-maxim [2014/01/14 17:01] maxim created |
dev:faq:how-start-development-by-maxim [2014/01/15 09:11] (current) Den Approved |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | + | ======Базова структура Oxwall ====== | |
- | + | ||
- | ====Код Oxwall ==== | + | |
Код Oxwall состоит из следующих основных частей: | Код Oxwall состоит из следующих основных частей: | ||
*Ядро | *Ядро | ||
Line 8: | Line 5: | ||
*Пользовательские плагины | *Пользовательские плагины | ||
- | ===Ядро=== | + | ===== Ядро ===== |
Ядро располагается в папке ow_core. Представляет собой ядро фреймворка. | Ядро располагается в папке ow_core. Представляет собой ядро фреймворка. | ||
Line 20: | Line 17: | ||
*OW_BillingAdapter – платежный шлюз | *OW_BillingAdapter – платежный шлюз | ||
- | ===Системные плагины=== | + | =====Системные плагины ===== |
В Oxwall 2 системных плагина: | В Oxwall 2 системных плагина: | ||
Line 28: | Line 25: | ||
Системные плагины располагаются в папке ow_system_plugins. Системные плагины совместно с ядром реализуют базовый функционал CMS. | Системные плагины располагаются в папке ow_system_plugins. Системные плагины совместно с ядром реализуют базовый функционал CMS. | ||
- | ===Базовый плагин=== | + | ==== Базовый плагин ==== |
Плагин «Базовый плагин» находится в папке “ow_system_plugins/base”. | Плагин «Базовый плагин» находится в папке “ow_system_plugins/base”. | ||
Line 40: | Line 37: | ||
Плагин хранит данные в таблицах с префиксом ow_base_. | Плагин хранит данные в таблицах с префиксом ow_base_. | ||
- | ===Панель администратора=== | + | ==== Панель администратора ==== |
Плагин «Панель администратора» находится в папке ow_system_plugins/admin. | Плагин «Панель администратора» находится в папке ow_system_plugins/admin. | ||
Line 46: | Line 43: | ||
Панель администратора предназначена для администратора и реализует визуальное представление для управления объектами базового плагина. | Панель администратора предназначена для администратора и реализует визуальное представление для управления объектами базового плагина. | ||
- | ====Отладка==== | + | ===== Отладка ===== |
В ow_includes/config.php можно включить флаги: | В ow_includes/config.php можно включить флаги: | ||
Line 60: | Line 57: | ||
3. OW_PROFILER_ENABLE - включение отладочной панели. | 3. OW_PROFILER_ENABLE - включение отладочной панели. | ||
- | ====Системные компоненты==== | + | ===== Системные компоненты ===== |
- | + | ==== Кэш в БД ==== | |
- | ===Кэш в БД === | + | |
Автоматически очищаемый кэш данных с поддержкой тегов в таблицах base_cache и base_cache_tag. | Автоматически очищаемый кэш данных с поддержкой тегов в таблицах base_cache и base_cache_tag. | ||
Line 70: | Line 66: | ||
OW::getCacheManager()->clean(tags); - сброс кэша с установленными тегами | OW::getCacheManager()->clean(tags); - сброс кэша с установленными тегами | ||
- | ===Кэширование запросов к БД=== | + | Кэширование запросов к БД: |
При выполнении любого запроса на получение данных из БД есть возможность указать время кэширования результата запроса и теги. Кэш удалится автоматически по истечении заданного времени или при явном вызове функции clean(tags). | При выполнении любого запроса на получение данных из БД есть возможность указать время кэширования результата запроса и теги. Кэш удалится автоматически по истечении заданного времени или при явном вызове функции clean(tags). | ||
Line 77: | Line 73: | ||
OW::getCacheManager()->clean(tags); - сброс кэша | OW::getCacheManager()->clean(tags); - сброс кэша | ||
- | ===Лог в БД=== | + | ====Лог в БД==== |
Запись лога в таблицу ow_base_log | Запись лога в таблицу ow_base_log | ||
Line 85: | Line 81: | ||
$logger->writeLog(); | $logger->writeLog(); | ||
- | ===Кэш в БД без тегов=== | + | ====Кэш в БД без тегов==== |
Автоматически очищаемый кэш данных в таблице ow_base_db_cache. | Автоматически очищаемый кэш данных в таблице ow_base_db_cache. | ||
Line 91: | Line 87: | ||
OW::getCacheService()->set(key, value, lifeTimeSeconds); | OW::getCacheService()->set(key, value, lifeTimeSeconds); | ||
OW::getCacheService()->get(key); | OW::getCacheService()->get(key); | ||
- | + | | |
- | ===Утилитные классы=== | + | ==== Утилитные классы==== |
*UTIL_Image – обработка картинок. | *UTIL_Image – обработка картинок. | ||
*UTIL_Profiler – замер времени выполнения. | *UTIL_Profiler – замер времени выполнения. | ||
- | ====События==== | + | =====События===== |
Возможность синхронно рассылать уведомления о событиях между плагинами. При отправке сообщения передаются данные, которые получатели могут прочитать или модифицировать. | Возможность синхронно рассылать уведомления о событиях между плагинами. При отправке сообщения передаются данные, которые получатели могут прочитать или модифицировать. | ||
Line 161: | Line 157: | ||
$event->stopPropagation(). | $event->stopPropagation(). | ||
- | ====Разработка визуальной части==== | + | ===== Разработка визуальной части ===== |
В Oxwall 3 типа визуальных объектов: | В Oxwall 3 типа визуальных объектов: | ||
Line 168: | Line 164: | ||
*Декоратор | *Декоратор | ||
- | Для построения визуальной части используется шаблонизатор Smarty. Документация по Smarty http://www.smarty.net/docsv2/ru/smarty.for.designers.tpl | + | Для построения визуальной части используется шаблонизатор Smarty. Документация по [[http://www.smarty.net/docsv2/ru/smarty.for.designers.tpl |Smarty ]] |
- | ===Контроллер=== | + | ==== Контроллер==== |
Контроллер отвечает за формирование одной или нескольких страниц целиком. | Контроллер отвечает за формирование одной или нескольких страниц целиком. | ||
Line 178: | Line 174: | ||
*ADMIN_CTRL_Abstract - контроллер страницы панели администратора | *ADMIN_CTRL_Abstract - контроллер страницы панели администратора | ||
- | ===Компонент=== | + | ==== Компонент ==== |
Компонент отвечает за формирование небольшого блока на страницах и обработку событий. Он самостоятельно формирует данные по переданным параметрам. | Компонент отвечает за формирование небольшого блока на страницах и обработку событий. Он самостоятельно формирует данные по переданным параметрам. | ||
Line 188: | Line 184: | ||
Компонент может включать в себя другие компоненты и декораторы. | Компонент может включать в себя другие компоненты и декораторы. | ||
- | ===Декоратор=== | + | ==== Декоратор==== |
Декоратор – это html файл, отображающий переданные данные. Декоратор является функцией Smarty и может находится в любом шаблоне, в т.ч. в другом декораторе. Декораторы упрощают код представления, убирают дублирование кода и обеспечивают единообразное отображение повторяющихся данных на разных страницах. | Декоратор – это html файл, отображающий переданные данные. Декоратор является функцией Smarty и может находится в любом шаблоне, в т.ч. в другом декораторе. Декораторы упрощают код представления, убирают дублирование кода и обеспечивают единообразное отображение повторяющихся данных на разных страницах. | ||
Line 194: | Line 190: | ||
Например, декоратор avatar_item используется для отображения аватара пользователя, user_list_item - для отображения аватара и имени пользователя. | Например, декоратор avatar_item используется для отображения аватара пользователя, user_list_item - для отображения аватара и имени пользователя. | ||
- | ===Drag-And-Drop=== | + | ==== Drag-And-Drop ==== |
Для того, чтобы дать возможность пользователю менять расположение виджетов или других элементов на странице, используются классы BASE_CTRL_ComponentPanel, BASE_CMP_DragAndDropEntityPanel, BASE_CMP_DragAndDropIndex, ADMIN_CTRL_Components, ADMIN_CMP_DragAndDropAdminPanel. | Для того, чтобы дать возможность пользователю менять расположение виджетов или других элементов на странице, используются классы BASE_CTRL_ComponentPanel, BASE_CMP_DragAndDropEntityPanel, BASE_CMP_DragAndDropIndex, ADMIN_CTRL_Components, ADMIN_CMP_DragAndDropAdminPanel. | ||
- | ===Основные компоненты сайта=== | + | ==== Основные компоненты сайта==== |
*BASE_CMP_Console* - консоль (верхняя панель управления) | *BASE_CMP_Console* - консоль (верхняя панель управления) | ||
*BASE_CMP_MainMenu – верхнее меню | *BASE_CMP_MainMenu – верхнее меню | ||
*BASE_CMP_BottomMenu – нижнее меню | *BASE_CMP_BottomMenu – нижнее меню | ||
- | + | * | |
- | ===Некоторые элементы, используемые для создания визуальных представлений=== | + | ==== Некоторые элементы, используемые для создания визуальных представлений ==== |
*BASE_CMP_ContentMenu – меню | *BASE_CMP_ContentMenu – меню | ||
*BASE_CMP_SortControl – контрол сортировки данных (подменю) | *BASE_CMP_SortControl – контрол сортировки данных (подменю) | ||
Line 212: | Line 208: | ||
*OW.ajaxFloatBox – всплывающее окно с функционалом AJAX. Пример - ow_plugins/skeleton/controllers/floatbox.php. | *OW.ajaxFloatBox – всплывающее окно с функционалом AJAX. Пример - ow_plugins/skeleton/controllers/floatbox.php. | ||
- | Детальное описание со скриншотами здесь http://docs.oxwall.org/design:interface | + | Детальное описание со скриншотами здесь: |
- | + | * http://docs.oxwall.org/design:interface | |
- | http://docs.oxwall.org/_media/design:origin-style-guide.psd | + | * http://docs.oxwall.org/_media/design:origin-style-guide.psd |
Прикладные компоненты: | Прикладные компоненты: | ||
Line 224: | Line 220: | ||
*BASE_CMP_AvatarUserList, BASE_CMP_MiniAvatarUserList, BASE_CMP_Users, BASE_CMP_UserList – списки аватаров пользователей | *BASE_CMP_AvatarUserList, BASE_CMP_MiniAvatarUserList, BASE_CMP_Users, BASE_CMP_UserList – списки аватаров пользователей | ||
- | OW::getNavigation()->addMenuItem – добавить пункт в главное меню | + | OW::getNavigation()->addMenuItem – добавить пункт в главное меню. |
+ | |||
+ | |||
+ | |**Note**: This documentation was provided by our contributor [[http://www.oxwall.org/user/superbog| Maxim ]]. Original instructions can be found [[http://www.oxwall.org/forum/topic/15481|here]] | | ||
+ | |**Note**: Данная документация была предоставлена автором [[http://www.oxwall.org/user/superbog| Maxim ]]. Оригинал документации доступен[[http://www.oxwall.org/forum/topic/15481|здесь]] | | ||