MG

Описание

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

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

Методы класса
void activateThisPlugin() Добавляет обработчик для активации плагина, пользовательская функция будет срабатывать тогда когда в панели администрирования будет активирован плагин.
void addAction() Метод addAction добавляет обработчик для заданного хука.
void addInformer() Формирует массив информеров для панели администрирования.
void addPriceCustomFunction() Добавляет в реестр $_priceCustomFunctions функцию для пользовательского преобразования цены.
void addShortcode() Создает shortcode и определяет пользовательскую функцию для его обработки.
boolean changeRowsTable() Меняет местами параметры сортировки двух записей из заданной таблицы.
void clearMergeStaticFile() Сбрасывает кэшированные файлы стилей и js из папки cache в шаблоне.
string contextEditor() Строит блок выпадающий по наведению на категории в меню.
void copyImagesFiles() Копирует папку с изображениями и со всеми вложенными в нее подпапками.
void createActivationHook() Создает хук activate_$folderName при активации заданного плагина.
void createDeactivationHook() Создает хук deactivate_$folderName при активации заданного плагина.
void createHook() Создает hook - крючок, для пользовательских функций и плагинов.
void createImagesForStaticFile() Собирает все изображения упомянутые в CSS стилях плагинов для кэшированных файлов.
void createInformerPanel() Формирует верстку для панели информеров в админке.
string dateConvert() Конвертирует дату из числового представления в строковое с названием месяца.
void deactivateThisPlugin() Добавляет обработчик для ДЕактивации плагина, пользовательская функция будет срабатывать тогда когда в панели администрирования будет выключен плагин.
string declensionNum() Склонение числительных.
array defenderXss() Защищает от XSS атак полученный массив параметров.
void defenderXss_decode() Восстанавливает строку пошедшую защиту от xss атак через defenderXss()
void disableTemplate() Отключает вывод элементов шаблона. Нужен при работе с AJAX.
void enableTemplate() Включает вывод элементов шаблона. Весь контент будет выводиться внутри пользовательской темы оформления.
void get() Возвращает переменную из реестра.
void getBuffer() Возвращает буфер, который содержит весь, полученный в ходе работы движка, контент.
boolean. getConfigIni() Получает настройки для доступа к БД из конфигурационного файла config.ini.
string|boolean getHtmlContent() Получает содержание запрашиваемой HTML страницы.
object объект getInstance() Возвращает единственный экземпляр данного класса.
string getMenu() Возвращает построенную верстку меню в HTML виде.
void getOption() Возвращает значение для запрошенной опции (настройки).
mixed getParameter() Защищает входящие параметры параметры и массивов $_POST, $_GET, $_REQUEST, $_FILES, $_COOKIE исключает возможность инъекции вредоносного кода.
string getPhpContent() Получить путь до пользовательского файла, создающего контент страницы.
void getPriceCustomFunctions() Возвращает реестр записей о пользовательских функциях, обрабатывающих цену.
string getSetting() Возвращает значение опции хранящиеся в поле value таблицы настроек mg_setting.
array getSmalCart() Возвращает данные по добавленным товарам в корзину.
void init() Инициализация настроек сайта из таблицы settings в БД.
string inlineEditor() Оборачивает публичную часть в специальный div для редактирования из публичной части.
void instalMoguta() Запускает инсталлятор CMS.
boolean isDowntime() Метод возвращает значение опции временного закрытия сайта.
string isMobileDevice() Возвращает наименование мобильного устройства, с которого происходит просмотр страницы.
string layoutManager() Метод управляющий подключением верстки для писем и HTML блоков движка.
boolean|srting libExists() Функция проверяет наличие установленных библиотек PHP.
void loger() Создает текстовый файл log_Y_m_d.txt в корневой папке сайта с отладочным содержанием. Можно использовать для логирования.
void logReffererInfo() Сохраняет в куках информацию о текущем посетителе.
void mergeStaticFile() Соединяет все js и css стили из блока head в один файл.
void. meta() Устанавливает meta данные открытой страницы подключает системные файлы javascript.
string modalEditor() Вызывает модальное окно для редактирования сущности в публичной части сайта.
void newTableContent() Добавляет в реестр движка информацию, о новой таблице, в которой можно искать статический контент.
void numberDeFormat() Де-форматирует цену из строки в число. Убирает пробелы и запятые.
string numberFormat() Форматирует цену в читаемый вид.
void pageThisPlugin() Добавляет обработчик для страницы плагина.
string priceCourse() Форматирует цену в читаемый вид.
string printGui() Возвращает созданную движком HTML страницу, для вывода на экран.
$content printTemplate() Подключает каркасный файл template.php в используемом шаблоне.
array prioritet() Сортировка по полю массива ['priority'].
void redirect() Перенаправляет на другую страницу сайта.
void seoMeta() Задает meta-title, meta_keywords, meta_desc для запрошенной страницы.
void set() Создает переменную в реестре, в последствии доступна из любой точки программы.
void setDifinePathTemplate() Инициализирует значение константы PATH_SITE_TEMPLATE - путь до папки с шаблоном.
void setOption() Устанавливает значение для опции (настройки).
array stripslashesArray() Вырезает все слэши, аналог функции отключения магических кавычек.
array templateData() Собирает массив данных, доступных в последствии в файле template.php используемого шаблона.
void templateFooter() Подключает пользовательский подвал сайта из выбранного шаблона.
string textMore() Отрезает часть строки дополняя ее многоточием, вырезает шорткоды.
void titlePage() Задает meta-title: заголовок страницы отображаемый во вкладке браузера.
string translitIt() Транслитирирует написания из кириллицу в латиницу.
Описание методов и примеры их использования
public static void activateThisPlugin (string $dirPlugin, string $userFunction)
  • string $dirPlugin: директория в которой хранится плагин.
  • string $userFunction: пользовательская функции, которая сработает при включении плагина.

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

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

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

