MG

Описание

Класс MG - один из базовых классов ядра системы. Содержит в себе методы которые могут быть использованы в шаблонах и плагинах, а также в контроллерах и моделях системы. Реализован в виде синглтона, что исключает многократное создание копий объектов данного класса.

Позволяет сохранять в свой реестр $_registry любые данные для дальнейшего использования в других частях программы.
Запись в реестр производится так: MG::set('name',$value); Чтение из реестра производится так: MG::get('name');
Реестр рекомендуется использовать вместо глобальных переменных.

Методы со знаком * содержат хуки

Методы класса

void addAction() Метод addAction добавляет обработчик для заданного хука.
пример 1:
//Произвольная пользовательская функция в одном из плагинов
function userfunc($color$text) {
    echo 
'<span style = "color:'.$color.'">'.$text.'</span>';
}

// на хук с именем 'printHeader'
// вешается обработчик в виде пользовательской функция 'userPrintHeader'
// функция ждет два параметра, поэтому хук должен их задавать
MG::addAction('printHeader''userfunc'2);

// как должен выглядеть хук
MG::createHook('printHeader''gray''text');


Варианты вызова данного метода.
1. MG::addAction([имя хука], [имя пользовательской функции]) - назначает пользовательскую функцию в качестве обработчика для хука.
2. MG::addAction([имя хука], [имя пользовательской функции], [количество параметров для пользовательской функции]) - назначает пользовательскую функцию в качестве обработчика для хукапри этом указывается какое количество параметров функция ожидает от хука.
3. MG::addAction([имя хука], [имя пользовательской функции], [количество параметров для пользовательской функции], [приоритет выполнения]) - назначает пользовательскую функцию в качестве обработчика для хукапри этом указывается какое количество параметров функция ожидает от хука и какой приоритет ее выполнения.
void addShortcode() Создает shortcode и определяет пользовательскую функцию для его обработки.
// Инициализация шорткода [back-ring] - доступен в любом HTML коде движка, исполняет функцию 'handleShortCode' в классе плагина 'BackRing'
MG::addShortcode('back-ring', array('BackRing''handleShortCode'));
void addPriceCustomFunction() Добавляет в реестр $_priceCustomFunctions функцию для пользовательского преобразования цены.
MG::addPriceCustomFunction(array($userClass$userFunction));
void addBodyClass() Добавляет класс текущего контроллера с определенным префиксом или без
<body class="MG::addBodyClass('l-'); ">
// результат на странице товара: <body class="l-body__product">
// результат на главной странице: <body class="l-body__index">
string|void addAgreementCheckbox() Возвращает html код чекбокса для подтверждения пользовательского соглашения и блокирует элемент, отправляющий форму, если чекбокс не отмечен.

Варианты использования:
1 вариант: вернет в место вызова html код и добавит обработчик в реестр

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
)
);


2 вариант:
вызывается в конструкторе и обработчике шорткода плагина, если верстка генерируется шорткодом:

a) добавление обработчика в реестр(вызывается в конструкторе плагина)

MG::addAgreementCheckbox('класс', array(), 'addRegistry');


b) добавление чекбокса в версту формы плагина(вызывается в обработчике шорткода плагина)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных'
    
)
);


3 вариант: запишет html код в JS переменную и добавит обработчик в реестр
(вызывается в конструкторе плагина, если верстка генерируется javascript'ом)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
),
    
'addJSVariable',
    
'имя-JS-переменной'
);


4 вариант: вывод кода обработчика в месте вызова функции:
(универсален, но не рекомендуется)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
),
    
'addInlineScript'
);

array getFilesR() Возвращает массив файлов по определенному пути.

// получение всех файлов и js в текущем шаблоне
$dir SITE_DIR.'mg-templates'.DS.MG::getSetting('templateName');
$files MG::getFilesR($dir, array('php','js'));
viewData($files);


// получение только путей всех файлов и папок с картинками товаров
$dir SITE_DIR.'uploads'.DS.'product';
$files MG::getFilesR($dir, array(), truetrue);
viewData($files);
void rrmdir() Рекурсивно удаляет папку и содержимое.

// удалить все картинки первой сотни товаров, но оставить папки
$dir SITE_DIR.'uploads'.DS.'product'.DS.'000';
MG::rrmdir($dirfalse);
void rMoveDir() Рекурсивно перемещает папку и содержимое.
array getPriceCustomFunctions() Возвращает реестр записей о пользовательских функциях, обрабатывающих цену.
$result MG::getPriceCustomFunctions();
viewData($result);
void pageThisPlugin() Добавляет обработчик для страницы плагина.
Назначенная в качестве обработчика пользовательская функция.
будет, отрисовывать страницу настроек плагина.
// при открытии страницы плагина, исполняет функцию 'pageSettingsPlugin' в классе плагина 'BackRing'
MG::pageThisPlugin('back-ring', array('BackRing''pageSettingsPlugin'));
void activateThisPlugin() Добавляет обработчик для активации плагина,
пользовательская функция будет срабатывать тогда когда
в панели администрирования будет активирован плагин.

Является не обязательным атрибутом плагина, при отсутствии этого
обработчика плагин тоже будет работать.

Функция обрабатывающая событие
не должна производить вывод (echo, print, print_r, var_dump), это нарушит
логику работы AJAX.
// при включении плагина, исполняет функцию 'activate' в классе плагина 'BackRing'
MG::activateThisPlugin('back-ring', array('BackRing''activate'));
void deactivateThisPlugin() Добавляет обработчик для ДЕактивации плагина,
пользовательская функция будет срабатывать тогда когда
в панели администрирования будет выключен плагин.

Является необязательным атрибутом плагина, при отсутствии этого
обработчика плагин тоже будет работать.

