User Tools

Site Tools


dev:faq:how-start-development-by-maxim

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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|здесь]] |
  
  
  
dev/faq/how-start-development-by-maxim.1389718867.txt.gz · Last modified: 2015/09/15 09:10 (external edit)