Техническая документация Irbis
Содержание
- 1 Структура каталогов
- 2 Файлы главной директории
- 3 Каталог cache
- 4 Каталог class
- 4.1 core
- 4.1.1 locale_map
- 4.1.2 mpanel
- 4.1.3 sql
- 4.1.4 Admin.php
- 4.1.5 Admin.php
- 4.1.6 Auth.php
- 4.1.7 Base.php
- 4.1.8 BaseTemp.php
- 4.1.9 Cache.php
- 4.1.10 Capcha.php
- 4.1.11 Category.php
- 4.1.12 Comment.php
- 4.1.13 ContactForm.php
- 4.1.14 DateFormat.php
- 4.1.15 Db.php
- 4.1.16 Dbtree.php
- 4.1.17 Debug.php
- 4.1.18 DirectorySite.php
- 4.1.19 ExcelOld.php
- 4.1.20 Excel.php
- 4.1.21 FileCache.php
- 4.1.22 File.php
- 4.1.23 Form.php
- 4.1.24 HtmlDom.php
- 4.1.25 ImageProcess.php
- 4.1.26 Language.php
- 4.1.27 LocaleGlobal.php
- 4.1.28 Log.php
- 4.1.29 Mail.php
- 4.1.30 Message.php
- 4.1.31 Payment.php
- 4.1.32 Permission.php
- 4.1.33 PrintContent.php
- 4.1.34 Repository.php
- 4.1.35 Resource.php
- 4.1.36 Sms.php
- 4.1.37 String.php
- 4.1.38 Table.php
- 4.1.39 Tree.php
- 4.1.40 VinRequest.php
- 4.1.41 XajaxParser.php
- 4.2 module
- 4.3 system
- 4.1 core
- 5 Каталог cron
- 6 Каталог css
- 7 Каталог image
- 8 Каталог imgbank
- 9 Каталог include
- 10 Каталог js
- 11 Каталог lib
- 12 Каталог libp
- 13 Каталог mpanel
- 14 Каталог single
- 15 Каталог spec
- 16 Каталог template
- 17 Каталог verstka
Структура каталогов
cache | Файловый кеш |
class | Основные классы обработчики |
cron | Скрипты создания backup |
css | Файлы css дизайна |
image | Картинки дизайна |
imgbank | Файлы выгрузок/загрузок |
include | Файлы SQL запросов |
js | Файлы js дизайна |
lib | Библиотеки php, общие для всех проектов |
libp | Библиотеки js, общие для всех проектов |
mpanel | Админ панель MPanel |
single | Дополнительные библиотеки подключаемые только в текущем проекте |
spec | Связь ссылок на сайте с обработчиками (Роутинг) |
template | Шаблоны внешнего вида(подключенный дизайн) |
verstka | Исходные файлы верстки |
Файлы главной директории
.htaccess | Настройки WEB сервера и дополнительные параметры перенаправления для ЧПУ страниц |
action_includer.php | Механизм связи ссылок на сайте(spec) и обработчиков(class) |
connect.php | Настройки подключения к базе данных, TecDoc, настройки языка и cookies |
connect_sample.php | Пример файла подключения |
favicon.ico | Иконка сайта для браузера |
index.php | Главный исполнительный файл. |
init.php | Инициализация библиотек и ядра. |
xajax_request_parser.php | Обработчик xajax |
Каталог cache
Файловый кеш, может использоваться для кеширования главного меню, некоторых данных TecDoc и других данных с низкой частотой обновления, но долгим по времени выполнения запросом. Файлы разбиваются по директориям. Названия файлов и директорий указывается программистом в исходном коде. Файлы содержат сериализованные данные.
Пример использования:
$sCacheName='название_файла_кеша'; $sCacheDir='название_директории_кеша' if(!($aBrands=FileCache::GetValue($sCacheDir, $sCacheName))) { $aBrands=Db::GetAll($sSql); FileCache::SetValue($sCacheDir, $sCacheName, $aBrands); }
В данном примере мы получаем массив $aBrands из файлового кеша, а в случае отсутствия необходимого кеша - выполняется запрос получения $aBrands из базы данных и сохранение данных в кеш.
Каталог class
core
locale_map
mpanel
sql
Admin.php
Поля
- public $sTableName
- public $sAdditionalLink
- public $sTablePrefix
- public $sTableId
- public $aChildTable
- public $sAction
- public $sWinHead
- public $sPath
- public $sSubMenu
- public $aCheckField
- public $sBeforeAddMethod
- public $aFCKEditors
- public $sSqlPath
- public $sScriptForAdd
- public $bAlreadySetMessage
- public $sNumSql
- protected $aSearch
- protected $sSearchSQL
- public $sAddonPath
- protected $aAdmin
Функции
- static function hasAccessTo($sAction)
- public function Admin()
- public function AdminRedirect($sAction='', $aMessage=array())
- public function PreIndex()
- public function AfterIndex()
- public function SetDefaultTable($oTable, $aWhereData = array())
- public function ProcessTemplateForm($sPath)
- public function Add($bEdit = false)
- public function Edit()
- public function Apply()
- public function Search()
- protected function SearchForm()
- public function BeforeApply()
- public function AfterApply($aBeforeRow,$aAfterRow)
- public function BeforeAddAssign(&$aData)
- public function CheckField()
- public function Delete()
- public function Trash()
- public function Archive()
- public function UnArchive()
- public function ActionToClass($sBaseAction)
- public function Message($sType = '', $sMessage = '',$sOldObject='')
- public function GetFilter()
- public function ProcessFCKEditors()
- function initLocaleGlobal()
- public function GetFCKEditor($sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode='')
- public function GetCKEditor($sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode='')
- public function DisplayChange()
- public function OrderChange()
- function IsMpanelUser($sLogin,$sPassword)
- public function SearchStrongChange()
Admin.php
Auth.php
Base.php
BaseTemp.php
Cache.php
Capcha.php
Category.php
Comment.php
ContactForm.php
DateFormat.php
Db.php
Dbtree.php
Debug.php
DirectorySite.php
ExcelOld.php
Excel.php
FileCache.php
File.php
Form.php
HtmlDom.php
ImageProcess.php
Language.php
LocaleGlobal.php
Log.php
Mail.php
Message.php
Payment.php
Permission.php
PrintContent.php
Repository.php
Resource.php
Sms.php
String.php
Table.php
Tree.php
VinRequest.php
XajaxParser.php
module
system
Каталог cron
Содержит папку "local" в которой размещены файлы:
- backup.sh - скрипт для сохранения дампа основной базы. Скрипт выполняется каждые сутки.
- backup_weekly.sh - скрипт для сохранения таблиц cross и cross_stop. Скрипт выполняется 1 раз в неделю.
Каталог css
Содержит файлы css проекта, подключенные в данном дизайне. Также может содержать css от дополнительных библиотек.
Каталог image
Содержит изображения использующиеся в дизайне сайта.
Каталог imgbank
Содержит файлы и папки которые загружаются и выгружаются с сайта
- Image - директория изображений загружаемых на сайт
- price - директория загружаемых на сайт прайсов
- temp_upload - директория используется для выгрузок с сайта и обмена с 1С
- default_cross_import.xls - пример файла импорта кроссов
- default_price.xls - пример файла импорта прайса
- test_status_upload.xls - пример файла импорта статусов
- test_weight_upload.xls - пример файла импорта веса запчастей
Каталог include
Содержит настройки и каталог SQL запросов:
- locale_map - каталог настроек мультиязычности
- sql - каталог SQL запросов
- currency_convert_ru.php - настройки отображения валюты
- order_status_config.php - настройки статусов заказа
- user_notification.php - настройки уведомлений пользователей
- vin_request.php - настройки данных формы VIN запроса
Подкаталог sql содержит запросы которые используются в обработчиках, например запрос "Cat.php" используется в обработчике MPanel для отображения брендов на сайте.
Пример использования:
$sSql = Base::GetSql('Cat',array('id'=>'102'));
Функция Base::GetSql() имеет 2 параметра:
- имя запроса, должно быть написано латиницей, начинаться с заглавной буквы и не содержать пробелов.
- массив параметров(не обязательно)
В данном примере результатом выполнения функции будет текст SQL запроса в который подставиться условие where c.id='102'
Содержимое файла Cat.php:
<? function SqlCatCall($aData) { $sWhere.=$aData['where']; Db::SetWhere($sWhere,$aData,'id','c'); Db::SetWhere($sWhere,$aData,'pref','c'); Db::SetWhere($sWhere,$aData,'is_main','c'); Db::SetWhere($sWhere,$aData,'is_brand','c'); Db::SetWhere($sWhere,$aData,'visible','c'); Db::SetWhere($sWhere,$aData,'id_tof','c'); Db::SetWhere($sWhere,$aData,'id_sync','c'); if ($aData['join']) { $sJoin .= " ".$aData['join']; } if ($aData['order']) { $sOrder.=" order by ".$aData['order']; } if ($aData['where']) $sWhere .= $aData['where']; $sSql="select c.* from cat as c ".$sJoin." where 1=1 ".$sWhere." group by c.id ".$sOrder; return $sSql; } ?>
В каждом файле должна быть объявлена функция по шаблону:
- Sql
- Название файла, если файл находится в поддиректории то имя директории должно быть с большой буквы
- Call
и иметь обязательный параметр. Пример файла PartDetailRubricator.php в директории OptiCatalog, имя функции в файле должно быть следующим: SqlOptiCatalogPartDetailRubricatorCall.
Вызов функции Db::SetWhere() внутри таких файлов, устанавливает необходимый параметр "where" для формирующегося SQL запроса.
Каталог js
Содержит js скрипты использующиеся на сайте, в том числе и дополнительные библиотеки, например:
- jquery
- jquery.maskedinput
- jquery.validate
Каталог lib
Содержит библиотеки php подключенные к проекту, например:
- adodb - работа с базой
- PHPExcel - работа с xls/xlsx файлами
- smarty - работа с шаблонизатором smarty
- sphinx - релевантный поиск
- и другие
Данные библиотеки являются общими для всех проектов!
Каталог libp
Содержит библиотеки в основном js подключенные к проекту, например:
- FCKeditor - визуальный html редактор
- xajax - библиотека для работы с ajax
- popcalendar - всплывающий элемент выбора даты
- и другие
Данные библиотеки являются общими для всех проектов!
Каталог mpanel
Содержит обработчики админ панели MPanel. Также содержит 2 файла:
- index.php - страница приветствия и входа в MPanel
- login.php - механизм связи обработчиков и ссылок в MPanel
Все обработчики находятся в поддиректории "spec" и отличаются от файлов директории "spec" в корне сайта тем что более унифицированы и являются не промежуточным звеном, а именно содержат код самого обработчика.
Основные файлы:
- admin_regulations.php - для регламентных работ
- banner.php - управление баннерами
- cat.php - бренды деталей на сайте
- cat_model.php - модели авто
- cat_model_group.php - группы моделей авто
- cat_part.php - карточки товаров
- cat_pref.php - префиксы брендов
- complex_margin.php - сложные наценки
- constant.php - константы
- context_hint.php - подсказки на сайте
- customer.php - заказчики
- customer_group.php - группы заказчиков
- delivery_type.php - типы доставки
- drop_down_additional.php - настройка выдачи урлов
- general_constant.php - основные настройки
- handbook.php - параметры групп деталей
- hbparams_editor.php - редактор параметров групп деталей
- log_admin.php - лог посещений администратора
- log_finance.php - лог финансов
- log_mail.php - лог писем
- log_sms.php - лог смс
- log_visit.php - лог посещений пользователя
- manager.php - менеджеры
- news.php - новости
- payment_type.php - типы оплат
- popular_products.php - популярные продукты
- price.php - прайсы
- price_group.php - группы деталей
- provider.php - поставщики
- provider_group.php - группы поставщиков
- rubricator.php - рубрикатор
- translate_message.php - перевод сообщений
- translate_text.php - перевод текстов
- user.php - общий обработчик для пользователей
Каталог single
Каталог для подключения любых библиотек php/js использующихся индивидуально на данном проекте.
Каталог spec
Содержит файлы для связи ссылок на сайте и обработчиков в папке class.
Основные файлы директории:
- call_me.php - заказ звонка
- cart.php - корзина и оформление заказа
- catalog.php - подбор по каталогу
- catalog_manager.php - редактирование каталога
- contact_form.php - страница контактной информации и форма обратной связи
- cron.php - автоматический запуск периодичных событий
- customer.php - редактирование информации пользователя
- dashboard.php - личный кабинет пользователя
- finance.php - управление счетами
- garage_manager.php - просмотр и редактирование менеджерами гаража полььзователя
- home.php - главная страница
- manager.php - функционал менеджера
- manager_cart.php - просмотр менеджером корзины пользователей
- manager_invoice_customer.php - работа с накладными для менеджера
- message.php - внутренние сообщения
- news.php - новости
- own_auto.php - гараж автомобилей
- payment.php - модули оплаты
- payment_declaration.php - декларации доставки пользователя
- payment_declaration_manager.php - декларации доставки менеджера
- payment_report.php - сообщение об оплате пользователя
- payment_report_manager.php - сообщение об оплате менеджера
- price.php - загрузка прайса
- price_group.php - группы прайсов
- price_profile.php - профили загрузки прайсов
- price_queue.php - очередь загрузки прайсов
- price_search_log.php - история поиска по коду
- print_content.php - вывод на печать
- rubricator.php - рубрикатор
- search.php - релевантный поиск
- test.php - тестовая страница, может использоваться для проверки функционала отдельных модулей
- user.php - регистрация пользователя, вход на сайт, выход
- vin_request.php - работа с VIN запросами
Все файлы в данной директории должны иметь название в нижнем регистре, латиницей, для разделения слов допускается только знак нижнего подчеркивания "_".
Пример файла:
<?php $sPrefix='customer_'; $oObject=new Customer(); switch (Base::$aRequest['action']) { case $sPrefix.'profile': $oObject->Profile(); break; case $sPrefix.'phone': case $sPrefix.'phone_edit': $oObject->Phone(); break; case $sPrefix.'change_rating': $oObject->ChangeRating(); break; default: $oObject->Index(); break; } ?>
В данном примере описана связь страниц:
- http://irbis.mstarproject.com/pages/customer_profile
- http://irbis.mstarproject.com/pages/customer_phone
- http://irbis.mstarproject.com/pages/customer_phone_edit
- http://irbis.mstarproject.com/pages/customer_change_rating
с обработчиками в классе Customer (/class/module/Customer.php)
Каталог template
Содержит шаблоны "*.tpl" для работы с шаблонизатором Smarty и генерации HTML кода.
Основные файлы и директории:
- addon - директория с общими для всех проектов шаблонами, содержит шаблоны форм, таблиц
- ... - шаблоны от модулей
- mpanel - директория с шаблонами админки
- templates_c - файлы кеша Smarty, их не нужно редактировать
- footer.tpl - шаблон футера
- header.tpl - шаблон хедера
- header_print.tpl - ???
- index.tpl - основной шаблон, в него подключаются header.tpl и footer.tpl, также он выводит переменную Base::$sText в которую обработчики отправляют контент
- message_input.tpl - перевод сообщений для js
В файлах "*.tpl" обычно используются:
Каталог verstka
Данный каталог содержит исходные файлы верстки сайта. Необходим для сохранения истории верстки.