Функция обрабатывающая событие
не должна производить вывод (echo, print, print_r, var_dump), это нарушит
логику работы AJAX.
// при выключении плагина, исполняет функцию 'deactivate' в классе плагина 'deliveryCalc'
MG::activateThisPlugin('delivery-calc', array('deliveryCalc''deactivate'));
mixed createHook() Создает hook - крючок, для пользовательских функций и плагинов.
может быть вызван несколькими способами:
1. createHook('userFunction'); // в любом месте программы выполнится пользовательская функция userFunction() из плагина;
2. createHook('userFunction'$args); // в любом месте программы выполнится пользовательская функция userFunction($args) из плагина с параметрами;
3. return createHook('thisFunctionInUserEnviroment'$result$args); // хук прописывается перед
// возвращением результата какой либо функции,
// в качестве параметров передается результат работы текущей функции,
// и начальные параметры которые были переданы ей.
void createActivationHook() Создает хук activate_$folderName при активации заданного плагина.
Предварительно подключает index.php активируемого плагина,
для того, чтобы зарегистрировать его обработчики.
$folderName 'back-ring';
MG::createActivationHook($folderName);
void createDeactivationHook() Создает хук deactivate_$folderName при активации заданного плагина.
Предварительно подключает index.php активируемого плагина,
для того, чтобы зарегистрировать его обработчики.
$folderName 'back-ring';
MG::createDeactivationHook($folderName);
array stripslashesArray() Вырезает все слэши, аналог функции отключения магических кавычек.
$array MG::stripslashesArray($array);
viewData($array);
mixed getParameter() Защищает входящие параметры параметры и массивов $_POST, $_GET, $_REQUEST, $_FILES, $_COOKIE
исключает возможность инъекции вредоносного кода.
$result MG::getParameter('url');
viewData($result);
array defenderXss() Защищает от XSS атак полученный массив параметров.
$array MG::defenderXss($array);
viewData($array);
string defenderXss_decode() Восстанавливает строку прошедшую защиту от xss атак через defenderXss().
$string MG::defenderXss_decode($string);
viewData($string);
void disableTemplate() Отключает вывод элементов шаблона. Нужен при работе с AJAX.
MG::disableTemplate();
void enableTemplate() Включает вывод элементов шаблона. Весь контент будет
выводиться внутри пользовательской темы оформления.
MG::enableTemplate();
mixed get() Возвращает переменную из реестра.
$result MG::get('category');
viewData($result);
$result MG::get('pages');
viewData($result);
$result MG::get('settings');
viewData($result);
mixed|string getSetting() Возвращает значение опции хранящиеся в поле value таблицы настроек mg_setting.
При вызове данного метода, обращение к таблице mg_setting не инициируется, данные берутся из реестра настроек MG::get('settings').
$result MG::getSetting('sitename');
viewData($result);
void setSetting() Добавляет значение опции в реестр настроек MG::get('settings') c ключем $key. Доступ к ним можно получить через MG::getSetting($key);
MG::setSetting('ключ''значение');
bool. getConfigIni() Получает настройки для доступа к БД из конфигурационного файла config.ini.
При наличии в config.ini директив, создает одноименные константы, доступные далее в любом месте кода движка.
HOST - хост
USER - пользователь базы данных
PASSWORD - пароль от базы данных
NAME_BD - название базы данных
PREFIX - префикс таблиц базы данных
Если файл config.ini, запускает процесс инсталляции движка из папки install
В этом же методе отсекается символ "/" для всех страниц сайта.
string|bool getHtmlContent() * Получает содержание запрашиваемой HTML страницы.
Первым делом проверяет наличие информации в базе в mg_pages.
Также проверяет наличие запрашиваемого физического файла в папке mg-pages.
string inlineEditor() Оборачивает публичную часть в специальный div для редактирования из публичной части.
Необходимо задать параметры редактируемого поля в таблице БД.
string modalEditor() Вызывает модальное окно для редактирования сущности в публичной части сайта.
string contextEditor() Строит блок выпадающий по наведению на категории в меню.
$section 'page';
$content 'Каталог';
$id '5';
$component 'page';
$res MG::contextEditor();
void newTableContent() Добавляет в реестр движка информацию,
о новой таблице, в которой можно искать статический контент.
string getMenu() Возвращает построенную верстку меню в HTML виде.
string getPhpContent() * Получить путь до пользовательского файла, создающего контент страницы.
Файл должен находиться в папке mg-pages.
array getSmalCart() Возвращает данные по добавленным товарам в корзину.
$result MG::getSmalCart();
viewData($result);
void loger() Создает текстовый файл log_Y_m_d.txt в директории временных файлов сайта с отладочным содержанием. Можно использовать для логирования.
MG::loger("Любая строка");
MG::loger($var);
MG::loger($array); // для вывода в файл массива и полей объектов
string createTempDir() Рекурсивно создает директории для временных файлов сайта.
MG::createTempDir("log");
string printGui() Возвращает созданную движком HTML страницу, для вывода на экран.
Имеет четыре типа вывода:
-представление из MVC;
-пользовательский php Файл из mg-pages;
-статическая HTML страница из БД;
-страница 404 ошибки из пользовательского шаблона.
string. meta() * Устанавливает meta данные открытой страницы подключает системные файлы javascript.
void createTemplateColorsCssFile() Создаёт в папке с переданным шаблоном css файл с переданной произвольной цветовой схемой
void addJsVar() Добавляет глобальную переменную, которая будет доступна в браузере через JS
string mergeStaticFile() Соединяет все js и css стили из блока head в один файл.
void externalJsLinksException() Ищет в заголовке страницы внешние js файлы и возвращает их в виде строки
MG::externalJsLinksException($head);
void clearMergeStaticFile() Сбрасывает кэшированные файлы стилей и js из папки cache в шаблоне.
MG::clearMergeStaticFile(); // очистка кэша текущего шаблона
void copyImagesFiles() Копирует папку с изображениями и со всеми вложенными в нее подпапками.
void set() Создает переменную в реестре, в последствии доступна из любой точки программы.
MG::set('ключ''значение');
void setDifinePathTemplate() Инициализирует значение константы PATH_SITE_TEMPLATE - путь до папки с шаблоном.
array templateData() Собирает массив данных, доступных в последствии в файле template.php используемого шаблона.
void templateFooter() Подключает пользовательский подвал сайта из выбранного шаблона.
Если футер в текущем шаблоне отсутствует поставляется стандартный код из шаблона .default;
string getBuffer() * Возвращает буфер, который содержит весь, полученный в ходе работы движка, контент.
void printTemplate() Подключает каркасный файл template.php в используемом шаблоне.
Если файла template.php в текущем шаблоне нет, то подключается стандартный шаблона .default;
Если пользователь авторизован как администратор или модератор, подключается панель для перехода в админку.
void titlePage() Задает meta-title: заголовок страницы отображаемый во вкладке браузера.
Инициализирует хук mg_titlepage, чтобы обработать его пользовательской функцией нужно добавить обработчик:
MG::titlePage('title');

Пример автоматического изменения title находится в файле functions.php дефолного шаблона.
void seoMeta() * Задает meta-title, meta_keywords, meta_desc для запрошенной страницы.
MG::seoMeta(array('meta_title' => 'title''meta_keywords' => 'keywords''meta_desc' => 'description'));
string translitIt() Транслитирирует написания из кириллицу в латиницу.
MG::translitIt('строка');
void redirect() Перенаправляет на другую страницу сайта.
void setOption() Устанавливает значение для опции (настройки).
$option = array(
    
option => 'sitename'// идентификатор опции
    
value  => 'moguta.ru'// значение опции
    
active => 'Y'// автоподгрузка опций в кэш (Y/N)
    
name => 'Имя сайта'// Метка для опции
    
desc => 'Настройка задает имя для сайта' // Описание опции
)
MG::setOption($data);
// или
MG::setOption('sitename''moguta.ru');
string|array getOption() Возвращает значение для запрошенной опции (настройки).
Отличие от MG::get('settings') в том, что данные запрашиваются напрямую из БД.
Имеет два режима:
1. $result1 getOption('optionName') - вернет только значение;
$result1 => 'moguta.ru'

2. $result2 getOption('optionName' true) - вернет всю информацию об опции в
виде массива
.

