Создание сайта по шагам

В данном разделе мы рассмотрим то, какие шаги нужно сделать чтобы создать свой собственный сайт на Micron.
Начнём мы с простого статичного сайта с формой обратной связи, без базы данных.

Распакуем движок

Для начала скопируем движок папку где будет находиться наш сайт. Я использую Denwer с настройками по умолчанию, поэтому для нового сайта я создаю папку super-site.test в директории C:/WebServers/home/. Внутри мы создаём папку www, куда и распаковываем файлы движка.

Далее нужно распаковать содержимое файла unzipme.zip в корень директории сайта. Затем файл unzipme.zip можно удалить.

В итоге получится следующая структура:

Для папок upl и tmp нужно поставить разрешение на чтение и запись, но в Windows часто движок работает и без этих разрешений.

Теперь, если перезапустить денвер и ввести в адресной строке браузера адрес нашего сайта super-site.test/, то мы увидим приветственное окно.
Сайт работает, но он абсолютно пуст.

Настройка движка

Следующие действия не обязательны для простого статичного сайта. Если вы делаете свой первый сайт на Micron, то рекомендуем пока пропустить этот раздел.
Откройте файл core/config/main.php и отредактируйте следующие параметры:

Сделаем дизайн и главный шаблон сайта

Для примера мы не будем изобретать велосипед и выполним дизайн используя известный фреймворк Bootstrap 3.
Тем более у нас есть готовый компонент, который добавляет этот фреймворк на сайт: http://zmicron.org/components/bootstrap3

Просто распакуйте компонент в корень сайта так, чтобы папки i и tpl компонента, совпали с такими же папками сайта.
В итоге в движке появятся новые файлы, в том числе tpl/dev/bootstrap3.php
Но есть одна тонкость - в движке изначально присутствует дефолтный CSS Reset, который конфлифктует с CSS Reset из Bootstrap 3, поэтому из файла tpl/main_tpl.php нужно удалить строку:

            
<link rel="stylesheet" type="text/css" href="<?= Root('i/css/main.css')?>" />        
Так же и сам файл i/css/main.css тоже можно удалить.
На всякий случай очистите папку tmp/auto_merge_css_js.

Далее поработаем над главным шаблоном сайта. Главный шаблон это та часть дизайна сайта, которая не меняется при переходе между страницами. К ней относится главное меню, хедер, футер и т.п. Главное шаблон по умолчанию задаётся в файле tpl/main_tpl.php.

Начнем с того, что добавим главное меню. Для этого сначала в файл tpl/main_tpl.php добавим строку (в принципе не важно в какое место)

            
<?php IncludeCom("dev/bootstrap3")?>        
Далее внутрь тега body добавляем наше меню:
            
<nav class="navbar navbar-default navbar-inverse" role="navigation">
    <div class="container">
        <ul class="nav navbar-nav">
            <li><a href="<?= SiteRoot()?>">Главная</a></li>
            <li><a href="<?= SiteRoot("about_company")?>">О компании</a></li>
            <li><a href="<?= SiteRoot("products")?>">Продукция</a></li>
            <li><a href="<?= SiteRoot("contacts")?>">Контакты</a></li>
        </ul>
    </div>
</nav>

        
Вызов SiteRoot() без параметров эквивалентен вызову SiteRoot("home"), где home - это главная страница сайта по умолчанию.
Всего же у нас будут 4 страницы - home, about_company, products, contacts.

Но у нас на сайте не хватает логотипа фирмы. Плюс хотелось бы разместить наверху контактный телефон. Добавим внутрь тега body (до меню) следующий код:

            
    <div class="header">
        <div class="container">
            <a class="logo" href="<?= SiteRoot()?>">
                Company Logo
            </a>
            <a class="phone" href="tel:+7931123456789">
                +7 (931) 123-456-789
            </a>
        </div>
    </div>        
