Быстрый старт
Что бы начать писать на микроне как можно скорее нужно усвоить ряд простых вещей:
-
Папка src - Здесь хранятся php-коды для страниц сайта
-
Папка tpl - Здесь хранятся html шаблоны страниц сайта
-
Папка i - Папка ресурсов сайта
Т.е. в папках i/css - лежат Css-ки сайта, i/js - JavaScript-ы сайта, i/image - Картинки используемые на сайте -
Файл tpl/main_template.php - Это главный шаблон сайта, в его середине грузятся запрашиваемые страницы
-
index.php - Файл распределитель, всегда запускается первым каждый раз подключая правильные файлы страницы (src + tpl) после чего выводит сформированный html в main_teplate.php
В упрощенном виде схема работы Микрон выглядит следующим образом:
Если .htaccess не активен (отсутствует), то запрос юзера должен происходить по ссылке www.example.com/?q=test
Начало работы
Если у Вас простой сайт с текстами да картинками, все что вам нужно это:
- Скачать архив с движком и распаковать его на свой сервер
- Установить права для записи (0777) на папку tmp
- Вписать Ваш главный шаблон в tpl/main_template.php и вместе где будет идти вывод серединки страницы, написать:
<?= $content?>
- Создавать нужный контент в tpl/имя_страницы.php, а так же размещать код к этой странице в src/имя_страницы.php (если код конечно нужен вообще)
Пример страницы на микроне:
Пусть нам нужно сделать страницу "Написать письмо с сайта" на нашем сайта www.example.com, адрес на который мы хотим получать письма будет any-mail@gmail.com
Вызывать эту страницу хотим по адресу www.example.com/send_mail
Создадим файл обработчик: src/send_mail.php
<?php
// Здесь будет записано сообщение над формой об ошибках или успешности отправки
$msg = '';
// Нажато отправить
if (Post('is_send_mail'))
{
// Получаем данные через безопасные ф-ую Post
$email = Post('email');
$letter = Post('letter');
// Проверяем правильность введённых данных
$errs = array();
if ( ! IsValidEmail($email))
{
$errs[] = 'Неправильный email адрес';
}
if (empty($letter))
{
$errs[] = 'Письмо не может быть пустым';
}
// Если есть ошибки то покажем их в сообщении
if (count($errs))
{
$msg = MsgErr(implode('<br>', $errs));
}
// Если нет то покажем сообщение об успешности и отправим письмо
else
{
$emailText = "Письмо от:{$email}" . PHP_EOL . "Текст письма:{$letter}";
$isSend = mail('any-mail@gmail.com', 'Письмо из раздела "написать письмо" с сайта www.example.com', $emailText);
$msg = $isSend ? MsgOk('Письмо успешно отправлено') : MsgErr('Произошла внутреняя ошибка, извините');
}
}
?>
Далее создадим html странички: tpl/send_mail.php
<head>
<link rel="stylesheet" type="text/css" href="<?= Root('i/css/dev/std_form.css')?>" />
<link rel="stylesheet" type="text/css" href="<?= Root('i/css/send_mail.css')?>" />
</head>
<h1>Отправка письма с сайта</h1>
<p>Форма отправки письма с сайта</p>
<form action="<?= GetCurUrl()?>" method="post" class="std-form send-mail">
<?= $msg?>
<input type="hidden" name="is_send_mail" value="1">
<label>
<span>Ваш email для ответа:</span>
<input type="text" name="email" value="" autocomplete="on">
</label>
<label>
<span>Текст сообщения:</span>
<textarea name="letter"></textarea>
</label>
<input type="submit" value="Отправить письмо" class="button">
</form>
Хотел бы обратить внимание на action в форме, я указал его ф-ей GetCurUrl() - которая возвращает текущий адрес как в URL, тем самым яво-первых: не привязываюсь к конкретному имени страницы
во-вторых: если эту страницу встроить как компонент в другую страницу, например contacts то при клике по кнопке submit-а, я останусь на сранице contacts (ведь GetCurUrl вернёт её) страница contacts опять таки включит send_mail и значит код send_mail-а отработает как надо, тем самым я и на нужной странице остнусь и обратоку правильно произведу по отправке письма
Как видите я включил 2 css-ки в tpl-файл, std_form.css - для стандартного оформления формы на сайте и send_mail.css - для дополнительного оформления именно этой страницы
Покажу так же оформление этих css
Файл: i/css/dev/std_form.css
.std-form
{
label
{
display: block;
margin: 0 0 10px 0;
span
{
display: block;
font-size: 13px;
}
}
.center
{
text-align: center;
}
}
Файл: i/css/send_mail.css
.send-mail
{
margin: 5px 0;
input, textarea
{
width: 99%
}
input.button
{
width: auto !important;
border: 1px solid #960000;
.m-gradient(#ff0000, #990000);
text-align: center;
color: white;
.m-text-shadow(#222);
.m-inset-shadow(#990000, 10px);
display: block;
margin: 20px auto;
&:hover, &:active
{
.m-inset-shadow(#222);
}
}
}
Обратите внимание, что css я написал при помощи LessCss, что упростило его предав более чёткую иерархию элементов и позволило мне использовать ф-ии css-3 без кучи префиксов (.m-text-shadow(), .m-gradient() ...) эти ф-ии описаны в /i/css/dev/funcs.css
Теперь у нас создана страница send_mail для отправки письма с сайта, с оформлением