$result2 => array(
    
option => 'sitename'// идентификатор опции
    
value  => 'moguta.ru'// значение опции
    
active => 'Y'// автоподгрузка опций в кэш (Y/N)
    
name => 'Имя сайта'// Метка для опции
    
desc => 'Настройка задает имя для сайта' // Описание опции
)
string declensionNum() Склонение числительных.
echo 'Найдено '.MG::declensionNum(5, array('товар''товара''товаров'));
bool addInformer() Формирует массив информеров для панели администрирования.
Примеры вызова
MG::addInformer(array('count'=>$model->getCount(),'class'=>'comment-wrap','classIcon'=>'comment-small-icon''plugin'=>'comments''priority'=>80));
MG::addInformer(array('count'=>$model->getCount(),'class'=>'count-wrap','classIcon'=>'message-icon''plugin'=>'comments''priority'=>70));
MG::addInformer(array('count'=>$model->getCount(),'class'=>'message-wrap','classIcon'=>'product-small-icon''plugin'=>'comments''priority'=>80));
string createInformerPanel() * Формирует верстку для панели информеров в админке.
Метод создан специально, для возможности добавления пользовательских информеров.
int prioritet() Сортировка массива по полю ['priority'].
string textMore() Отрезает часть строки дополняя ее многоточием.
$text 'описание товара';
$text MG::textMore($text8// 'описание...'
bool changeRowsTable() Меняет местами параметры сортировки двух записей из заданной таблицы.
Таблица обязательно должна иметь поля id и sort.
MG::changeRowsTable('product'515)
bool logReffererInfo() * Сохраняет в куках информацию о текущем посетителе.
с какой рекламной площадки пришел впервые,
с какой рекламной площадки пришел и совершил покупку.
void saveUTM() Сохранение UTM-меток в cookie
void clearUTM() Очищает UTM-метки из cookie
void getUTM() Возвращает UTM-метки из cookie
string dateConvert() Конвертирует дату из числового представления в строковое с названием месяца.
echo MG::dateConvert('03.04.2018 14:45'true); // '3 апреля 2018'
string|bool isMobileDevice() Возвращает наименование мобильного устройства, с которого происходит просмотр страницы.
echo MG::isMobileDevice();
string layoutManager() * Метод управляющий подключением верстки для писем и HTML блоков движка.
Также может быть использован для подключение пользовательских файлов из папки layouts/
действующего шаблона.
MG::layoutManager('layout_cart');       // корзина
MG::layoutManager('layout_auth');       // личный кабинет
MG::layoutManager('layout_widget');     // виджеты и коды счетчиков
MG::layoutManager('layout_compare');    // информер товаров для сравнения
MG::layoutManager('layout_content');    // содержание открытой страницы
MG::layoutManager('layout_leftmenu');   // левое меню с категориями
MG::layoutManager('layout_topmenu');    // верхнее горизонтальное меню
MG::layoutManager('layout_contacts');   // контакты в шапке
MG::layoutManager('layout_search');     // форма для поиска
MG::layoutManager('layout_content');    // вывод контента сгенерированного движком
string numberFormat() Форматирует цену в читаемый вид, согласно настройке 'Формат вывода цен'.
echo MG::numberFormat('76543.21''1 234,56'); // '76 543,21'
string numberDeFormat() Де-форматирует цену из строки в число. Убирает пробелы и запятые.
echo MG::numberDeFormat('76 543,21'); // '76543.21'
string|float roundPriceBySettings() Округляет цену, если в настройках магазина установлен формат цен
предполагающий её округление
string priceCourse() Форматирует цену в читаемый вид.
echo MG::priceCourse('76543.21'truetrue); // '76 543'
string nl2br() Заменяет в строке перенос строки (\r,\n) на

echo MG::nl2br("строка1 \n строка2"); // 'строка1 <br /> строка2'
string genRandomWord() Генерирует случайный набор символов из допустимого набора. Используется для генерации паролей.
echo MG::genRandomWord(12); // 'meqvo9c6q1zaj'
string replaceBBcodes() Заменяет BB-коды соответствующими HTML-тегами.
echo MG::replaceBBcodes('[url=moguta.ru]Могута[/url]'); // <a href="http://moguta.ru">Могута</a>
array prepareLangData() Подготовка массива для сохранения перевода сущности из общего массива по фильтру.
$entryArray = array('url' => '/template/url/''title' => 'Тайтл','content' => 'Содержимое страницы''activity' => 1);
$filter = array('title''content');
$preparedArray MG::prepareLangData($entryArray$filter'en');
void saveLocaleData() Сохранение локализации сущности по массиву подготовленному методом MG::prepareLangData().
$entryArray = array('url' => '/template/url/''title' => 'Тайтл','content' => 'Содержимое страницы''activity' => 1);
$filter = array('title''content');
$preparedArray MG::prepareLangData($entryArray$filter'en');
MG::savelocaleData(12'en''product'$preparedArray);
void loadLocaleData() * Загрузка локализации (при наличии соответствия на другом языке, заменяет оригинальные тексты).
// $data - массив с исходными данными из любой таблицы
$id_ent $data['id']; // идентификатор записи
$table 'product';    // таблица для перевода
$locale LANG;        // LANG глобальная дирректива хранящая выбранный язык
MG::loadLocaleData($id_ent$locale$table, &$data);
void removeLocaleDataByEntity() Удаление локализации для конкретной сущности (удаление всех сущностей перевода на всех языках).
$ent 1;            // id сущности для удаления
$table 'ptoduct';  // таблица
MG::removeLocaleDataByEntity($ent$table);
void cloneLocaleData() Клонирование локализации (при копировании товаров).
$cloneId 1;        // id сущности кля клонирования
$newId 15;         // новый id
$table 'product';  // табица в базе
MG::cloneLocaleData($cloneId$newId$table);
void checkProductOnStorage() Проверка наличия товаров на складах и вывод складов для выобра откуда будет самовывоз при оформлении заказа.
$res MG::checkProductOnStorage();
viewData($res);
string getMainStorage() Возвращает склад, с которого происходит списание товара в первую очередь
string checkStorageOnOrderCreate() Проверка товаров на наличие непосредственно в момент создания заказа.
$storage 'sklad1'// идентификатор склада
$res MG::checkStorageOnOrderCreate($storage);
MG::loger($res);
void decreaseCountProductOnStorage() Уменьшаем количество товаров при покупке на скаладах.
$data = array(
    
'id' => 1,           // id
    
'variant_id' => 15,  // id варианта
    
'count' => 5         // количество товара для изменения
);
$storage 'sklad1';   // идентификатор склада
$res MG::decreaseCountProductOnStorage($data$storage);
array loadCountFromStorageToCatalog() * Прикрепляет количествор со склада к списку товаров.
$model = new Models_Product;
$data $model->getProductByUserFilter('cat_id = 1');
$res MG::loadCountFromStorageToCatalog($data);
viewData($res);
array loadWholeSalesToCatalog() * Загружает для каталога товаров оптовые цены.
$model = new Models_Product;
$data $model->getProductByUserFilter('cat_id = 1');
$res MG::loadWholeSalesToCatalog($data);
viewData($res);
bool enabledStorage() Проверяет включены ли склады.
$res MG::enabledStorage();
var_dump($res);
bool isNewPayment() Проверяет включена ли новая система оплаты
float setWholePrice() Применяет оптовую цену к товару.
$price 1500;    // обычная цена
$productId 2;   // id товара
$count 5;       // количество товара
$variantId 15;  // вариант товара
$price MG::setWholePrice($price$productId$count$variantId);
array getWholesalesToCSV() Достает оптовые цены к товарам для CSV.
// $row - строка подготовленная для выгрузки в CSV
$row['wholesales'] = MG::getWholesalesToCSV($row['id'], $row);
bool|void setSizeMapToData() Прикрепляет размерную сетку к товару.
setSizeMapToData($data); // массив товара из буличной части товара
string restoreMsg() Получает из базы сообщение движка, заменяет константы на значения переменных и возвращает сообщение.
bool isAdmin() Проверяет пришел ли запрос из админки.
$res MG::isAdmin();
var_dump($res);
float convertPrice() Конвертирует цену из валюты магазина в текущую выбранную валюту (используется для мультивалютности).
$price MG::convertPrice($product['price_course']);
float convertCustomPrice() Конвертирует старую цену из валюты в валюту (используется при редактировании товара в админке).
$product['old_price'] = MG::convertCustomPrice($product['old_price'], $product['currency_iso'], 'get');
array clearProductBlock() Чистит массив от товаров с 0 количеством (используется в блоках товаров на главной и в группах 'Новинки', 'Рекомендуемые', 'Распродажа').
$items['catalogItems'] = MG::clearProductBlock($items['catalogItems']);
string printReCaptcha() Выводит ReCaptcha.
echo MG::printReCaptcha(); // для инициализации в момент загрузки страницы

echo MG::printReCaptcha(false); // для отложенной инициализации через javascript

<script// пример инициализации ReCaptcha через javascript
$('.wrapper-modal-back-ring').find('.g-recaptcha-template').attr('id''backring_recaptcha');
var 
skey = $('#backring_recaptcha').data('sitekey');
backring_recaptcha grecaptcha.render('backring_recaptcha', {
        
sitekeyskey
});
$(
'.wrapper-modal-back-ring').find('.g-recaptcha-template').removeAttr('id');
</
script>
bool checkReCaptcha() Проверка ReCaptcha.
Результат прохождения ReCaptcha должен быть в переменной $_POST['g-recaptcha-response']
// Для получения результата в javascript переменную
<script>
var 
recaptcha grecaptcha.getResponse(backring_recaptcha); // где 'backring_recaptcha' - id контейнера с ReCaptcha
</script>

// Проверка результата на сервере
if (MG::checkReCaptcha()) {
    echo 
'ok';
    } else {
    echo 
'error';
}
boolean setLockEntity() Метод блокировки сущности для обновления пользователем
boolean checkLockEntity() Метод проверки блокировки записи
false|void unlockEntity() Метод разблокировки сущности для обновления пользователем
void addAdminDiscountDetails() Метод для установки скидки со стороны (движок, плагин, шаблон, скрипт и т.д.)
$entry = array(
    
'text'=> 'Описание скидки',
    
'price'=> $data
);
MG::addAdminDiscountDetails($entry);
array getAdminDiscountDetails() Метод возвращает установленную стороннюю скидку
string convertCountToHR() Конвертирует количество в соответствующую запись из опции convertCountToHR
string getWeightUnit() Действия с единицами веса
array getGoogleFonts() Возваращает список шрифтов GoogleFonts
void replaceLetterTemplate() Заменяет директивы письма на php-вставки
boolean accessFullTextSearch() Проверяет таблицу product на тип хранения MyISaM, чтобы понять можно ли использовать полнотекстовый поиск по товарам.
var_dump(MG::accessFullTextSearch());
int sizeTempFiles() Проверяет размер временных файлов в директории TEMP_DIR, записывает в БД и возвращает результат.
var_dump(MG::sizeTempFiles());
boolean hasEmoji() Проверяет строку на наличие в ней эмодзи.
var_dump(MG::hasEmoji($srt));
void ajaxResponse() Возвращает ответ на ajax запрос с обработкой локалей
Нужен для тех запросов, которые не проходят через actioner
И завершаются раньше, чем завершается скрипт mg-start
void getTemplatePlugins() Возвращает список плагинов из plugins.list шаблона
Если в шаблоне нет plugins.list, то возвращается список плагинов из папки mg-plugins шаблона
mixed decryptLocales() Расшифровывает рекурсивно локали в переданных данных
void genCaptcha() Генерирует и возвращает изображение с капчей
void response404() Устанавливает в регистр флаг для возвращения 404 страницы без редиректа
bool checkEmail() Проверка на валидный email.
Метод работает с версии системы 10.10.7,
поэтому его нельзя использовать в плагинах и шаблонах без проверки на существование метода.
bool checkIsAutocreatedEmail() Проверка является ли email созданным автоматически (при регистрации по телефону).
Метод работает с версии системы 11.3.5,
поэтому его нельзя использовать в плагинах и шаблонах без проверки на существование метода.
array getVatOptions() Возвращает массив поддерживаемых ставок НДС для товаров по 54 ФЗ
array getMeasureOptions() Возвращает массив мер предметов рассчёта по 54 ФЗ
array getPaymentObjectOptions() Возвращает массив признаков предмета рассчёта по 54 ФЗ
array getFiscalizationSettings() Метод возвращает системные настройки фискализации
string getImageExtension() Определяет раcширение изображения
Описание методов и примеры их использования

Метод

addAction (string $hookNamestring $userFunctionint $countArgint $priority 10)

Параметры

  • $hookName: имя хука на который вешается обработчик.
  • $userFunction: пользовательская функции, которая сработает при объявлении хука.
  • $countArg: количество аргументов, которое ждет пользовательская функция.
  • $priority: приоритет обработки (чем больше число, тем позже выполняется функция).

Описание

Метод addAction добавляет обработчик для заданного хука.
пример 1:

//Произвольная пользовательская функция в одном из плагинов
function userfunc($color$text) {
    echo 
'<span style = "color:'.$color.'">'.$text.'</span>';
}

// на хук с именем 'printHeader'
// вешается обработчик в виде пользовательской функция 'userPrintHeader'
// функция ждет два параметра, поэтому хук должен их задавать
MG::addAction('printHeader''userfunc'2);

// как должен выглядеть хук
MG::createHook('printHeader''gray''text');


Варианты вызова данного метода.
1. MG::addAction([имя хука], [имя пользовательской функции]) - назначает пользовательскую функцию в качестве обработчика для хука.
2. MG::addAction([имя хука], [имя пользовательской функции], [количество параметров для пользовательской функции]) - назначает пользовательскую функцию в качестве обработчика для хукапри этом указывается какое количество параметров функция ожидает от хука.
3. MG::addAction([имя хука], [имя пользовательской функции], [количество параметров для пользовательской функции], [приоритет выполнения]) - назначает пользовательскую функцию в качестве обработчика для хукапри этом указывается какое количество параметров функция ожидает от хука и какой приоритет ее выполнения.

Метод

addShortcode (string $hookNamestring|array $userFunctionint $priority 10)

Параметры

  • $hookName: название шорткода.
  • $userFunction: название пользовательской функции, обработчика.
  • $priority: приоритет выполнения функции.

Описание

Создает shortcode и определяет пользовательскую функцию для его обработки.

// Инициализация шорткода [back-ring] - доступен в любом HTML коде движка, исполняет функцию 'handleShortCode' в классе плагина 'BackRing'
MG::addShortcode('back-ring', array('BackRing''handleShortCode'));

Метод

addPriceCustomFunction (string|array $userFunctionint $priority)

Параметры

  • $userFunction: имя функции, или массив (имя класса, имя функции)
  • $priority: приоритет выполнения функции

Описание

Добавляет в реестр $_priceCustomFunctions функцию для пользовательского преобразования цены.

MG::addPriceCustomFunction(array($userClass$userFunction));

Метод

addBodyClass (string $prefix)

Параметры

  • $prefix: префикс для класса

Описание

Добавляет класс текущего контроллера с определенным префиксом или без

<body class="MG::addBodyClass('l-'); ">
// результат на странице товара: <body class="l-body__product">
// результат на главной странице: <body class="l-body__index">

Метод

string|void addAgreementCheckbox (string $button, array $textArrstring $modestring $JSVarName)

Параметры

  • $button: название класса элемента на который будет повешен обработчик (например класс кнопки submit)
  • $textArr: массив, содержащий текст чекбокса и текст ссылки для вывода текста пользовательского соглашения, если не передан или пустой, то заполняется значениями по умолчанию
  • $mode: режим функции(подробнее в примерах) (варианты - 'addRegistry', 'addJSVariable', 'addInlineScript' и пустой)
  • $JSVarName: переменная, содержащая чекбокс для вывода внутри javascript'а

Описание

Возвращает html код чекбокса для подтверждения пользовательского соглашения и блокирует элемент, отправляющий форму, если чекбокс не отмечен.

Варианты использования:
1 вариант: вернет в место вызова html код и добавит обработчик в реестр

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
)
);