public static void addAction (string $hookName, string $userFunction, [int $countArg = 0], [int $priority = 10])
  • string $hookName: имя хука на который вешается обработчик.
  • string $userFunction: пользовательская функции, которая сработает при объявлении хука.
  • int $countArg: количество аргументов, которое ждет пользовательская функция.
  • int $priority: приоритет обработки.

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

пример 1:

  1.  //Произвольная пользовательская функция в одном из плагинов
  2.  function userfunc($color$text){
  3.    echo '<span style = "color:'.$color.'">'.$text.'</span>';
  4.  }
  5.  
  6.  // на хук с именем 'printHeader'
  7.  // вешается обработчик в виде пользовательской функция 'userPrintHeader'
  8.  // функция ждет два параметра, поэтому хук должен их задавать
  9.  MG::addAction('printHeader''userfunc'2);
  10.  
  11.  // как должен выглядеть хук
  12.  MG::createHook('printHeader''gray''text');

Варианты вызова данного метода.

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

public static void addInformer (array $data)
  • array $data: - массив с входящими параметрами для инициализации информера.

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

Примеры вызова

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

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

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

public static void addShortcode (string $hookName, string $userFunction, [int $priority = 10])
  • string $hookName: название шорткода.
  • string $userFunction: название пользовательской функции, обработчика.
  • int $priority: приоритет выполнения функции.

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

public static boolean changeRowsTable (string $tablename, int $oneId, int $twoId)
  • string $tablename: название таблицы в базе
  • int $oneId: id первой строки
  • int $twoId: id второй строки

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

Таблица обязательно должна иметь поля id и sort.

public static void clearMergeStaticFile (string $dir)
  • string $dir: - путь к папке с кэшем скриптов и картинок

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

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

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

public static void copyImagesFiles (string $imageDir, string $dirCache)
  • string $imageDir: - путь к исходной папке.
  • string $dirCache: - куда копировать.

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

