Быстрый старт
Что бы начать писать на микроне как можно скорее нужно усвоить ряд простых вещей:
-
Папка 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 для отправки письма с сайта, с оформлением