2 вариант:
вызывается в конструкторе и обработчике шорткода плагина, если верстка генерируется шорткодом:

a) добавление обработчика в реестр(вызывается в конструкторе плагина)

MG::addAgreementCheckbox('класс', array(), 'addRegistry');


b) добавление чекбокса в версту формы плагина(вызывается в обработчике шорткода плагина)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных'
    
)
);


3 вариант: запишет html код в JS переменную и добавит обработчик в реестр
(вызывается в конструкторе плагина, если верстка генерируется javascript'ом)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
),
    
'addJSVariable',
    
'имя-JS-переменной'
);


4 вариант: вывод кода обработчика в месте вызова функции:
(универсален, но не рекомендуется)

MG::addAgreementCheckbox(
    
'класс',
    array(
        
'text' => 'Я даю согласие на обработку моих ',
        
'textLink' => 'персональных данных.'
    
),
    
'addInlineScript'
);

Метод

array getFilesR (string $dir, array $extensionsbool $pathOnly falsebool $getFolders false)

Параметры

  • $dir: путь к папке для сканирования
  • $extensions: массив с расширениями нужных файлов (если пустой, то возвращаются все файлы)
  • $pathOnly: при значении true возвращает только пути файлов
  • $getFolders: при значении true возвращает папки вместе с файлами

Описание

Возвращает массив файлов по определенному пути.

// получение всех файлов и js в текущем шаблоне
$dir SITE_DIR.'mg-templates'.DS.MG::getSetting('templateName');
$files MG::getFilesR($dir, array('php','js'));
viewData($files);


// получение только путей всех файлов и папок с картинками товаров
$dir SITE_DIR.'uploads'.DS.'product';
$files MG::getFilesR($dir, array(), truetrue);
viewData($files);

Метод

rrmdir (string $dirbool $deleteFolders true)

Параметры

  • $dir: путь к папке для удаления
  • $deleteFolders: удалять сами папки

Описание

Рекурсивно удаляет папку и содержимое.

// удалить все картинки первой сотни товаров, но оставить папки
$dir SITE_DIR.'uploads'.DS.'product'.DS.'000';
MG::rrmdir($dirfalse);

Метод

rMoveDir (string $sourcestring $destbool $copy false)

Параметры

  • $source: путь к исходной папке
  • $dest: путь куда перемещать папку
  • $copy: при значении true копирует папку, а не перемещает

Описание

Рекурсивно перемещает папку и содержимое.

Метод

array getPriceCustomFunctions ()

Описание

Возвращает реестр записей о пользовательских функциях, обрабатывающих цену.

$result MG::getPriceCustomFunctions();
viewData($result);

Метод

pageThisPlugin (string $pluginstring|array $userFunction)

Параметры

  • $plugin: название папки в которой лежит плагин.
  • $userFunction: пользовательская функции,
  • которая сработает при открытии страницы настроек данного плагина.

Описание

Добавляет обработчик для страницы плагина.
Назначенная в качестве обработчика пользовательская функция.
будет, отрисовывать страницу настроек плагина.

// при открытии страницы плагина, исполняет функцию 'pageSettingsPlugin' в классе плагина 'BackRing'
MG::pageThisPlugin('back-ring', array('BackRing''pageSettingsPlugin'));

Метод

activateThisPlugin (string $dirPluginstring|array $userFunction)

Параметры

  • $dirPlugin: директория в которой хранится плагин.
  • $userFunction: пользовательская функции, которая сработает при включении плагина.

Описание

Добавляет обработчик для активации плагина,
пользовательская функция будет срабатывать тогда когда
в панели администрирования будет активирован плагин.

Является не обязательным атрибутом плагина, при отсутствии этого
обработчика плагин тоже будет работать.