Для задания стилей мы создадим файл i/css/styles.css. В нем пропишем следующий код:
            
    .header
    {
        .container
        {
            position: relative;
            height: 90px;

            .logo
            {
                position: absolute;
                left: 2px;
                top: 10px;

                font-size: 52px;
                color: #428bca;
            }
            .phone
            {
                position: absolute;
                right: 2px;
                top: 40px;

                font-size: 22px;
                color: #333;
            }
        }
    }        
И не забудем указать его в теге head:
            
    <link rel="stylesheet" type="text/css" href="<?= Root('i/css/styles.css')?>" />        
Напоследок обрамил вывод контента в div с классом container:
            
    <div class="container">
        <?= $content?>
    </div>        
Это нужно, чтобы контент сайта занимал не всю ширину страницы, а имел границы (1170 пикселей по умолчанию).

В итоге после наших правок файл tpl/main_tpl.php будет выглядеть следующим образом:

            
<!DOCTYPE html>
<html lang="<?= LANG?>" dir="ltr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=<?= $g_config['charset']?>" />
        <title><?= $title?></title>
        <?php if (!empty($description)):?><meta name="description" content="<?= $description?>" /><?php endif?>
        <?php if (!empty($keyWords)):?><meta name="keywords" content="<?= $keyWords?>" /><?php endif?>

        <link rel="apple-touch-icon-precomposed" sizes="144x144" href="<?= Root('i/image/touch_icon/favicon_144x144.png')?>" />
        <link rel="apple-touch-icon-precomposed" sizes="114x114" href="<?= Root('i/image/touch_icon/favicon_114x114.png')?>" />
        <link rel="apple-touch-icon-precomposed" sizes="72x72" href="<?= Root('i/image/touch_icon/favicon_72x72.png')?>" />
        <link rel="apple-touch-icon-precomposed" href="<?= Root('i/image/touch_icon/favicon_57x57.png')?>" />

        <link rel="icon" href="<?= Root('favicon.ico')?>" type="image/x-icon" />
        <link rel="shortcut icon" href="<?= Root('favicon.ico')?>" type="image/x-icon" />

        <meta http-equiv="cleartype" content="on">

        <link rel="stylesheet" type="text/css" href="<?= Root('i/css/normalize.css')?>" />
        <link rel="stylesheet" type="text/css" href="<?= Root('i/css/dev/funcs.css')?>" />
        <!-- extraPacker -->
        <?php IncludeCom('dev/jquery')?>
        <?php IncludeCom("dev/bootstrap3")?>
        <link rel="stylesheet" type="text/css" href="<?= Root('i/css/styles.css')?>" />
    </head>
    <body>
        <div class="header">
            <div class="container">
                <a class="logo" href="<?= SiteRoot()?>">
                    Company Logo
                </a>
                <a class="phone" href="tel:+7931123456789">
                    +7 (931) 123-456-789
                </a>
            </div>
        </div>
        <nav class="navbar navbar-default navbar-inverse" role="navigation">
            <div class="container">
                <ul class="nav navbar-nav">
                    <li><a href="<?= SiteRoot()?>">Главная</a></li>
                    <li><a href="<?= SiteRoot("about_company")?>">О компании</a></li>
                    <li><a href="<?= SiteRoot("products")?>">Продукция</a></li>
                    <li><a href="<?= SiteRoot("contacts")?>">Контакты</a></li>
                </ul>
            </div>
        </nav>

        <div class="container">
            <?= $content?>
        </div>
    </body>
</html>        
Наш примитивный главный шаблон готов.

Добавим на сайт страницы

Главный шаблон готов, но когда мы переходим по меню мы получаем ошибку 404.
Нам нужно добавить на сайт соответствующие страницы. Это будут обычные статичные страницы с текстом: home, about_company, products, contacts
Соответственно нам нужно создать для них файлы: tpl/home.php, tpl/about_company.php, tpl/products.php, tpl/contacts.php