public static void createActivationHook (string $folderName)
  • string $folderName: название папки содержащей плагин.

Создает хук activate_$folderName при активации заданного плагина.

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

public static void createDeactivationHook (string $folderName)
  • string $folderName: - название папки содержащей плагин.

Создает хук deactivate_$folderName при активации заданного плагина.

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

public static void createHook (string $hookName)
  • string $hookName: параметры, которые надо защитить.

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

может быть вызван несколькими способами:

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

public static void createInformerPanel ()

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

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

public static string dateConvert (string $date, [bool $year = false])
  • string $date: - дата в любом формате.
  • bool $year: - флаг для вывода года.

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

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

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

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

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

public static string declensionNum (type $number, array $titles)
  • type $number: - число
  • array $titles: - три варианта склонений

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

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

public static array defenderXss (array $arr, [bool $emulMgOff = false])
  • array $arr: параметры, которые надо защитить.
  • bool $emulMgOff: флаг для вырезания слэшей в параметрах.

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

public static void defenderXss_decode (array $string)
  • array $string: входящая строка.

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

public static void disableTemplate ()

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

public static void enableTemplate ()

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

  1.    MG::enableTemplate();

public static void get ($key $key)
  • $key $key: - имя переменной.

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

  1.    MG::get('category');
  2.    MG::get('pages');
  3.    MG::get('settings');

public static void getBuffer (string $include, [bool $html = false], [bool $variables = false])
  • string $include: путь для подключаемого файла (вид или пользовательский файл).
  • bool $html: флаг вывода html контента.
  • bool $variables: массив переменных, которые должны быть доступны в файле вида.

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

public static boolean. getConfigIni ()

Получает настройки для доступа к БД из конфигурационного файла config.ini.

При наличии в config.ini директив, создает одноименные константы, доступные далее в любом месте кода движка. Если файл config.ini, запускает процесс инсталляции движка из папки install В этом же методе отсекается символ "/" для всех страниц сайта.

public static string|boolean getHtmlContent ()

Получает содержание запрашиваемой HTML страницы.

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

