Быстрый старт

Что бы начать писать на микроне как можно скорее нужно усвоить ряд простых вещей:

  • Папка 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

Что бы получить красивые URL-ы вызова нужно чтобы в корне был .htaccess файл (который появится после распаковки unzipme.zip в корень сайта)

В упрощенном виде схема работы Микрон выглядит следующим образом:

Если .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 для отправки письма с сайта, с оформлением