Файл tpl/home.php у нас в движке уже есть. Просто удалим его содержимое и вставим следующий текст:

            
    <h1>Добро пожаловать на сайт нашей компании!</h1>
    <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur condimentum egestas nisl, eget venenatis felis faucibus luctus. Phasellus convallis, quam et dignissim venenatis, lectus neque accumsan sem, ac feugiat dui felis eu urna. Nunc varius venenatis orci ac semper. Morbi viverra nisl vitae auctor pretium. Quisque lacinia facilisis dui, venenatis auctor odio interdum eu. Suspendisse sed magna vitae dolor euismod elementum. Sed laoreet felis nec purus dignissim tempus. Nunc accumsan congue nunc quis interdum. Etiam viverra arcu mauris, sed lobortis augue tempor pulvinar. Proin placerat nunc nec placerat accumsan. Suspendisse mattis sem eros, et euismod urna eleifend sed. Morbi feugiat orci a velit hendrerit facilisis. Sed porttitor sodales tortor, sit amet molestie odio lobortis non. Suspendisse nibh tellus, luctus gravida fringilla a, rhoncus id diam.
    </p>
    <p>
        Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
    </p>        

В созданный файл tpl/about_company.php вставим следующий текст:

            
    <h1>О нашей компании</h1>
    <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur condimentum egestas nisl, eget venenatis felis faucibus luctus. Phasellus convallis, quam et dignissim venenatis, lectus neque accumsan sem, ac feugiat dui felis eu urna. Nunc varius venenatis orci ac semper. Morbi viverra nisl vitae auctor pretium. Quisque lacinia facilisis dui, venenatis auctor odio interdum eu. Suspendisse sed magna vitae dolor euismod elementum. Sed laoreet felis nec purus dignissim tempus. Nunc accumsan congue nunc quis interdum. Etiam viverra arcu mauris, sed lobortis augue tempor pulvinar. Proin placerat nunc nec placerat accumsan. Suspendisse mattis sem eros, et euismod urna eleifend sed. Morbi feugiat orci a velit hendrerit facilisis. Sed porttitor sodales tortor, sit amet molestie odio lobortis non. Suspendisse nibh tellus, luctus gravida fringilla a, rhoncus id diam.
    </p>
    <p>
        Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
    </p>        

В созданный файл tpl/products.php вставим следующий текст:

            
    <h1>Наша компания производит различную продукцию</h1>
    <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur condimentum egestas nisl, eget venenatis felis faucibus luctus. Phasellus convallis, quam et dignissim venenatis, lectus neque accumsan sem, ac feugiat dui felis eu urna. Nunc varius venenatis orci ac semper. Morbi viverra nisl vitae auctor pretium. Quisque lacinia facilisis dui, venenatis auctor odio interdum eu. Suspendisse sed magna vitae dolor euismod elementum. Sed laoreet felis nec purus dignissim tempus. Nunc accumsan congue nunc quis interdum. Etiam viverra arcu mauris, sed lobortis augue tempor pulvinar. Proin placerat nunc nec placerat accumsan. Suspendisse mattis sem eros, et euismod urna eleifend sed. Morbi feugiat orci a velit hendrerit facilisis. Sed porttitor sodales tortor, sit amet molestie odio lobortis non. Suspendisse nibh tellus, luctus gravida fringilla a, rhoncus id diam.
    </p>
    <p>
        Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
    </p>        

В созданный файл tpl/contacts.php вставим следующий текст:

            
    <h1>Наши контакты</h1>
    <address>
        <strong>Company 2000, Inc.</strong><br>
        1234 Folsom Ave, Suite 2000<br>
        Moscow, Pushkina-Kolotushkina 123456<br>
        <abbr title="Phone">Телефон:</abbr> +7 (931) 123-456-789
    </address>
    <address>
        <strong>Email</strong><br>
        <a href="mailto:#">first.last@example.com</a>
    </address>
    <p>
        Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
    </p>        
Теперь на сайте есть необходимые страницы.

Добавим форму обратной связи для страницы "Контакты"