Функция обрабатывающая событие
не должна производить вывод (echo, print, print_r, var_dump), это нарушит
логику работы AJAX.

// при включении плагина, исполняет функцию 'activate' в классе плагина 'BackRing'
MG::activateThisPlugin('back-ring', array('BackRing''activate'));

Метод

deactivateThisPlugin (string $dirPluginstring|array $userFunction)

Параметры

  • $dirPlugin: директория в которой хранится плагин.
  • $userFunction: пользовательская функции, которая сработает при выключении плагина.

Описание

Добавляет обработчик для ДЕактивации плагина,
пользовательская функция будет срабатывать тогда когда
в панели администрирования будет выключен плагин.

Является необязательным атрибутом плагина, при отсутствии этого
обработчика плагин тоже будет работать.

Функция обрабатывающая событие
не должна производить вывод (echo, print, print_r, var_dump), это нарушит
логику работы AJAX.

// при выключении плагина, исполняет функцию 'deactivate' в классе плагина 'deliveryCalc'
MG::activateThisPlugin('delivery-calc', array('deliveryCalc''deactivate'));

Метод

mixed createHook (string $hookName)

Параметры

  • $hookName: параметры, которые надо защитить.

Описание

Создает hook - крючок, для пользовательских функций и плагинов.
может быть вызван несколькими способами:

1. createHook('userFunction'); // в любом месте программы выполнится пользовательская функция userFunction() из плагина;
2. createHook('userFunction'$args); // в любом месте программы выполнится пользовательская функция userFunction($args) из плагина с параметрами;
3. return createHook('thisFunctionInUserEnviroment'$result$args); // хук прописывается перед
// возвращением результата какой либо функции,
// в качестве параметров передается результат работы текущей функции,
// и начальные параметры которые были переданы ей.

Метод

createActivationHook (string $folderName)

Параметры

  • $folderName: название папки содержащей плагин.

Описание

Создает хук activate_$folderName при активации заданного плагина.
Предварительно подключает index.php активируемого плагина,
для того, чтобы зарегистрировать его обработчики.

$folderName 'back-ring';
MG::createActivationHook($folderName);

Метод

createDeactivationHook (string $folderName)

Параметры

  • $folderName: - название папки содержащей плагин.

Описание

Создает хук deactivate_$folderName при активации заданного плагина.
Предварительно подключает index.php активируемого плагина,
для того, чтобы зарегистрировать его обработчики.

$folderName 'back-ring';
MG::createDeactivationHook($folderName);

Метод

array stripslashesArray ()

Параметры

  • string|array строка или массив в котором надо удалить слэши.

Описание

Вырезает все слэши, аналог функции отключения магических кавычек.

$array MG::stripslashesArray($array);
viewData($array);

Метод

mixed getParameter (mixed $var)

Параметры

  • $var: входящий параметр.

Описание

Защищает входящие параметры параметры и массивов $_POST, $_GET, $_REQUEST, $_FILES, $_COOKIE
исключает возможность инъекции вредоносного кода.

$result MG::getParameter('url');
viewData($result);

Метод

array defenderXss (array $arrbool $emulMgOff false)

Параметры

  • $arr: параметры, которые надо защитить.
  • $emulMgOff: флаг для вырезания слэшей в параметрах.

Описание

Защищает от XSS атак полученный массив параметров.

$array MG::defenderXss($array);
viewData($array);

Метод

string defenderXss_decode (string $string)

Параметры

  • $string: входящая строка.

Описание

Восстанавливает строку прошедшую защиту от xss атак через defenderXss().

$string MG::defenderXss_decode($string);
viewData($string);

Метод

disableTemplate ()

Описание

Отключает вывод элементов шаблона. Нужен при работе с AJAX.

MG::disableTemplate();

Метод

enableTemplate ()

Описание

Включает вывод элементов шаблона. Весь контент будет
выводиться внутри пользовательской темы оформления.

MG::enableTemplate();

Метод

mixed get ($key)

Параметры

  • $key: - имя переменной.

Описание

Возвращает переменную из реестра.

$result MG::get('category');
viewData($result);
$result MG::get('pages');
viewData($result);
$result MG::get('settings');
viewData($result);

Метод

mixed|string getSetting (string $optionbool $unserialize false)

Параметры

  • $option: ключ соответствующий значению в поле в таблице mg_setting.
  • $unserialize: при значении true преобразует сериализованную строку в массив

Описание

Возвращает значение опции хранящиеся в поле value таблицы настроек mg_setting.
При вызове данного метода, обращение к таблице mg_setting не инициируется, данные берутся из реестра настроек MG::get('settings').

$result MG::getSetting('sitename');
viewData($result);

Метод

setSetting ($key$object)

Параметры

  • $key: - имя опции.
  • $object: - значение опции.

Описание

Добавляет значение опции в реестр настроек MG::get('settings') c ключем $key. Доступ к ним можно получить через MG::getSetting($key);

MG::setSetting('ключ''значение');

Метод

boolgetConfigIni ()

Описание

Получает настройки для доступа к БД из конфигурационного файла config.ini.
При наличии в config.ini директив, создает одноименные константы, доступные далее в любом месте кода движка.
HOST - хост
USER - пользователь базы данных
PASSWORD - пароль от базы данных
NAME_BD - название базы данных
PREFIX - префикс таблиц базы данных
Если файл config.ini, запускает процесс инсталляции движка из папки install
В этом же методе отсекается символ "/" для всех страниц сайта.

Метод

string|bool getHtmlContent ()

Результат работы метода можно изменить хуком: MG_getHtmlContent

Описание

Получает содержание запрашиваемой HTML страницы.
Первым делом проверяет наличие информации в базе в mg_pages.
Также проверяет наличие запрашиваемого физического файла в папке mg-pages.

Метод

string inlineEditor (string $tablestring $fieldint $idstring $contentstring $dir$instanceName$cleanImages false)

Параметры

  • $table: таблица в базе например mg_page.
  • $field: поле в таблице, например html_content.
  • $id: номер записи в таблице.
  • $content: исходное содержание.
  • $dir: папка для картинок

Описание

Оборачивает публичную часть в специальный div для редактирования из публичной части.
Необходимо задать параметры редактируемого поля в таблице БД.

Метод

string modalEditor (string $sectionstring $contentstring $typestring $id)

Параметры

  • $section: секция для вызова модального окна.
  • $content: содержание блока.
  • $type: тип модального окна.
  • $id: сущность

Описание

Вызывает модальное окно для редактирования сущности в публичной части сайта.

Метод

string contextEditor (string $sectionstring $contentstring $idstring $component)

Параметры

  • $section: секция для вызова модального окна.
  • $content: содержание блока.
  • $id: сущность.
  • $component: меню категорий, либо меню страниц.

Описание

Строит блок выпадающий по наведению на категории в меню.

$section 'page';
$content 'Каталог';
$id '5';
$component 'page';
$res MG::contextEditor();

Метод

newTableContent (string $table)

Параметры

  • $table: наименование новой таблицы.
  • $table: наименование поля в таблице с контентом.

Описание

Добавляет в реестр движка информацию,
о новой таблице, в которой можно искать статический контент.

Метод

string getMenu (string|bool $type false)

Параметры

  • $type: тип меню

Описание

Возвращает построенную верстку меню в HTML виде.

Метод

string getPhpContent ()

Результат работы метода можно изменить хуком: MG_getPhpContent

Описание

Получить путь до пользовательского файла, создающего контент страницы.
Файл должен находиться в папке mg-pages.

Метод

array getSmalCart ()

Описание

Возвращает данные по добавленным товарам в корзину.

$result MG::getSmalCart();
viewData($result);

Метод

void loger (string|array $textstring $mode appendstring $file logstring $time truestring $dump false)

Параметры

  • $text: текст лога.
  • $mode: режим записи.
  • $file: название файла для записи.
  • $time: делать ли приписку дня в названии файла.
  • $dump: использовать ли var_.

Описание

Создает текстовый файл log_Y_m_d.txt в директории временных файлов сайта с отладочным содержанием. Можно использовать для логирования.

MG::loger("Любая строка");
MG::loger($var);
MG::loger($array); // для вывода в файл массива и полей объектов

Метод

string createTempDir (string $dirnamestring $urlPath true)

Параметры

  • $dirname: название директории, например "log" или "log/user"
  • $urlPath: возвращать полный путь до директори

Описание

Рекурсивно создает директории для временных файлов сайта.

MG::createTempDir("log");

Метод

string printGui (mixed $data)

Параметры

  • $data: - массив с данными для вывода контента.

