Основные элементы
Функции, переменные и константы

Знание задекларированных элементов сайта, может весьма существенно упростить Вашу работу с Микрон.

Константы

  • BASEPATH - Базовый путь (path) к сайту. Пример: /home/sites/mysite.com/www/
    Константа создаётся автоматически.
  • DEBUG_MODE - Режим работы. Если true - то разработка (Debug-режим), если false - то сервер (Production-режим). Константа задаётся в файле /core/config/main.php.
  • SITE_IN_DIR - Определяется, если сайт запускается из папки (как подсайт). То есть, когда сайт находится не в корне домена, а в подпапке, например http://example.com/subsites/cabinet/. В этом случае SITE_IN_DIR будет "subsites/cabinet". Константа задаётся в файле /core/config/main.php.
  • DOMAIN_COOKIE - Задаёт домен для установки cookie. Эту константу желательно передавать соответствующим аргументом при вызове функции setcookie(). Константа задаётся в файле /core/config/main.php.
  • DEF_LANG - Задаёт язык сайта по умолчанию. Настраивается в файле /core/config/main.php. Изначально имеет значение "en". Константа задаётся в файле /core/config/main.php.
  • LANG - Текущая языковая версия сайта, которую запросил пользователь.
    Константа создается автоматически в зависимости от языка выбранного на сайте. Например, если пользователь открывает страницу http://example.com/ru/about_site, то значит он открывает страницу about_site на языке ru, и константа LANG будет равна "ru".
    Если же он открывает страницу http://example.com/about_site, то LANG будет равна DEF_LANG.
  • SITE_ROOT - Задаёт корень сайта для внутренних ссылок. Константу лучше не использовать напрямую.
    По умолчанию она равна "/" и используется в функциях SiteRoot() и Root(), которые возвращают путь к страницам и ресурсам сайта, соответственно.
    По умолчанию они возвращают путь от корня сайта, без указания имени домена, например: /about_us или /i/image/logo.png.
    Чтобы функции SiteRoot() и Root() начали возвращать полный путь к страницам, то в этой константе нужно задать полный путь к сайту, например: "http://example.com/".
    После этого в нашем примере мы получим http://example.com/about_us и http://example.com/i/image/logo.png. Константа задаётся в файле /core/config/main.php.
    Изменение корня сайта может понадобится, к примеру, в том случае, когда мы используем SiteRoot() во время формирования текста письма, содержащего ссылки на страницы нашего сайта.
  • M_HTML_FILTER_OFF - Флаг, который передаётся в функции Get() и Post() для запрета на отчистку входных данных от HTML. Пример: Получить переменную $_GET['name'], без очистки от HTML вставок:
    $name = Get('name', 'Anonym', M_HTML_FILTER_OFF);
  • M_XSS_FILTER_OFF - Флаг, который передаётся в функции Get() и Post() для запрета на отчистку входных данных от XSS. Пример: Получить переменную $_GET['name'], без очистки от XSS и HTML вставок:

    $name = Get('name', 'Anonym', M_XSS_FILTER_OFF | M_HTML_FILTER_OFF);
  • M_DELETE_PARAM - Передаётся в функцию GetCurUrl(), которая возвращает текущий URL. Константа позволяет искольчить параметр из URL, если тот в нём присутствует. Пример: Наш текущий URL-адрес /articles?category=root&page=1&per_page=12
    Следующий вызов вернет нам адрес /articles?category=root&per_page=12
    $urlFirstPage = GetCurUrl('page=' . M_DELETE_PARAM); Следующий вызов вернет нам адрес /articles?category=root&per_page=12&hide_old=1
    $urlFirstPage = GetCurUrl('page=' . M_DELETE_PARAM . '&hide_old=1');

Глобальные переменные

  • g_lang - Массив языковых переменных.
  • g_config - Конфигурационный массив сайта.
  • g_title/g_description/g_keywords - Текущий заголовок/описание/ключевые слова страницы.
  • g_arrLangs - Массив языков сайта.
  • g_databases - Определяется, если есть подключения к БД в core/config/db.php.