Начнем с того, что установим компонент отправки писем средствами phpMailer. Можно было бы обойтись обычной функцией mail, но phpMailer значительно лучше и функциональнее. Установка, как обычно, заключается в распаковке компонента в корень сайта, так чтобы папки core и lib компонента совпали с папками core и lib в корне сайта. После установки у нас появится функция SendMail().

Теперь добавим саму форму на страницу tpl/contacts.php:

            
    <h3>Отправить сообщение / Задать вопрос</h3>
    <form role="form" action="<?= GetCurUrl()?>#contact-form" method="post" id="contact-form">
        <?= @$msg?>
        <input type="hidden" name="is_send" value="1" />
        <div class="form-group">
            <label class="control-label" for="i-email">Ваш e-mail</label>
            <input type="text" class="form-control" id="i-email" name="email" value="<?= Post("email")?>">
        </div>
        <div class="form-group">
            <label class="control-label" for="i-text">Текст вопроса/сообщения</label>
            <textarea id="i-text" class="form-control" rows="3" name="text"><?= Post("text")?></textarea>
        </div>
        <button type="submit" class="btn btn-primary btn-default">
            <span class="glyphicon glyphicon-envelope"></span>
            Отправить сообщение
        </button>
    </form>        

Затем создадим файл src/contacts.php со следующим содержимым:

            
<?php

    $emailTo = "my-email-for-site-messages@gmail.com"; // Куда будут отправлять сообщения с сайта
    $msg     = "";

    if (Post("is_send"))
    {
        $errs  = array();
        $email = trim(Post("email"));
        $text  = trim(Post("text"));
         
        if (!IsValidEmail($email))
        {
            $errs[] = "Некорректный e-mail";
        }
        if (empty($text))
        {
            $errs[] = "Пустой текст сообщения";
        }

        if (empty($errs))
        {
            $lines = array();
            $lines[] = "Email пользователя: {$email}";
            $lines[] = "Текст сообщения: {$text}";

            $ret = SendMail($emailTo, "Сообщение с сайта компании", implode("<br>", $lines));

            if ($ret != 1)
            {
                $errs[] = "Неизвестная ошибка";
            }
        }

        if (empty($errs))
        {
            $msg = MsgOk("Сообщение успешно отправлено");
            $_POST = array(); // Если не очистить ввод, то на форме останется e-mail и текст сообщения
        }
        else
        {
            $msg = MsgErr(implode("<br>", $errs));
        }
    }
?>        
Код не требует пояснений. Замечу лишь, что IsValidEmail это стандартная функция движка (как PhoneFilter, IsValidPhone, IsValidUrl), находящаяся в файле core/func/validation.php.

Как видите и в tpl и в src файле вместо прямого обращения к $_POST мы используем функцию Post(). Рекомендуем всегда использовать её, потому что она отчищает ввод от HTML и XSS, то есть делает ваш код безопаснее.

Ещё одна важная деталь. Если вы будете тестеривать форму на локальной машине, то сообщения не будут приходит на e-mail. Вместо этого по умолчанию они будут записываться в файл tmp/emails_test.txt.

Поздравляю! Минимальный сайт готов и работает. Но для удобной работы на нём не хватает ещё многих вещей.

Вынесем текста в языковые файлы

Сейчас весь текст у нас находится прямо в src и tpl файлах. Если вы не планируете менять текста через админку или добавлять поддержку многоязычности, то можете оставить и так как есть.
В противном случае все текста нужно поместить в языковые файлы. Это можно сделать двумя способами - простым и сложным. Рассмотрим сначала сложный способ) Сделаем это на примере файла src/contacts.php.

