Техническая документация Irbis — различия между версиями
(→Admin.php) |
(→Функции) |
||
Строка 115: | Строка 115: | ||
* static function hasAccessTo($sAction) | * static function hasAccessTo($sAction) | ||
* public function Admin() | * public function Admin() | ||
− | * public function AdminRedirect($sAction='', $aMessage=array()) | + | * public function AdminRedirect(<nowiki>$sAction='', $aMessage=array())</nowiki> |
* public function PreIndex() | * public function PreIndex() | ||
* public function AfterIndex() | * public function AfterIndex() | ||
Строка 134: | Строка 134: | ||
* public function UnArchive() | * public function UnArchive() | ||
* public function ActionToClass($sBaseAction) | * public function ActionToClass($sBaseAction) | ||
− | * public function Message($sType = '', $sMessage = '',$sOldObject='') | + | * public function Message(<nowiki>$sType = '', $sMessage = '',$sOldObject=''</nowiki>) |
* public function GetFilter() | * public function GetFilter() | ||
* public function ProcessFCKEditors() | * public function ProcessFCKEditors() | ||
* function initLocaleGlobal() | * function initLocaleGlobal() | ||
− | * public function GetFCKEditor($sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode='') | + | * public function GetFCKEditor(<nowiki>$sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode=''</nowiki>) |
− | * public function GetCKEditor($sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode='') | + | * public function GetCKEditor(<nowiki>$sFieldName='description',$sFieldValue='',$iWidth=700,$iHeight=600,$sFCKEditorEnterMode=''</nowiki>) |
* public function DisplayChange() | * public function DisplayChange() | ||
* public function OrderChange() | * public function OrderChange() |
Версия 18:21, 14 декабря 2016
Содержание
Структура каталогов
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()
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
Данный каталог содержит исходные файлы верстки сайта. Необходим для сохранения истории верстки.