Функции

  • int IncludeCom (string componentName[, array componentParams])

    Самая важная функция движка. Она подключает компонент по его имени. По сути функция делает последовательные вызовы include для lang/src/tpl файлов компонента.
    В массиве componetParams передаются переменные для работы компонента. Например, если componentParams равен array('a' => 1, 'b' => 2), то до подключения его src файла будут созданны две переменные $a = 1 и $b = 2.
    Так же стоит отметить, что $componentName может содержать URI параметры.
    Например, при вызове IncludeCom('login&x=1&y=2'), до подключения src файла будут созданны две переменные $_GET['x'] = 1 и $_GET['y'] = 2.

    Пример: Если упростить, то вызов IncludeCom('example'), выполнит следующие действия:
    include BASEPATH . 'lang/en/example.php'; // язык по умолчанию
    include BASEPATH . 'lang/ru/example.php'; // текущий язык
    include BASEPATH . 'src/example.php'; // контроллер
    include BASEPATH . 'tpl/example.php'; // шаблон
  • void ExitCom (void)

    Останавливаем дальнейшую работу компонента.

    Важно помнить, что функция не прерывает работу компонента немедленно, а только останавливаем дальнейшую загрузку файлов этого компонента. То есть, если вы вызове её в src файле, то src файл выполнится до конца, а вот tpl файл уже не будет подключён.
  • string GetQuery (void)

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

    Пример: Пользователь запрос www.example.com/news?page=1 тогда GetQuery() вернёт news.
  • string Root (string uri)

    Преобразует переданный URI в полноценный URL адрес, без учёта языка. Рекомендуется использовать для создания ссылок на файлы ресурсов (image/js/css).

    Пример: $imgLogoUrl = Root('i/image/logo.png'); // Если SITE_IN_DIR равен '', то вернет - "/i/image/logo.png"
  • string SiteRoot (string uri)

    Преобразует переданный URI в полноценный URL адрес, с учёта текущего языка. Рекомендуется использовать для формирования адресов страниц.

    Пример: $contactsPage = SiteRoot('contacts'); // Если DEF_LANG равен "en" и SITE_IN_DIR равен '', то для ru версии вернет - "/ru/contacts", а для en версии - "/contacts".
    Пример с параметрами: $contactsPage = SiteRoot('contacts&a=1&b=2'); // Если DEF_LANG равен "en" и SITE_IN_DIR равен '', то для ru версии вернет - "/ru/contacts?a=1&b=2", а для en версии - "/contacts?a=1&b=2".
  • variant Get (string parNameInGet[, varian defValue][, int secureFlags])

    Возвращает значение переменной из массива $_GET. При этом если такого параметра не будет вернёт defValue или NULL. В secureFlags можно передать флаги M_HTML_FILTER_OFF и M_XSS_FILTER_OFF.

  • variant Post (string parNameInPost[, varian defValue][, int secureFlags])

    Возвращает значение переменной из массива $_POST. При этом если такого параметра не будет вернёт defValue или NULL. В secureFlags можно передать флаги M_HTML_FILTER_OFF и M_XSS_FILTER_OFF.

  • string GetCurUrl ([string params])

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

    Примеры:
    Пусть текущий адрес www.example.com/news?id=1001&type=full, тогда:
    $url1 = GetCurUrl('id=1002'); // Замена параметра: www.example.com/news?id=1002&type=full
    $url2 = GetCurUrl('style=dark'); // Добавление параметра: www.example.com/news?id=1001&type=full&style=dark
    $url3 = GetCurUrl('type=' . M_DELETE_PARAM); // Удаление параметра: www.example.com/news?id=1001
    $url4 = GetCurUrl('style=dark&type=' . M_DELETE_PARAM); // Комбинированный режим: www.example.com/news?id=1001&style=dark
  • void ToLog (string $msg[, string $path])

    Записывает сообщение в стандартный лог файл если не передан параметр $path.

    Адрес к данному лог-файлу устанавливается в конфиг-файле /core/config/debug.php.
  • void Xmp (variant $a)

    Распечатывает переменную / массив / объект на экран, вместе с выводом html тегов и переносами строк.

  • void VarDump (variant $a)

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

  • string Msg (string $message)

    Выводит переданный текст в стандартной рамке.

  • string MsgOk (string $message)

    Выводит переданный текст в рамке успешного сообщения (зелёная).

  • string MsgErr (string $message)

    Выводит переданный текст в рамке для сообщений об ошибках (красная).

  • bool IsValidEmail (string $email)

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

  • string PhoneFilter (string $phone)

    Оставляет в переданном телефонном номере только цифры и знак '+'.

    Удобно для использования с тегом <a>, как в следуюещм примере: <a href="tel:<?= PhoneFilter($phone)?>"><?= $phone?></a>
  • bool IsValidPhone (string $phone)

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

  • bool IsValidUrl (string $url)

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

Css функции-хелперы (функции LessCss)

  • .m-border-radius (@r: 5px)

    Задать border-radius для скругления уголков у блока, по умолчанию радиус скругления 5px.

    Примеры: .m-border-radius(3px); .m-border-radius(3px 3px 0 0);
  • .m-inset-shadow (@color: #DDD, @size: 6px, @offset_y: 1px, @offset_x: 0)

    Создаёт внутренную тень у элемента. Параметры: цвет тени, размер тени, смещение по вертикали, смещение по горизонтали

    Пример: .m-inset-shadow(#333);
  • .m-box-shadow (@color: #222, @size: 6px, @offset_y: 0, @offset_x: 0)

    Создаёт внешную тень у элемента. Параметры: цвет тени, размер тени, смещение по вертикали, смещение по горизонтали

  • .m-text-shadow (@color: #111, @offset_y: 1px, @offset_x: 0px, @blur: 0)

    Создаёт тень под текстом.

    Кстати интересный эффект 'вырезанных букв' можно создавать, если сместить тень в противоположном направлении от источника освещения.
    Примеры задания тени:
    Пример текста с css-тенью // Верхний текст
    color: #EEE;
    background: #AAA;
    .m-text-shadow (#777, 1px);

    // Нижний текст
    color: #333;
    background: #AAA;
    .m-text-shadow (#CCC, -1px);
  • .m-gradient (@from, @to, @k: 0.5)

    Градиентный фон

    Если браузер не поддерживает градиент через css, то произойдёт заливка промежуточным цветом посчитанным по формуле @k * @from + (1.0 - @k) * @to, где @k задаёт силу смешивания цветов. Пример: .m-gradient(#000, #FFF); // Заливка серым градиентом
  • .m-opacity (@val)

    Задаёт прозрачность объекта.

    Пример: .m-opacity(0.5); // На половину прозрачный
  • .m-animate (@property, @time: 200ms, @func: linear)

    Делает изменение css св-ва планым.

    Пример если для "a" написать: .m-animate(color); // То изменение цвета ссылки будет происходить плавно