Основные элементы
Функции, переменные и константы
Знание задекларированных элементов сайта, может весьма существенно упростить Вашу работу с Микрон.
Константы
-
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 файлов компонента.
Пример: Если упростить, то вызов IncludeCom('example'), выполнит следующие действия:
В массиве 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.
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)
Создаёт тень под текстом.
Кстати интересный эффект 'вырезанных букв' можно создавать, если сместить тень в противоположном направлении от источника освещения.
Примеры задания тени: // Верхний текст
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); // То изменение цвета ссылки будет происходить плавно