Разрешенные способы изменения системы
В целях расширения или изменения в системе разрешается вносить изменения в следующие файлы и папки:
- Добавление методов в файл /classes/modules/custom.php
- Добавление методов в файлы модулей /classes/modules/имя_модуля/custom.php и /classes/modules/имя_модуля/__custom_adm.php
- Добавление прав на методы в файлах permissions.custom.php
- Помещение кода в /templates/{имя_шаблона}/classes/modules/{имя_модуля}/class.php
- Создание и подключение собственных классов через файл /classes/modules/имя_модуля/includes.php (не работает для модуля emarket, а также на новой реализации модулей; используйте механизм autoload)
- Добавление расширений существующих модулей через файлы в директории /classes/modules/{имя_модуля}/ext
- Редактирование языковых файлов i18n.{язык}.php и lang.{язык}.php
- Добавление способов оплаты в /classes/modules/emarket/classes/payment/systems/
- Добавление способов доставки в /classes/modules/emarket/classes/delivery/systems/
- Добавление механизмов скидок в /classes/modules/emarket/classes/discounts/rules/
- Добавление модификаторов скидок в /classes/modules/emarket/classes/discounts/modificators/
- Добавление нового шаблона дизайна административной панели /styles/skins/{имя_шаблона}
- Добавление форматов экспорта данных в /classes/system/subsystems/export/exporters/
- Добавление сплиттеров в /classes/system/subsystems/import/splitters/
- Создание собственного модуля к системе
- Кастомизация шаблонов в /xsl/import/custom и /xsl/export/custom
- Назначение обработчиков событий в файлах /classes/modules/{имя_модуля}/custom_events.php
- Изменение шаблонов в папке /templates/{имя_шаблона}/
- Изменение настроек системы в файле /config.ini
- Изменение настроек web-сервера в файлах .htaccess
- Изменение стандартного механизма вывода карты сайта и /robots.txt через перенаправление запросов на созданные файлы robots.php и sitemap.php
Переход с XSLT шаблонизатора на PHP
В этом разделе приведено сопоставление возможностей XSLT и PHP шаблонизатора.
XSLT-шаблонизатор |
PHP-шаблонизатор |
uobject://123 |
$this->getObjectById(123) |
upage://(/contacts/) |
$this->getPageByPath(‘/contacts/’); |
upage://159 |
$this->getPageById(159) |
usel://info-pages |
$this->usel(‘info-pages’) |
udata://menu/draw/hmenu |
$this->macros(‘menu’, ‘draw’, array(‘hmenu’)) |
В XSLT шаблонизаторе для локализации использовались файлы constants.dtd со списком ENTITY, в шаблоне вывод меток был вида &label-name;. В PHP шаблонизаторе для перевода меток необходимо использовать метод translate(). Пример использования:
$this->translate(‘name-label’);
Файл i18n.ru.php с метками возвращает ассоциативный массив, в котором ключом является название метки, а значением перевод, соответствующий метке, например:
return array( 'search-default-text'=>'Поиск', 'yes'=>'Да', 'no'=>'Нет', 'welcome'=>'Добро пожаловать,' );
Описание API
Из коробки в PHP-шаблонизаторе доступны следующие helper’ы:
-
mixed macros($module, $method, $arguments = array(), $extProps = array(), $extGroups = array()) выполняет вызов макроса
-
umiHierarchyElement getPageByPath($path) возвращает страницу по её url
-
umiHierarchyElement getPageById($id) возвращает страницу по её Id
-
string translate($label, $path = false) возвращает перевод языковой метки
-
umiObject getObjectById($id) возвращает объект по ID
-
array usel($uselName, $params = null) выполняет команду usel
-
mixed getRequest($name, $default = null) возвращает Request-параметр
-
mixed getRawRequest($name, $default = null) возвращает необработанный Request-параметр
-
mixed getCommonVar($name) возвращает запрошенную общую переменную
-
mixed setCommonVar($name, $value) устанавливает общую переменную
-
mixed isSetCommonVar($name) проверяет существование общей переменной
-
mixed parseTplMacros($value, [$elementId = false, $objectId = false]) выполняет tpl макросы
Добавить комментарий