Так как мы задали русский языком нашего сайта по умолчанию, то создадим файл lang/ru/contacts.php. Если бы язык по умолчанию был английский, то путь был бы lang/en/contacts.php.
В этом файле нам нужно заполнить массив $g_lang. В итоге у нас получится следующее содержимое файла lang/ru/contacts.php:

            
<?php

    $g_lang['title_notg'] = 'Наши контакты';

    $g_lang['addr1'] = '<strong>Company 2000, Inc.</strong><br>
                        1234 Folsom Ave, Suite 2000<br>
                        Moscow, Pushkina-Kolotushkina 123456<br>
                        <abbr title="Phone">Телефон:</abbr> +7 (931) 123-456-789';

    $g_lang['addr2'] = '<strong>Email</strong><br>
                        <a href="mailto:#">first.last@example.com</a>';

    $g_lang['text'] = '<p>
                           Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
                       </p>';

    $g_lang['subtitle_notg'] = 'Отправить сообщение / Задать вопрос';

    $g_lang['email_notg'] = 'Ваш e-mail';
    $g_lang['text_notg']  = 'Текст вопроса/сообщения';
    $g_lang['send_notg']  = 'Отправить сообщение';
?>        
В свою очередь файл tpl/contacts.php будет переписан следующим образом:
        
            
    <h1><?= $g_lang['title_notg']?></h1>
    <address>
        <?= $g_lang['addr1']?>
    </address>
    <address>
        <?= $g_lang['addr2']?>
    </address>
    <?= $g_lang['text']?>

    <h3><?= $g_lang['subtitle_notg']?></h3>
    <form role="form" action="<?= GetCurUrl()?>#contact-form" method="post" id="contact-form">
        <?= @$msg?>
        <input type="hidden" name="is_send" value="1" />
        <div class="form-group">
            <label class="control-label" for="i-email"><?= $g_lang['email_notg']?></label>
            <input type="text" class="form-control" id="i-email" name="email" value="<?= Post("email")?>">
        </div>
        <div class="form-group">
            <label class="control-label" for="i-text"><?= $g_lang['text_notg']?></label>
            <textarea id="i-text" class="form-control" rows="3" name="text"><?= Post("text")?></textarea>
        </div>
        <button type="submit" class="btn btn-primary btn-default">
            <span class="glyphicon glyphicon-envelope"></span>
            <?= $g_lang['send_notg']?>
        </button>
    </form>        
Стало не так красиво и удобно, правда?) Но это неизбежно. Просто старайтесь выносить текста в языковые файлы ближе к концу работы над проектом.
И не забываем что кодировка во всех файлах движка должна быть utf-8.

Пара деталей: Как вы заметили у некоторых переменных фигурирует постфикс _notg. В принципе он не нужен, но он поможет в дальнейшем, когда мы подключим компонент WYSIWYG редактора. С помощью такой пометки он определит что для редактирования этих переменных никогда не нужно показыать WYSIWYG редактор, а достаточно простого <textarea>. В данном случае <textarea> лучше потому, что он гарантированно не добавит лишних тегов, например <p> и наш заголовок не превратится из <h1>Наши контакты</h1> в <h1><p>Наши контакты</p></h1>.

Возможно у вас возникнет вопрос - а почему бы не помещать в одну языковую переменную целиком всю страницу? Причины две:
1) Не все теги можно корректно отредактировать в WYSIWYG редакторе
2) Редактировать страницу будет человек мало понимающий в тегах и потому <h1> может легко превратиться в <p> с большим font-size.
Поэтому некоторые вещи (например заголовки), лучше отделить и упростить.

Так как мы исходим из того, что WYSIWYG редактор поддерживают не очень большой набор тегов (а в админке для редактирования текста мы будем использовать именно его). Потому мы не стали помещать <address> в одну языковую переменную вместе с другим контентом.

