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() * Сохраняет в куках информацию о текущем посетителе.
с какой рекламной площадки пришел впервые,
с какой рекламной площадки пришел и совершил покупку.
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);
int getProductCountOnStorage() Загрузка количества товаров со склада (Возвращает число).
$productId 1;    // id
$variantId 15;  // id варианта
$count 5;     // количество товара для изменения
$storage 'sklad1';// идентификатор склада
$res MG::getProductCountOnStorage($count$productId$variantId$storage);
viewData($res);
void checkProductOnStorage() Проверка наличия товаров на складах и вывод складов для выобра откуда будет самовывоз при оформлении заказа.
$res MG::checkProductOnStorage();
viewData($res);
string checkStorageOnOrderCreate() Проверка товаров на наличие непосредственно в момент создания заказа.
$storage 'sklad1'// идентификатор склада
$res MG::checkStorageOnOrderCreate($storage);
MG::loger($res);
string storageMinusProduct() Уменьшает количество товаров при скаладах покупке.
$storage 'sklad1';   // идентификатор склада
$res MG::storageMinusProduct($data);
void increaseCountProductOnStorage() Увеличиваем количество товаров при покупке на скаладах.
$data = array(
    
'id' => 1,           // id
    
'variant_id' => 15,  // id варианта
    
'count' => 5         // количество товара для изменения
);
$storage 'sklad1';   // идентификатор склада
$res MG::increaseCountProductOnStorage($data$storage);
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() Расшифровывает рекурсивно локали в переданных данных
Описание методов и примеры их использования

Метод

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 (array $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 falsebool $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

Описание

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

Метод

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);

Метод

int getProductCountOnStorage (int $countint $productIdint $variantIdstring $storage all)

Параметры

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

Описание

Загрузка количества товаров со склада (Возвращает число).

$productId 1;    // id
$variantId 15;  // id варианта
$count 5;     // количество товара для изменения
$storage 'sklad1';// идентификатор склада
$res MG::getProductCountOnStorage($count$productId$variantId$storage);
viewData($res);

Метод

checkProductOnStorage ()

Описание

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

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

Метод

string checkStorageOnOrderCreate (string $storage all)

Параметры

  • $storage: склад

Описание

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

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

Метод

string storageMinusProduct (string $storage all$adminOrder false)

Параметры

  • $storage: склад

Описание

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

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

Метод

increaseCountProductOnStorage (array $productstring $storage all)

Параметры

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

Описание

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

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

Метод

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:

Описание

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