Описание

Возвращает созданную движком HTML страницу, для вывода на экран.
Имеет четыре типа вывода:
-представление из MVC;
-пользовательский php Файл из mg-pages;
-статическая HTML страница из БД;
-страница 404 ошибки из пользовательского шаблона.

Метод

stringmeta ($mode = Array)

Параметры

  • array массив с указанием, какие мета данные подключать (meta(seo), css, js, jquery)

Результат работы метода можно изменить хуком: MG_meta

Описание

Устанавливает meta данные открытой страницы подключает системные файлы javascript.

Метод

createTemplateColorsCssFile ()

Описание

Создаёт в папке с переданным шаблоном css файл с переданной произвольной цветовой схемой

Метод

void addJsVar (string $namestring $val)

Параметры

  • $name: Название переменной
  • $val: Значение переменной

Описание

Добавляет глобальную переменную, которая будет доступна в браузере через JS

Метод

string mergeStaticFile ()

Параметры

  • string - HTML содержимое тега head
  • string - тип выходного файла

Описание

Соединяет все js и css стили из блока head в один файл.

Метод

externalJsLinksException (string $externalLinks)

Параметры

  • $externalLinks: набор ссылок в виде строки

Описание

Ищет в заголовке страницы внешние js файлы и возвращает их в виде строки

MG::externalJsLinksException($head);

Метод

clearMergeStaticFile (string $dir false)

Параметры

  • $dir: путь к папке с кэшем скриптов и картинок

Описание

Сбрасывает кэшированные файлы стилей и js из папки cache в шаблоне.

MG::clearMergeStaticFile(); // очистка кэша текущего шаблона

Метод

copyImagesFiles (string $imageDirstring $dirCache)

Параметры

  • $imageDir: - путь к исходной папке.
  • $dirCache: - куда копировать.

Описание

Копирует папку с изображениями и со всеми вложенными в нее подпапками.

Метод

set ($key$object)

Параметры

  • $key: - имя переменной.
  • $object: - значение переменной.

Описание

Создает переменную в реестре, в последствии доступна из любой точки программы.

MG::set('ключ''значение');

Метод

setDifinePathTemplate ($type template$template moguta-standard)

Параметры

  • $type: тип шаблона
  • $template: папка с шаблоном в mg-s/.

Описание

Инициализирует значение константы PATH_SITE_TEMPLATE - путь до папки с шаблоном.

Метод

array templateData (array $content)

Параметры

  • $content: содержимое

Описание

Собирает массив данных, доступных в последствии в файле template.php используемого шаблона.

Метод

void templateFooter (array|null $data)

Параметры

  • $data: данные для использовании в футере сайта

Описание

Подключает пользовательский подвал сайта из выбранного шаблона.
Если футер в текущем шаблоне отсутствует поставляется стандартный код из шаблона .default;

Метод

string getBuffer (string $includebool $html false, array|bool $variables false)

Параметры

  • $include: путь для подключаемого файла (вид или пользовательский файл).
  • $html: флаг вывода контента.
  • $variables: массив переменных, которые должны быть доступны в файле вида.

Результат работы метода можно изменить хуком: MG_getBuffer

Описание

Возвращает буфер, который содержит весь, полученный в ходе работы движка, контент.

Метод

printTemplate ($content)

Параметры

  • $content: - содержание страницы для вывода в шаблоне.

Описание

Подключает каркасный файл template.php в используемом шаблоне.
Если файла template.php в текущем шаблоне нет, то подключается стандартный шаблона .default;
Если пользователь авторизован как администратор или модератор, подключается панель для перехода в админку.

Метод

titlePage (string $title)

Параметры

  • $title: - заголовок.

Описание

Задает meta-title: заголовок страницы отображаемый во вкладке браузера.
Инициализирует хук mg_titlepage, чтобы обработать его пользовательской функцией нужно добавить обработчик:

MG::titlePage('title');

Пример автоматического изменения title находится в файле functions.php дефолного шаблона.

Метод

seoMeta (array $data)

Параметры

  • $data: массив с SEO данными.

Результат работы метода можно изменить хуком: MG_seoMeta

Описание

Задает meta-title, meta_keywords, meta_desc для запрошенной страницы.

MG::seoMeta(array('meta_title' => 'title''meta_keywords' => 'keywords''meta_desc' => 'description'));

Метод

string translitIt (string $strint $mode$point false)

Параметры

  • $str: переводимая строка.
  • $mode: флаг для замены символа / на -.

Описание

Транслитирирует написания из кириллицу в латиницу.

MG::translitIt('строка');

Метод

void redirect (string $locationstring $redirect)

Параметры

  • $location: ссылка на перенаправляемую страницу.
  • $redirect: тип редиректа 301, 302, и т.п.

Описание

Перенаправляет на другую страницу сайта.

Метод

void setOption (array|string $optionstring $valuebool $serialize false)

Параметры

  • $option: - может содержать значения для полей таблицы mg_setting или идентификатор опции.
  • $value: - если переменная
  • $serialize: при значении true преобразует входящий массив в сериализованную строку

Описание

Устанавливает значение для опции (настройки).

$option = array(
    
option => 'sitename'// идентификатор опции
    
value  => 'moguta.ru'// значение опции
    
active => 'Y'// автоподгрузка опций в кэш (Y/N)
    
name => 'Имя сайта'// Метка для опции
    
desc => 'Настройка задает имя для сайта' // Описание опции
)
MG::setOption($data);
// или
MG::setOption('sitename''moguta.ru');

Метод

string|array getOption ($option$data false)

Параметры

  • $option: - ключ опции Name,
  • $option: - флаг для полного сбора данных о записи с опцией,

Описание

Возвращает значение для запрошенной опции (настройки).
Отличие от MG::get('settings') в том, что данные запрашиваются напрямую из БД.
Имеет два режима:

1. $result1 getOption('optionName') - вернет только значение;
$result1 => 'moguta.ru'

2. $result2 getOption('optionName' true) - вернет всю информацию об опции в
виде массива
.

$result2 => array(
    
option => 'sitename'// идентификатор опции
    
value  => 'moguta.ru'// значение опции
    
active => 'Y'// автоподгрузка опций в кэш (Y/N)
    
name => 'Имя сайта'// Метка для опции
    
desc => 'Настройка задает имя для сайта' // Описание опции
)

Метод

string declensionNum (int $number, array $titles$titlesBefore)

Параметры

  • $number: - число
  • $titles: - три варианта склонений

Описание

Склонение числительных.

echo 'Найдено '.MG::declensionNum(5, array('товар''товара''товаров'));

Метод

bool addInformer (array $data)

Параметры

  • $data: - массив с входящими параметрами для инициализации информера.

Описание

Формирует массив информеров для панели администрирования.
Примеры вызова

MG::addInformer(array('count'=>$model->getCount(),'class'=>'comment-wrap','classIcon'=>'comment-small-icon''plugin'=>'comments''priority'=>80));
MG::addInformer(array('count'=>$model->getCount(),'class'=>'count-wrap','classIcon'=>'message-icon''plugin'=>'comments''priority'=>70));
MG::addInformer(array('count'=>$model->getCount(),'class'=>'message-wrap','classIcon'=>'product-small-icon''plugin'=>'comments''priority'=>80));

Метод

string createInformerPanel ()

Результат работы метода можно изменить хуком: MG_createInformerPanel

Описание

Формирует верстку для панели информеров в админке.
Метод создан специально, для возможности добавления пользовательских информеров.

Метод

int prioritet (array $a, array $b)

Параметры

  • $a: первый массив
  • $b: второй массив

Описание

Сортировка массива по полю ['priority'].

Метод

string textMore (string $textint $length 240bool $stripTags true)

Параметры

  • $text: входящая строка
  • $length: количество символов
  • $stripTags: удалять html теги и шорткоды

Описание

Отрезает часть строки дополняя ее многоточием.