Добавим штрих - заменим общащение к $g_lang на функцию L(). После этого код станет более читаемым. Файл tpl/contacts.php примет следующий вид:

            
    <h1><?= L('title_notg')?></h1>
    <address>
        <?= L('addr1')?>
    </address>
    <address>
        <?= L('addr2')?>
    </address>
    <?= L('text')?>

    <h3><?= L('subtitle_notg')?></h3>
    <form role="form" action="<?= GetCurUrl()?>#contact-form" method="post" id="contact-form">
        <?= @$msg?>
        <input type="hidden" name="is_send" value="1" />
        <div class="form-group">
            <label class="control-label" for="i-email"><?= L('email_notg')?></label>
            <input type="text" class="form-control" id="i-email" name="email" value="<?= Post("email")?>">
        </div>
        <div class="form-group">
            <label class="control-label" for="i-text"><?= L('text_notg')?></label>
            <textarea id="i-text" class="form-control" rows="3" name="text"><?= Post("text")?></textarea>
        </div>
        <button type="submit" class="btn btn-primary btn-default">
            <span class="glyphicon glyphicon-envelope"></span>
            <?= L('send_notg')?>
        </button>
    </form>        

Последняя деталь - мы совершенно забыли про файл src/contacts.php в котором есть зависимый от языка текст.
Поэтому перепишем его следующим образом:

            
<?php

    $emailTo = "my-email-for-site-messages@gmail.com"; // Куда будут отправлять сообщения с сайта
    $msg     = "";

    if (Post("is_send"))
    {
        $errs  = array();
        $email = trim(Post("email"));
        $text  = trim(Post("text"));
         
        if (!IsValidEmail($email))
        {
            $errs[] = L("err_incorrect_email_notg");
        }
        if (empty($text))
        {
            $errs[] = L("err_empty_text_notg");
        }

        if (empty($errs))
        {
            $lines = array();
            $lines[] = L("user_email_notg") . ": {$email}";
            $lines[] = L("user_text_notg") . ": {$text}";

            $ret = SendMail($emailTo, L("email_title_notg"), implode("<br>", $lines));

            if ($ret != 1)
            {
                $errs[] = L("err_unknown_notg");
            }
        }

        if (empty($errs))
        {
            $msg = MsgOk(L("email_success_notg"));
            $_POST = array(); // Если не очистить ввод, то на форме останется e-mail и текст сообщения
        }
        else
        {
            $msg = MsgErr(implode("<br>", $errs));
        }
    }
?>        
В свою очередь содержимое файла lang/ru/contacts.php станет следующим:
            
<?php

    $g_lang['title_notg'] = 'Наши контакты';

    $g_lang['addr1'] = '<strong>Company 2000, Inc.</strong><br>
                        1234 Folsom Ave, Suite 2000<br>
                        Moscow, Pushkina-Kolotushkina 123456<br>
                        <abbr title="Phone">Телефон:</abbr> +7 (931) 123-456-789';
    $g_lang['addr2'] = '<strong>Email</strong><br>
                        <a href="mailto:#">first.last@example.com</a>';
    $g_lang['text']  = '<p>
                            Cras commodo eros nec elit blandit, vitae dapibus neque sagittis. Fusce adipiscing hendrerit tortor et tempus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sed sapien pretium, feugiat felis sit amet, dignissim augue. Etiam vitae libero magna. Etiam et iaculis libero. Aliquam et ultrices arcu, at volutpat augue.
                        </p>';

    $g_lang['subtitle_notg'] = 'Отправить сообщение / Задать вопрос';

    $g_lang['email_notg'] = 'Ваш e-mail';
    $g_lang['text_notg']  = 'Текст вопроса/сообщения';
    $g_lang['send_notg']  = 'Отправить сообщение';

    $g_lang['err_incorrect_email_notg'] = "Некорректный e-mail";
    $g_lang['err_empty_text_notg']      = "Пустой текст сообщения";
    $g_lang['err_unknown_notg']         = "Неизвестная ошибка";

    $g_lang['user_email_notg']    = "Email пользователя";
    $g_lang['user_text_notg']     = "Текст сообщения";            
    $g_lang['email_title_notg']   = "Сообщение с сайта компании"; 
    $g_lang['email_success_notg'] = "Сообщение успешно отправлено";
?>        
Скачать исходный код

Простой способ вынесения текста в языковой файл

Простой способ заключается в том, чтобы использовать компонент. Раздел в стадии наполнения.

Установка админки и WYSIWYG редактора

Раздел в стадии наполнения.