public static void getOption ($option $option, [$option $data = false])
  • $option $option: - ключ опции optionName,
  • $option $data: - флаг для полного сбора данных о записи с опцией,

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

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

  1.  1. getOption('optionName'вернет только значение;
  2.  2. getOption('optionName' trueвернет всю информацию об опции в
  3.  виде массива.
  1.  $data array(
  2.    option => 'идентификатор опции например: sitename'
  3.    value  => 'значение опции например: moguta.ru'
  4.    active => 'в будущем будет отвечать за автоподгрузку опций в кэш Y/N'
  5.    name => 'Метка для опции например: Имя сайта'
  6.    desc => 'Описание опции: Настройка задает имя для сайта'
  7.  )

public static mixed getParameter (mixed $var)
  • mixed $var: входящий параметр.

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

public static string getPhpContent ()

Получить путь до пользовательского файла, создающего контент страницы.

Файл должен находиться в папке mg-pages.

public void getPriceCustomFunctions (array 0)
  • array 0: массив с перечнем функций из реестра _priceCustomFunctions

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

public static string getSetting (string $option)
  • string $option: ключ соответствующий значению в поле option в таблице mg_setting.

Возвращает значение опции хранящиеся в поле value таблицы настроек mg_setting.

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

public static void init ()

Инициализация настроек сайта из таблицы settings в БД.

Записывает в реестр все настройки из таблицы mg_settings, в последствии к ним осуществляется доступ из любой точки программы без обращения к БД.

public static string inlineEditor (string $table, string $field, int $id, string $content, [ $dir = ''])
  • string $table: таблица в базе например mg_page.
  • string $field: поле в таблице, например html_content.
  • int $id: номер записи в таблице.
  • string $content: исходное содержание.

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

Необходимо задать параметры редактируемого поля в таблице БД.

public string isMobileDevice ()

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

  1.  echo MG::isMobileDevice();

public static string layoutManager (string $layout, array $data)
  • string $layout: название файла с версткой,
  • array $data: массив переменных, которые будут доступны в layout,

Метод управляющий подключением верстки для писем и HTML блоков движка.

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

  1.       <?php layout('cart')?>      // корзина
  2.       <?php layout('auth')?>      // личный кабинет
  3.       <?php layout('widget')?>    // виджеты и коды счетчиков
  4.       <?php layout('compare')?>   // информер товаров для сравнения
  5.       <?php layout('content')?>   // содержание открытой страницы
  6.       <?php layout('leftmenu')?>  // левое меню с категориями
  7.       <?php layout('topmenu')?>   // верхнее горизонтальное меню
  8.       <?php layout('contacts')?>  // контакты в шапке
  9.       <?php layout('search')?>    // форма для поиска
  10.       <?php layout('content')?>   // вывод контента сгенерированного движком

public static void loger (string $text, [string $mode = 'a+'])
  • string $text: текст лога.
  • string $mode: режим записи.

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

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

public static void logReffererInfo ()

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

с какой рекламной площадки пришел впервые, с какой рекламной площадки пришел и совершил покупку.

public static void mergeStaticFile ($head $head)
  • $head $head: - HTML содержимое тега head.

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

public static string modalEditor ( $section, string $content, string $type, string $id)
  • string $content: содержание блока.
  • string $type: тип модального окна.
  • string $id: сущность

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

public static void newTableContent (string $table,  $contentField)
  • string $table: наименование поля в таблице с контентом.

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

public static void numberDeFormat (string $str)
  • string $str: - строка с форматированной ценой.

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

public static string numberFormat (string $str, [string $type = null])
  • string $str: строковое значение цены.
  • string $type: тип вывода.

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

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

Добавляет обработчик для страницы плагина.

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

public static string priceCourse (string $price, [boolean $format = true], [boolean $useFloat = null])
  • string $price: цена.
  • boolean $format: нужно форматировать или нет.
  • boolean $useFloat: округлять до целых.

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

public static string printGui (mixed $data)
  • mixed $data: - массив с данными для вывода контента.

Возвращает созданную движком HTML страницу, для вывода на экран.

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

public static $content printTemplate ( $content)

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

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

public static void redirect (string $location, [string $redirect = ''])
  • string $location: ссылка на перенаправляемую страницу.
  • string $redirect: тип редиректа 301, 302, и т.п.

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

public static void seoMeta (string $data)
  • string $data: массив с SEO данными.

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

public static void set ($key $key, $object $object)
  • $key $key: - имя переменной.
  • $object $object: - значение переменной.

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

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

public static void setDifinePathTemplate ([$template $template = 'default'])
  • $template $template: папка с шаблоном в mg-templates/.

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

public static void setOption (array $data)
  • array $data: - может содержать значения для полей таблицы mg_setting.
    1.  $data array(
    2.    option => 'идентификатор опции например: sitename',
    3.    value  => 'значение опции например: moguta.ru',
    4.    active => 'автоподгрузка опций в кэш Y/N',
    5.    name => 'Метка для опции например: Имя сайта',
    6.    desc => 'Описание опции: Настройка задает имя для сайта'
    7.  )

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

public static array stripslashesArray (array $array)
  • array $array: массив в котором надо удалить слэши.

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

public static void templateFooter ([ $data = null])

Подключает пользовательский подвал сайта из выбранного шаблона.

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

public static string textMore (string $text, [int $length = 240])
  • string $text: входящая строка
  • int $length: количество символов

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

public static void titlePage (string $title)
  • string $title: - заголовок.

Задает meta-title: заголовок страницы отображаемый во вкладке браузера.

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

  1.  mgAddAction('mg_titlepage''userFunctionName');
Пример автоматического изменения title находится в файле functions.php дефолного шаблона.

public static string translitIt (string $str, [string $mode = 0])
  • string $str: переводимая строка.
  • string $mode: флаг для замены символа / на -.

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