$text 'описание товара';
$text MG::textMore($text8// 'описание...'

Метод

bool changeRowsTable (string $tablenameint $oneIdint $twoId)

Параметры

  • $tablename: название таблицы в базе (без префикса)
  • $oneId: id первой строки
  • $twoId: id второй строки

Описание

Меняет местами параметры сортировки двух записей из заданной таблицы.
Таблица обязательно должна иметь поля id и sort.

MG::changeRowsTable('product'515)

Метод

bool logReffererInfo ()

Результат работы метода можно изменить хуком: MG_logReffererInfo

Описание

Сохраняет в куках информацию о текущем посетителе.
с какой рекламной площадки пришел впервые,
с какой рекламной площадки пришел и совершил покупку.

Метод

void saveUTM ()

Описание

Сохранение UTM-меток в cookie

Метод

void clearUTM ()

Описание

Очищает UTM-метки из cookie

Метод

void getUTM ()

Описание

Возвращает UTM-метки из cookie

Метод

string dateConvert (string $datebool $year falsebool $time false)

Параметры

  • $date: - дата в любом формате.
  • $year: - флаг для вывода года.
  • $time: - флаг для вывода времени.

Описание

Конвертирует дату из числового представления в строковое с названием месяца.

echo MG::dateConvert('03.04.2018 14:45'true); // '3 апреля 2018'

Метод

string|bool isMobileDevice ()

Описание

Возвращает наименование мобильного устройства, с которого происходит просмотр страницы.

echo MG::isMobileDevice();

Метод

string layoutManager (string $layout, array $data)

Параметры

  • $layout: название файла с версткой,
  • $data: массив переменных, которые будут доступны в layout в переменной

Результат работы метода можно изменить хуком: MG_layoutManager

Описание

Метод управляющий подключением верстки для писем и HTML блоков движка.
Также может быть использован для подключение пользовательских файлов из папки layouts/
действующего шаблона.

MG::layoutManager('layout_cart');       // корзина
MG::layoutManager('layout_auth');       // личный кабинет
MG::layoutManager('layout_widget');     // виджеты и коды счетчиков
MG::layoutManager('layout_compare');    // информер товаров для сравнения
MG::layoutManager('layout_content');    // содержание открытой страницы
MG::layoutManager('layout_leftmenu');   // левое меню с категориями
MG::layoutManager('layout_topmenu');    // верхнее горизонтальное меню
MG::layoutManager('layout_contacts');   // контакты в шапке
MG::layoutManager('layout_search');     // форма для поиска
MG::layoutManager('layout_content');    // вывод контента сгенерированного движком

Метод

string numberFormat (string $strstring|null $type)

Параметры

  • $str: строковое значение цены.
  • $type: формат вывода (если используется, то заменяет настройку 'Формат вывода цен').

Описание

Форматирует цену в читаемый вид, согласно настройке 'Формат вывода цен'.

echo MG::numberFormat('76543.21''1 234,56'); // '76 543,21'

Метод

string numberDeFormat (string $str)

Параметры

  • $str: - строка с форматированной ценой.

Описание

Де-форматирует цену из строки в число. Убирает пробелы и запятые.

echo MG::numberDeFormat('76 543,21'); // '76543.21'

Метод

string|float roundPriceBySettings (string|float $price)

Параметры

  • $price: - цена товара

Описание

Округляет цену, если в настройках магазина установлен формат цен
предполагающий её округление

Метод

string priceCourse (string $pricebool $format truebool $useFloat)

Параметры

  • $price: цена.
  • $format: нужно форматировать или нет.
  • $useFloat: округлять до целых.

Описание

Форматирует цену в читаемый вид.

echo MG::priceCourse('76543.21'truetrue); // '76 543'

Метод

string nl2br (string $string)

Параметры

  • $string: входная строка

Описание

Заменяет в строке перенос строки (\r,\n) на

echo MG::nl2br("строка1 \n строка2"); // 'строка1 <br /> строка2'

Метод

string genRandomWord (int $count 8string $accepted = 0987654321zyxwvutsrqponmlkjihgfedcba)

Параметры

  • $count: длина строки
  • $accepted: допустимые символы

Описание

Генерирует случайный набор символов из допустимого набора. Используется для генерации паролей.

echo MG::genRandomWord(12); // 'meqvo9c6q1zaj'

Метод

string replaceBBcodes (string $text)

Параметры

  • $text: строка, в которой будет заменен BB-код

Описание

Заменяет BB-коды соответствующими HTML-тегами.

echo MG::replaceBBcodes('[url=moguta.ru]Могута[/url]'); // <a href="http://moguta.ru">Могута</a>

Метод

array prepareLangData (array $data, array $filterstring $lang = default)

Параметры

  • $data: массив данных
  • $filter: параметры фильтрации масива
  • $lang: локаль

Описание

Подготовка массива для сохранения перевода сущности из общего массива по фильтру.

$entryArray = array('url' => '/template/url/''title' => 'Тайтл','content' => 'Содержимое страницы''activity' => 1);
$filter = array('title''content');
$preparedArray MG::prepareLangData($entryArray$filter'en');

Метод

saveLocaleData (int $id_entstring $localestring $table, array $data)

Параметры

  • $id_ent: id записи в таблице
  • $locale: локаль
  • $table: таблица в БД
  • $data: результат работы медота MG::prepareLangData();

Описание

Сохранение локализации сущности по массиву подготовленному методом MG::prepareLangData().

$entryArray = array('url' => '/template/url/''title' => 'Тайтл','content' => 'Содержимое страницы''activity' => 1);
$filter = array('title''content');
$preparedArray MG::prepareLangData($entryArray$filter'en');
MG::savelocaleData(12'en''product'$preparedArray);

Метод

loadLocaleData (int $id_entstring $localestring $table, array $data)

Параметры

  • $id_ent: id записи в таблице
  • $locale: локаль
  • $table: таблица в БД
  • $data: массив данных (ссылка)

Результат работы метода можно изменить хуком: MG_loadLocaleData

Описание

Загрузка локализации (при наличии соответствия на другом языке, заменяет оригинальные тексты).

// $data - массив с исходными данными из любой таблицы
$id_ent $data['id']; // идентификатор записи
$table 'product';    // таблица для перевода
$locale LANG;        // LANG глобальная дирректива хранящая выбранный язык
MG::loadLocaleData($id_ent$locale$table, &$data);

Метод

removeLocaleDataByEntity (int $entstring $table)

Параметры

  • $ent: id записи в таблице
  • $table: таблица в БД

Описание

Удаление локализации для конкретной сущности (удаление всех сущностей перевода на всех языках).

$ent 1;            // id сущности для удаления
$table 'ptoduct';  // таблица
MG::removeLocaleDataByEntity($ent$table);

Метод

cloneLocaleData (int $cloneIdint $newIdstring $table)

Параметры

  • $cloneId: id записи в таблице
  • $newId: новый id
  • $table: таблица в БД

Описание

Клонирование локализации (при копировании товаров).

$cloneId 1;        // id сущности кля клонирования
$newId 15;         // новый id
$table 'product';  // табица в базе
MG::cloneLocaleData($cloneId$newId$table);

Метод

checkProductOnStorage ()

Описание

Проверка наличия товаров на складах и вывод складов для выобра откуда будет самовывоз при оформлении заказа.

$res MG::checkProductOnStorage();
viewData($res);

Метод

string getMainStorage ()

Описание

Возвращает склад, с которого происходит списание товара в первую очередь

Метод

string checkStorageOnOrderCreate (string $storage all)

Параметры

  • $storage: склад

Описание

Проверка товаров на наличие непосредственно в момент создания заказа.

$storage 'sklad1'// идентификатор склада
$res MG::checkStorageOnOrderCreate($storage);
MG::loger($res);

Метод

decreaseCountProductOnStorage (array $productstring $storage all)

Параметры

  • $product: товар
  • $storage: склад

Описание

Уменьшаем количество товаров при покупке на скаладах.

$data = array(
    
'id' => 1,           // id
    
'variant_id' => 15,  // id варианта
    
'count' => 5         // количество товара для изменения
);
$storage 'sklad1';   // идентификатор склада
$res MG::decreaseCountProductOnStorage($data$storage);

Метод

array loadCountFromStorageToCatalog (array $catalogstring $storage all)

Параметры

  • $catalog: список товаров
  • $storage: склад

Результат работы метода можно изменить хуком: MG_loadCountFromStorageToCatalog

Описание

Прикрепляет количествор со склада к списку товаров.

$model = new Models_Product;
$data $model->getProductByUserFilter('cat_id = 1');
$res MG::loadCountFromStorageToCatalog($data);
viewData($res);

Метод

array loadWholeSalesToCatalog ()

Параметры

  • array массив выдаваемый например методом catalog::getProductByUserFilter()

Результат работы метода можно изменить хуком: MG_loadWholeSalesToCatalog

Описание

Загружает для каталога товаров оптовые цены.

$model = new Models_Product;
$data $model->getProductByUserFilter('cat_id = 1');
$res MG::loadWholeSalesToCatalog($data);
viewData($res);

Метод

bool enabledStorage ()

Описание

Проверяет включены ли склады.

$res MG::enabledStorage();
var_dump($res);

Метод

bool isNewPayment ()

Описание

Проверяет включена ли новая система оплаты

Метод

float setWholePrice (float $priceint $productIdint $countint $variantId$wholesaleGroup$forcedCount)

Параметры

  • $price: цена
  • $productId: id товара
  • $count: количество
  • $variantId: id варианта товара

Описание

Применяет оптовую цену к товару.

$price 1500;    // обычная цена
$productId 2;   // id товара
$count 5;       // количество товара
$variantId 15;  // вариант товара
$price MG::setWholePrice($price$productId$count$variantId);

Метод

array getWholesalesToCSV (int $id, array $row)

Параметры

  • $id: товара
  • $row: массив данных

Описание

Достает оптовые цены к товарам для CSV.

// $row - строка подготовленная для выгрузки в CSV
$row['wholesales'] = MG::getWholesalesToCSV($row['id'], $row);

Метод

bool|void setSizeMapToData (array $data)

Параметры

  • $data: массив данных (ссылка)

Описание

Прикрепляет размерную сетку к товару.

setSizeMapToData($data); // массив товара из буличной части товара

Метод

string restoreMsg (string $name, array $changes)

Параметры

  • $name: название сообщения в таблице
  • $changes: массив вида "константа" => "значение переменной"

Описание

Получает из базы сообщение движка, заменяет константы на значения переменных и возвращает сообщение.

Метод

bool isAdmin ()

Описание

Проверяет пришел ли запрос из админки.

$res MG::isAdmin();
var_dump($res);

Метод

float convertPrice (string $price$backToShopCurr false)

Параметры

  • $price: старая цена товара

Описание

Конвертирует цену из валюты магазина в текущую выбранную валюту (используется для мультивалютности).

$price MG::convertPrice($product['price_course']);

Метод

float convertCustomPrice (string $pricestring $isostring $mode)

Параметры

  • $price: старая цена товара
  • $iso: код валюты
  • $mode: get - в верстку / set - в базу

Описание

Конвертирует старую цену из валюты в валюту (используется при редактировании товара в админке).

$product['old_price'] = MG::convertCustomPrice($product['old_price'], $product['currency_iso'], 'get');

Метод

array clearProductBlock (array $items)

Параметры

  • $items: массив товаров блоков

Описание

Чистит массив от товаров с 0 количеством (используется в блоках товаров на главной и в группах 'Новинки', 'Рекомендуемые', 'Распродажа').

$items['catalogItems'] = MG::clearProductBlock($items['catalogItems']);

Метод

string printReCaptcha (bool $autoinit true)

Параметры

  • $autoinit: автоинициализация

Описание

Выводит ReCaptcha.

echo MG::printReCaptcha(); // для инициализации в момент загрузки страницы

echo MG::printReCaptcha(false); // для отложенной инициализации через javascript

<script// пример инициализации ReCaptcha через javascript
$('.wrapper-modal-back-ring').find('.g-recaptcha-template').attr('id''backring_recaptcha');
var 
skey = $('#backring_recaptcha').data('sitekey');
backring_recaptcha grecaptcha.render('backring_recaptcha', {
        
sitekeyskey
});
$(
'.wrapper-modal-back-ring').find('.g-recaptcha-template').removeAttr('id');
</
script>

Метод

bool checkReCaptcha ()

Описание

Проверка ReCaptcha.
Результат прохождения ReCaptcha должен быть в переменной $_POST['g-recaptcha-response']

// Для получения результата в javascript переменную
<script>
var 
recaptcha grecaptcha.getResponse(backring_recaptcha); // где 'backring_recaptcha' - id контейнера с ReCaptcha
</script>

// Проверка результата на сервере
if (MG::checkReCaptcha()) {
    echo 
'ok';
    } else {
    echo 
'error';
}

Метод

boolean setLockEntity (string $tableint $id)

Параметры

  • $table:
  • $id:

Описание

Метод блокировки сущности для обновления пользователем

Метод

boolean checkLockEntity (string $tableint $id)

Параметры

  • $table:
  • $id:

Описание

Метод проверки блокировки записи

Метод

false|void unlockEntity (stirng $tableint $id)

Параметры

  • $table:
  • $id:

Описание

Метод разблокировки сущности для обновления пользователем

Метод

void addAdminDiscountDetails (array $entry)

Параметры

  • $entry:

Описание

Метод для установки скидки со стороны (движок, плагин, шаблон, скрипт и т.д.)

$entry = array(
    
'text'=> 'Описание скидки',
    
'price'=> $data
);
MG::addAdminDiscountDetails($entry);

Метод

array getAdminDiscountDetails ()

Описание

Метод возвращает установленную стороннюю скидку

Метод

string convertCountToHR (string $price)

Параметры

  • $price: цена

Описание

Конвертирует количество в соответствующую запись из опции convertCountToHR

Метод

string getWeightUnit (string $type, array $data)

Параметры

  • $type: тип действия (getSelect - выбор веса в панели администратора; convert - перевод из одной единицы веса в другую)
  • $data: набор данных (Для convert: from, to и value; значения from и to: t, kg, g, mg; value - число. Для getSelect: name, class, value; name и class - значения соответствующих атрибутов select'а; value - выбранная единица измерения из списка t, kg, g, mg)

Описание

Действия с единицами веса

Метод

array getGoogleFonts ()

Описание

Возваращает список шрифтов GoogleFonts

Метод

replaceLetterTemplate ($letterName$content$data$getDesc false)

Параметры

  • $letterName: string имя файла с шаблоном письма
  • $content: string содержание письма
  • $data: array данные для письма
  • $getDesc: bool получить описание тегов или контент письма

Описание

Заменяет директивы письма на php-вставки

Метод

boolean accessFullTextSearch ()

Описание

Проверяет таблицу product на тип хранения MyISaM, чтобы понять можно ли использовать полнотекстовый поиск по товарам.

var_dump(MG::accessFullTextSearch());

Метод

int sizeTempFiles (boolean $convert false)

Параметры

  • $convert: конвертировать размер в строку

Описание

Проверяет размер временных файлов в директории TEMP_DIR, записывает в БД и возвращает результат.

var_dump(MG::sizeTempFiles());

Метод

boolean hasEmoji ()

Описание

Проверяет строку на наличие в ней эмодзи.

var_dump(MG::hasEmoji($srt));

Метод

void ajaxResponse (mixed $databool $encode true)

Параметры

  • $data: данные, которые могут содержать зашифрованные локали
  • $encode: Должны ли данные перед ответом быть обработаны json_

Описание

Возвращает ответ на ajax запрос с обработкой локалей
Нужен для тех запросов, которые не проходят через actioner
И завершаются раньше, чем завершается скрипт mg-start

Метод

getTemplatePlugins ()

Описание

Возвращает список плагинов из plugins.list шаблона
Если в шаблоне нет plugins.list, то возвращается список плагинов из папки mg-plugins шаблона

Метод

mixed decryptLocales (mixed $data)

Параметры

  • $data:

Описание

Расшифровывает рекурсивно локали в переданных данных

Метод

void genCaptcha ()

Описание

Генерирует и возвращает изображение с капчей

Метод

void response404 ()

Описание

Устанавливает в регистр флаг для возвращения 404 страницы без редиректа

Метод

bool checkEmail (string $email)

Параметры

  • $email: Проверяемый .

Описание

Проверка на валидный email.
Метод работает с версии системы 10.10.7,
поэтому его нельзя использовать в плагинах и шаблонах без проверки на существование метода.

Метод

bool checkIsAutocreatedEmail (string $email)

Параметры

  • $email: Проверяемый .

Описание

Проверка является ли email созданным автоматически (при регистрации по телефону).
Метод работает с версии системы 11.3.5,
поэтому его нельзя использовать в плагинах и шаблонах без проверки на существование метода.

Метод

array getVatOptions ()

Описание

Возвращает массив поддерживаемых ставок НДС для товаров по 54 ФЗ

Метод

array getMeasureOptions ()

Описание

Возвращает массив мер предметов рассчёта по 54 ФЗ

Метод

array getPaymentObjectOptions ()

Описание

Возвращает массив признаков предмета рассчёта по 54 ФЗ

Метод

array getFiscalizationSettings ()

Описание

Метод возвращает системные настройки фискализации

Метод

string getImageExtension (string $imageFilePath)

Параметры

  • $imageFilePath: - ссылка или путь до изображения

Описание

Определяет раcширение изображения