Документация к 6 версии

Meruert — очень лёгкая, быстрая и лояльная к ресурсам CMS для ведения блога или сайта другого типа. Система однопользовательская. Записи, страницы, черновики, комментарии, рейтинги, постраничная навигация, темы (рубрики), автоматическое формирование меню, администрирование, файловый менеджер, RSS, темы дизайна (14 в комплекте), гибкое изменение шаблона вёрстки, возможность подключения плагинов, возможность ведения полностью закрытого блога, тизеры к записям, редактирование Title и Meta-тэгов, приложенные файлы, поиск по записям, отложенные записи, многоязычный интерфейс (12 языков), возможности фреймворка, включаемые фрагменты, обработка медиаматериалов.

Техподдержка

Системные требования

Установка

Обновление с предыдущих версий

Аварийный режим работы

Meruert изнутри

Административный режим

Настройки

Адреса страниц

Дизайн и вёрстка

Меню

Ведение блога

Темы (рубрики) записей

Комментарии

Рейтинги записей

Сайт без блога

Языки

Уровни приватности

Просмотр изображений

Визуальный редактор

Работа с файлами

Резервирование и восстановление данных

Поисковая оптимизация (SEO)

Шорткоды (автоматическое создание кода)

Рандомизация

Возможности фальсификации и реконфигурация

Редактируемые фрагменты

Tiles

Работа без шаблона

Плагины и динамические страницы

Встроенные функции

Свои функции

Автозагрузка

Страница 404

Работа с фреймворком

Вопросы безопасности

Прочие особенности

Краткая история Meruert

О названии

Документация актуальна для самого свежего релиза системы.


Системные требования

Сервер: желательно Apache, но будет работать и на lighttpd или nginx. Язык PHP: желательно версии 5 (любой), но будет работать и на 4.3 и выше. Библиотека GD. Желательно: mod_rewrite и возможность редактировать файл .htaccess. Настройки сервера должны позволять перезаписывать файлы (файлам и папкам можно выставить права 755). База данных: не требуется. Используемая кодировка: UTF-8.

наверх


Установка

Скачайте свежую версию Meruert и распакуйте архив Meruert-6.zip в корневую или нужную директорию вашего сайта. Наберите адрес вашего сайта в адресной строке браузера и нажмите Enter. Если все технические требования соблюдены, то система попросит вас выбрать язык (его можно будет поменять в любой момент, как и другие настройки), а затем заполнить поля: название сайта, e-mail (на случай, если вы забудете пароль, и для уведомлений о новых комментариях) и пароль. После чего можно будет начинать работать.

Meruert можно устанавливать не только в корневую папку сайта, но и в любую вложенную (например, /blog/) — система самостоятельно определит вложенность и будет генерировать корректные адреса.

наверх


Обновление с предыдущих версий

Если вы обновляете систему с пятой (или более ранних) версии до шестой, то следуйте рекомендациям:

  • обновите файлы index.php и .htaccess в корне сайта; в папке Meruert загрузите папки smiles, flags и media, а также замените папки js и langs внутри Meruert;
  • обязательно удалите папку Meruert/themes/main, а также папки blue, olive, green и silver там же;
  • если вы используете собственный шаблон дизайна, то обратите внимание на коренные отличия в секции HTML-шаблона отдельной записи: эту секцию нужно обновить, иначе сайт будет работать некорректно;
  • в любом случае, если в текущем шаблоне у вас есть файл template.php (то есть он сгенерировался отдельно, а не наследует вёрстку из основного шаблона), то этот файл стоит удалить, сохранив оттуда всё то, что вы вносили вручную;
  • для кода статистики появилось отдельное поле по ссылке в подвале страницы;
  • в папку Meruert/themes загрузите обновлённую папку common и новые темы дизайна линейки Professionnel.

наверх


Аварийный режим работы

Meruert спроектирована таким образом, что для корректного старта работы достаточно не всего пакета со страницы загрузок, а просто файла index.php — при первом запуске он создаст необходимые файлы и директории и применит тему дизайна по умолчанию, однако интерфейс будет только на английском языке. В остальном работа системы не будет отличаться от нормального режима: при удалении части файлов Meruert восстанавливает их. Строго говоря, абсолютно необходимыми файлами во время функционирования сайта являются только index.php, который заключает в себе работоспособную систему и генерирует недостающие файлы, и Meruert/data.php, в котором хранятся настройки и содержимое ваших записей и страниц.

наверх


Meruert изнутри

Основу CMS Meruert составляет файл index.php, в котором записана вся выполняющаяся функциональность, поэтому модифицировать этот файл нельзя: во-первых, это затрудняет обновления системы, во-вторых — после модификации разработчик системы не может давать гарантии в её работоспособности. Программная логика в системе полностью отделена от хранимого содержимого и настроек, а также от внешнего представления (дизайна и вёрстки).

Кроме этого, в корневой директории сайта хранятся файлы .htaccess (вопросы безопасности и настройки красивых адресов страниц), sitemap.xml (обновляемый системой файл, содержащий карту сайта для поисковых систем), robots.txt (указывающий на карту сайта и запрещающий к индексированию папку Meruert) и favicon.ico (значок адресной строки и закладок сайта; его можно безболезненно заменить на свой со своей символикой — требуется .ICO-файл размером 16 на 16 пикселей).

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

Наконец, в папке Meruert хранятся файлы data.php с настройками сайта и всем содержимым всех записей и страниц сайта и ratings.php с рейтингами страниц (содержимое этих двух файлов полностью генерируется системой, хотя при достаточном знании системы вы можете менять его и вручную) и несколько вложенных папок:

  • /Meruert/comments/ — в папке хранятся комментарии посетителей сайта и ваши ответы на них; при резервировании системы копирование этой папки желательно;
  • /Meruert/files/ — папка создаётся системой; в неё загружаются файлы, присоединяемые к записям и страницам; при резервировании сайта эту папку можно скачивать целиком;
  • /Meruert/flags/ — иконки флажков, которые являются переключателями для языков и обычно располагающиеся в боковой колонке, если включить их в настройках; если удалить изображения флажков, то ссылки на языки останутся текстовыми;
  • /Meruert/js/ — папка со скриптами визуального редактора записей и просмотровика картинок; если удалить содержимое этой папки, то при увеличении изображения к записям просто будут открываться в новом окне, а при создании и редактировании записей для текста будет обычное окно без кнопок форматирования;
  • /Meruert/langs/ — словари, или языковые файлы, построенные по принципу «ключ = значение»; если этих файлов не будет, интерфейс системы будет англоязычным;
  • /Meruert/media/ — тут хранится flash-плейер для проигрывания аудио- и видеороликов, которые вы загружаете к записям и страницам; если его удалить, то пользователи увидят ссылки на файлы роликов;
  • /Meruert/smiles/ — gif-избражения смайлов; картинки можно заменить на свои с теми же именами; если картинок смайлов не будет, смайлы останутся в текстовом виде, а в обычном режиме будут заменяться на картинки из этой папки;
  • /Meruert/special/ — папка для динамических страниц (плагинов), если вы их решите использовать;
  • /Meruert/tiles/ — папка для включаемых динамических фрагментов, если вы их решите использовать: см. ниже раздел о Tiles;
  • /Meruert/themes/ — темы дизайна: названия вложенных в неё папок соответствуют названиям тем дизайна, которые можно выбрать в настройках;
  • /Meruert/themes/orinoco/ — тема дизайна по умолчанию; в ней хранится стилевой файл (style.css) и файл шаблонов вёрстки (template.php); если их удалить, система восстановит их автоматически; если в другом шаблоне отсутствует один из этих файлов, то содержимое файлов будет наследоваться из Orinoco без копирования; если вы вносите изменения в тему дизайна, то они сохраняются в папке соответствующей темы;
  • /Meruert/themes/common/ — папка, в которой хранятся файлы шрифтов, а также сохраняется автоматически генерируемый файл стилей для печати (print.css);
  • кроме этого, вы можете создать любые другие вложенные в папку Meruert папки и файлы для прямого доступа к ним через браузер.

Изначально Meruert планировалась как система для небольших блогов и сайтов-визиток; однако многие пользователи хранят на сайтах на основе Meruert довольно большие тексты, и из-за особенности архитектуры системы это иногда создаёт избыточные нагрузки на сервер. Билд 6.009 устранил эту проблему: при достижении определённого порога система сама разделяет тексты и основное хранилище для настроек и постов. При этом бэкап всех текстов и настроек сайта прост: один щелчок по ссылке data.php в файловом менеджере в папке Meruert (движок сам соберёт в файл недостающие фрагменты текстов).

наверх


Административный режим

В настройках можно скрыть ссылку на Управление сайтом (по умолчанию она находится в самом верхнем, административном меню), но при этом вы всегда можете войти на сайт как администратор: для этого наберите после адреса вашего сайта слово enter (или ?enter, если у вас все адреса начинаются с вопросительного знака, или enter.html, если вы сменили расширения страниц в настройках на .html) и нажмите клавишу Enter; после этого введите пароль, который вы ввели при установке сайта или назначили в настройках; если вы забыли пароль, воспользуйтесь ссылкой для восстановления пароля на той же странице.

В административном режиме владелец сайта имеет возможность полного управления сайтом и видит больше ссылок: редактирование всех записей, страниц, меню, фрагментов (включая боковую колонку и подвал сайта), настройки, файловый менеджер, рейтинги, отслеживание комментариев, тайные записи и т.п.

Работает журналирование административного входа на сайт (теперь по ссылке «журнал» внизу страницы в авторизованном состоянии вы увидите, с каких IP, под какими браузерами и в какое время происходили последние административные входы на ваш сайт: если некоторые записи для вас там окажутся сюрпризами, стоит озаботиться сменой пароля как минимум).

По умолчанию после административного входа на сайт происходит переадресация на главную страницу. Однако, если в папке /Meruert/special/ будет находиться файл management.php, то в верхнем меню для администратора появится ссылка «Управление», а переадресация при входе будет происходить именно на эту страницу: предполагается, что это альтернативная страница для управления сайтом, на которой можно собрать и нужные ссылки, и статистику, и что угодно сверх этого.

Важно: если вы авторизовались на www.ваш-сайт.com, то это значит, что авторизация произошла и на ваш-сайт.com (если ваш сервер настроен так, что оба варианта равноправны); и наоборот.

наверх


Настройки

Большинство настроек понятны интуитивно. Четыре из них хранят и позволяют модифицировать те значения, что вы выбрали при установке сайта (название, e-mail, пароль и язык системы). Часть стоит прокомментировать:

  • разрешить комментарии — вы можете глобально включать и отключать комментарии, но применительно к каждой конкретной записи и странице сможете управлять исключениями: отключать комментарии к посту при глобально включенных комментариях или включать комментарии к конкретной записи при глобально отключенных;
  • комментарии будут ожидать вашей проверки — если включить этот параметр, комментарии будут ожидать вашей модерации и до вашего вмешательства не будут показываться другим пользователям, о чём комментаторы будут предупреждены;
  • Записей на страницу — количество записей на страницу в блоге, в теме, в выводе постов по датам и т.п. — нежелательно указывать слишком большое число, хоть и можно;
  • секретный блог и закрытый сайт — см. ниже про Уровни приватности;
  • скрывать ссылку на управление — для неавторизованных пользователей; в общем случае адрес страницы для административного входа на сайте — ваш-сайт/enter/;
  • скрывать ссылку на RSS — включите, если вы не хотите, чтобы для автоматических читалок новостей генерировалась RSS-лента последних записей вашего блога;
  • Альтернативная главная страница — если вы создали страницу, например, с адресом start или main, то впишите этот фрагмент адреса в данное поле, и главная страница сайта будет не блогом, а обычной страницей; блог же при этом останется на месте, и его отображение в меню и вообще показ можно запретить соответствующими настройками;
  • Расширение страниц — см. ниже про Адреса страниц.
  • не использовать редактор расширенного форматирования — если вы любите верстать HTML руками;
  • добавлять социальные кнопки — в этом случае под записями появится комплекс иконок популярных социальных сетей, где вы и ваши посетители сможете автоматизированно поделиться анонсами записей;
  • поднимать обновляемые записи — в этом случае записи в ленте блога будут сортироваться не по времени написания, а по времени их обновления: если вы внесёте правку или просто пересохраните любую из записей, она тут же поднимется наверх в ленте;
  • рейтинги записей — добавляет записям значки плюса и минуса, чтобы посетители могли выражать свои симпатии и антипатии записям; см. отдельно про Рейтинги;
  • отображать только контент на выбранном языке — в этом случае вы можете отметить галочками нужные языки, чтобы посетители могли переключать для себя язык интерфейса самостоятельно; вместе с языком интерфейса при включённом данном параметре будут выбираться и языки контента; для любой записи можно указать язык, на котором она написана, и в этом случае пользователю будут показываться только записи на том языке, который он выбрал щелчком по флажку;
  • Переключатели языков, как уже было сказано, нужны не только для переключения языка интерфейса, но и для выбора языка контента, если включён предыдущий параметр.

наверх


Адреса страниц

Meruert позволяет вам не заботиться о том, какие у страниц и записей будут адреса: вы можете просто сохранять публикации, и адрес будет звучать как ваш-сайт/post-15/ и т.п. Однако если при создании или редактировании записей вы заполните поле «Ключевая часть адреса для записи», то вы можете создавать значимые адреса, например, ваш-сайт/about/, ваш-сайт/offers/, ваш-сайт/linguistics/, ваш-сайт/my-books/ и т.п. Более того, адреса можно делать вложенными, например, ваш-сайт/my-books/fiction/ — в последнем примере в верхней части страницы автоматически создастся меню типа «хлебные крошки», ведущее на страницу уровнем выше. Ясные адреса, соответствующие контенту страницы, помогают лучше индексировать ваш сайт, да и ссылками на такие страницы делиться гораздо приятнее.

Если вы заполнили в настройках поле «Расширение страниц», например, ввели там .htm, то страницы будут заканчиваться не на косую черту, а на .htm: ваш-сайт/my-books/fiction.htm, создавая видимость статических страниц. Расширение можно использовать любое по вашей фантазии, хоть .mp3, или вообще не использовать. Кроме того, если в связи с настройками хостинга или в зависимости от типа сервера не работает модуль mod_rewrite, то адреса будут менее красивыми: ваш-сайт/?my-books/fiction — но при этом все автоматически создаваемые ссылки всё равно останутся работоспособными.

При создании и редактировании записи вы можете одним щелчком создать URL, который соответствует заголовку: для этого рядом с полем URL есть специальная функциональная ссылка.

наверх


Дизайн и вёрстка

Meruert хранит в составе движка стандартную вёрстку всех страниц, которую можно изменить. Во-первых, вы просто можете выбрать в настройках понравившуюся вам тему дизайна: в шестой версии Meruert их 14 на выбор. Во-вторых, если вы владеете языками HTML и CSS, вы можете создать собственную тему дизайна. Для этого создайте в папке Meruert/themes новую папку с именем той темы, которую вы будете применять; скопируйте туда файлы template.php и style.css из папки Meruert/themes/orinoco и включите вашу новую тему в настройках сайта (Meruert найдёт её сразу же после создания папки). Далее вы можете редактировать сами файлы напрямую через редактор для вёрстки или обычный Блокнот (обратите внимание, что в файле template.php есть отдельные секции для общей вёрстки всех страниц и для отдельной записи или страницы) или прямо через Meruert: в нижней части страниц в админ-режиме есть ссылка на редактирование текущего шаблона. Если вы удалите часть шаблона, то Meruert будет использовать недостающие фрагменты из своего резерва.

Система удобна для верстальщиков: например, классы a-mode и u-mode в body, анкоры для каждой записи, формирование блоков загружаемых картинок; любой генерируемый фрагмент снабжается классами или идентификаторами, и можно создавать самые изощрённые CSS-описания. Сайт генерирует таблицу стилей для распечатки страниц на принтере, удаляя из области видимсти всё лишнее. При случайном удалении части шаблона система всё равно корректно отображает вёрстку. У записей в ленте блога есть классы odd и even, не считая моря других классов.

наверх


Меню

При создании или редактировании записей блога и страниц в дополнительных настройках записей есть галочки, позволяющие автоматически поместить ссылку на страницу в верхнее и / или боковое меню. Таким образом, избранное содержание сайта можно создавать прямо на лету. Другое дело, что вас может не устраивать порядок, в котором выстраиваются ваши ссылки. В этом случае меню можно сформировать вручную:
ссылка = Название первой страницы
ссылка2 = Название второй страницы,

при этом ссылка и ссылка2 — это значимые части адреса страниц, без конечных и начальных слэшей, без расширения, без имени сервера. Но допустимы ссылки и на внешние ресурсы: они должны начинаться с http://. Meruert будет открывать такие ссылки в новом окне.

Самое верхнее, административное меню формируется только автоматически в зависимости от режима (административный или пользовательский) и выбранного контента (например, если есть скрытые записи, то для администратора будет показываться ссылка на все скрытые записи; если есть хоть один комментарий, то и ссылка на отслеживание комментариев появится). Из вёрстки можно удалить все типы меню при необходимости.

Вы можете дополнять административное меню, если вы используете PHP-код (в автозагрузке, Tiles или других частях системы). В системе инициализированы два пустых массива: $managementMenuU и $managementMenuA. Если заполнить первый из них ключами и значениями, то дополнительные ссылки будут видны всем; если второй из них — то только администратору системы после входа. Дополнительные будут располагаться до ссылки выхода с сайта. Например, в PHP-файлах вы можете написать: $managementMenuU['test'] = 'Test'; — в этом случае в админ-меню появится ссылка на тестовую страницу (которую нужно создать), и ссылка эта будет видна всем.

Важно, что если в меню автоматически помещена скрытая запись или страница, то и в меню она будет появляться только в административном режиме. В верхнем и боковом меню, если ставить восклицательный знак (!) перед адресом, то пункт меню становится виден только администратору сайта. Если в меню используется метка [lang], то она будет заменяться на идентификатор текущего языка системы (en, ru, fr и т.п.).

Наконец, в разделе «Редактируемые фрагменты» вы можете прочитать о том, как в любое место страницы или шаблона вставить произвольное меню по правилам Meruert.

Если вам необходима ссылка на принудительное скачивание файла: путь к файлу (без фрагмента /Meruert/ — это важно) + в самом конце адреса фрагмент ?download — по такой ссылке будет генерироваться диалоговое окно с запросом на сохранение или открытие файла. Разумеется, система в неавторизованном режиме не даст таким образом скачивать PHP-файлы.

наверх


Ведение блога

Запись — это страница, так же как и страница — это запись. Вы можете поменять этот статус одной галочкой при создании или редактировании публикации; а если вдруг не добавили страницу в меню, и она у вас потерялась, то к вашим услугам всегда есть текстовый поиск с ненавязчивым анализом морфологии (под строкой поиска в админ-режиме есть ссылки на все страницы и все записи блога).

Если вы не можете придумать название для поста, просто дважды щёлкните в поле заголовка новой записи.

Дополнительные опции записи таят в себе много полезных вещей — они по умолчанию скрыты лишь потому, что используются реже других, и незачем загромождать интерфейс сразу большим количеством элементов. Например, в скрытых опциях можно найти указание на дату: если вы выберете дату в прошлом, то запись встанет хронологически на своё место; если в будущем — она станет отложенной и опубликуется лишь в нужный момент; если вы хотите, чтобы в ленте был анонс записи, а по ссылке была бы видна запись целиком, то в скрытых опциях есть специальное поле для этого.

Если вы сомневаетесь, публиковать запись или нет, поместите её в черновики. Ссылка на черновики появится сверху при хотя бы одном сохранённом черновике. В нужный момент вы можете снять галочку и тем самым отправить запись в общедоступную ленту. И наоборот, любую запись вы можете скрыть в черновиках по каким-то причинам, а спустя какое-то время снова опубликовать. Будьте внимательны: при сохранении из черновиков в чистовики и обратно дата публикации записи меняется на свежую.

Как альтернатива есть «Тайные записи» — вы можете просто держать запись в ленте или страницу на сайте, но скрывать её от чужих глаз (как обычно, галочкой при создании или редактировании записей). Если у вас есть тайные записи, то в административном меню появляется новый пункт для них: таким образом, вы можете видеть отдельно свой секретный блог.

Есть понятие избранных записей — если какие-то посты вам особенно дороги, вы можете снабдить их соответствующей галочкой, и в меню сверху тут же появится пункт «Избранное», который загрузит только те записи, которые вы пометили.

К записям и страницам можно прикреплять файлы. Картинки, если их больше одной, будут формироваться в блоки; аудио и видео будет снабжаться плейером. При прикреплении файлов можно выбирать сразу несколько файлов, если у вас не устаревший Internet Explorer.

При загрузке страницы с записями на определённую тему показываются и все остальные темы. Навигация может производиться и по датам публикаций (даты публикаций — ссылки). Даты можно указывать и фальшивые, чтобы сортировать записи в нужном порядке.

Блог можно читать не только в антихронологическом порядке, как это привычно для всех блогов, но и от первых записей к последним: для этого достаточно нажать на нужную ссылку после нижнего поста на странице.

При редактировании страницы можно создать её копию с новым именем и адресом и, если нужно, на время положить в черновики.

наверх


Темы (рубрики) записей

Теги, или темы записей, или рубрики, присваиваются на лету при создании или редактировании записей. Все созданные темы сохраняются, и их можно просто выбрать галочками. Нет отдельной страницы редактирования тем. Если вы присвоили группе записей тему «Живопись», а потом решили, что логичнее назвать её просто «Изобразительное искусство», то изменить название темы вы можете прямо при редактировании любой из записей (рядом с набором тем появляется ссылка на редактирование тем).

Если вы хотите, чтобы адрес страницы с темой выглядел не как /tag-5/, а более осмысленно, то отредактируйте его: наверху страницы темы (как и страницы блога) есть небольшая ссылка на редактирование мета-данных: URL, заголовка, параметра Title, мета-тэгов. Кроме этого, можно ввести текст предисловия к странице.

наверх


Комментарии

Свежие комментарии собираются для владельца сайта на отдельной странице; кроме того, комментарии можно премодерировать (проверять при поступлении новых, одобрять или удалять без публикации).

Вы можете включить или отключить комментарии глобально (в Настройках), а для каждой записи запрещать комментарии. Кроме этого, вы можете запретить комментарии в настройках глобально, но включать комментарии для тех записей, где они всё-таки нужны.

Вы можете не только редактировать и удалять комментарии, но и адресно отвечать на каждый комментарий. Если комментатор указал свой адрес электронной почты, он получит уведомление об ответе.

наверх


Рейтинги записей

Записи можно «плюсовать» и «минусовать», а администратор сайта увидит рейтинги всех записей на особой странице. Рейтинги не отслеживают IP, то есть достаточно лояльны, и позволяют бесконечно повышать или понижать субъективную ценность записей для пользователей. Объективный интерес к записям лучше отслеживать в статистике, если вы установили код статистики на сайт. Рейтинги по умолчанию отключены; включить их можно в настройках.

наверх


Сайт без блога

Из Meruert вы без труда можете сделать простой сайт-визитку. Для этого создайте несколько страниц (отметив их как страницы без помещения в ленту блога) и обязательно проставьте галочки в тех полях, что помещают запись в верхнее или боковое меню. Тем самым вы создадите сразу и меню, и нужные представительские страницы (с контактными данными, рассказом о компании или о проекте и т.п.). При необходимости отключите комментарии в настройках. Не забывайте, что для того, чтобы адреса страниц выглядели красиво, следует заполнять поле «Ключевая часть адреса для записи».

Например, типичная ситуация. На сайте необходима страница «Контактные данные». Создайте новую запись, отметьте галочку «не помещать в блог: сделать простой страницей», в поле ключевой записи напишите contacts или другой адрес, который вам больше понравится, отметьте галочку, которая поместит ссылку в верхнее или боковое меню, и остальное Meruert сделает за вас.

Остаётся вопрос с главной страницей: ведь по умолчанию это страница ленты блога. Зайдите в Настройки, в поле «Альтернативная главная страница» напишите адрес предполагаемой главной страницы (например, start или main), а затем (или, наоборот, перед этим) создайте запись-страницу с аналогичным адресом (start или main в поле «Ключевая часть адреса для записи»). Получится, что эта страница будет главной страницей вашего сайта (и ссылку на неё так же автоматически можно добавить в меню). А новостную ленту будут формировать остальные записи, которыми вы будете наполнять блог. Блог вы можете переименовать в «Новости» прямо на странице блога и даже сменить ему URL.

наверх


Языки

Языком по умолчанию в Meruert является английский. В папке /Meruert/langs/ лежат файлы словарей. Файлы названы в соответствии с ISO-наименованиями языков и построены по единому принципу: обязательно должна быть строка вида «lang = Название языка», а остальные строки строятся по принципу «ключ на английском языке = перевод на данный язык». Если перевода нет, то в интерфейсе остаётся английский термин. Словаря для английского языка нет, но можно создать альтернативный словарь для любого языка, следуя аналогиям. Вы можете также сделать перевод движка на свой родной или нужный вам язык, если они отсутствуют в основной поставке. Состав словарей время от времени пополняется. Названия ключей, т.е. англоязычные термины, менять нельзя, иначе эти строки будут проигнорированы системой. Выбрать язык интерфейса можно при установке сайта или в Настройках.

Можно позволить пользователям переключать для себя язык интерфейса (это переключение будет актуально только для компьютера посетителя, а глобально применяться не будет): для этого в нижней части Настроек нужно отметить те языки, которые будут оформлены как флажки-переключатели. При щелчке на переключатель у пользователя перезагружется текущая страница с уже новым языковым оформлением.

Кроме того, можно вести сайт сразу на нескольких языках, чтобы разница в языках касалась не только интерфейса (то есть надписей типа «Сохранить», «Страницы», «Поиск» и т.п.), но и содержимого. Для этого при создании или редактировании записи нужно выбрать в выпадающем списке язык, на котором создана запись, а в Настройках включить параметр «отображать только контент на выбранном языке». Например, в блоге вы две записи отметили как записи на французском языке, а три — как записи на польском. Если вы включили параметр «отображать только контент на выбранном языке» и отметили в Настройках переключатели языков для французского и польского, то пользователь на странице блога, щёлкая по флажкам, увидит два разных блога: один на французском языке с двумя записями, второй на польском с тремя.

Можно сделать несколько языковых версий главных страниц: например, создать страницы /en/mainpage/ и /ru/mainpage/, а в настройках в качестве главной страницы указать [lang]/mainpage — сайт вас поймёт; то есть в меню и в настройках главной страницы шорткод [lang] будет расцениваться как метка текущего языка.

Щелчок по флагу будет более приоритетным выбором для системы, чем выбор языка в настройках в выпадающем списке. Обратите внимание, что если у вас включён, например, русский интерфейс, вы включили параметр «отображать только контент на выбранном языке» и создаёте запись на датском языке (точнее, отметили язык записи как датский), то при сохранении записи система автоматически активирует Cookie с датским языком и задействует нужный словарь, чтобы показать вам эту запись на датском языке на сайте.

Вы можете также создать дополнительный набор словарей для того, чтобы не трогать основной набор и обновлять систему, не беспокоясь о том, что ваши изменения перезатрутся. Для этого создайте в папке Meruert папку langs-custom и в ней создайте файл ru.php — его нужно формировать по аналогии с основным русским словарём из папки Meruert/langs. Если вы используете Meruert как фреймворк, то, вероятно, дополнительный словарь понадобится вам для терминов вашего веб-приложения. Кроме того, с помощью таких дополнительных словарей вы можете менять терминологию основного словаря. Например, напишите в файле Meruert/langs-custom/ru.php строчку
Preferences = Конфигурация
и вы увидите, что в административном меню ссылка «Настройки» стала называться «Конфигурация». Файлы словарей должны быть в кодировке UTF-8.

наверх


Уровни приватности

Сайт может быть открытым, хотя при этом вы можете скрывать отдельные записи (делать их тайными или сохранять как черновики). Кроме этого, вы можете сделать блог закрытым (в Настройках): вы можете его вести, но об этом будете знать только вы. Любую запись закрытого блога вы можете сделать открытой — как исключение (при создании или редактировании записей). Наконец, есть совсем полный уровень приватности (закрытый сайт — в Настройках): вы можете закрыть весь сайт, при этом не будут видны меню и боковая колонка (доступ к такому сайту может получить только тот, кто знает пароль).

наверх


Просмотр изображений

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

наверх


Визуальный редактор

По умолчанию используется визуальный редактор NicEdit, чтобы создание и правка текстов записей были комфортными. Визуальный редактор можно отключить в настройках.

наверх


Работа с файлами

Файловый менеджер позволяет не только загружать и удалять файлы и папки, но и сохранять php-скрипты на жёсткий диск и править все текстовые файлы (php, css, js) напрямую через Meruert (разумеется, это возможности только для администратора сайта). Для файлов указывается размер. Щелчком по размеру файла можно корректно сохранить файл на жёсткий диск. Удалять папки можно не все, а только пустые.

К записям и в файловом менеджере вы можете загружать сразу по несколько файлов в одно поле (не работает в Internet Explorer), выделяя при загрузке файлы клавишей Ctrl или просто захватывая группу файлов.

наверх


Резервирование и восстановление данных

Для резервирования данных следует зайти в файловый менеджер в административном режиме сайта, сохранить из папки Meruert на жёсткий диск файлы data.php и (если есть) ratings.php, а также целиком папки /Meruert/files/ и /Meruert/comments/ и всё, что вы загружали на сайт вручную. Этого достаточно, чтобы все сгенерированные данные были сохранены.

Соответственно, для восстановления данных из резерва стоит просто установить свежую версию Meruert, после чего загрузить все сохранённые файлы и папки на их места.

наверх


Поисковая оптимизация (SEO)

Сайт на Meruert должен хорошо индексироваться поисковыми системами. Для этого при создании Meruert было предусмотрено сразу несколько особенностей.

Код шаблонов очень чистый и ясный; он прозрачен для анализа информации поисковыми роботами. Контент (содержательная часть) группируется максимально близко к началу HTML-документа, а размечен он по принципу максимальной семантичности: заголовок обязательно заключён в тэг h1, циклически выводимые подзаголовки — в тэги h2. Парсер текстов внутри Meruert анализирует статьи, корректно разделяя на абзацы, оформленные нужными тэгами, при этом избегает прямого включения стилей и прочего верстального мусора. В итоге мы получаем размеченный текст, с которым приятно работать и верстальщику, и поисковой системе.

Мета-тэги description и keywords сейчас уже не в большом почёте у поисковых анализаторов (из-за большого количества злоупотреблений и подстановок), однако их значения всё равно принимаются во внимание. В данной CMS можно редактировать значения этих тэгов не только для сайта в целом, но и для каждой записи (страницы) в отдельности. Более того, редактировать можно не только заголовок, текст и мета-тэги, но и содержимое тэга title для каждой записи (представьте, что у вашей статьи длинное название «Типологическая реконструкция древнейших языковых состояний», а для заголовка вкладки в браузере вам хочется сократить его до «Реконструкция» — CMS Meruert позволяет и это), для блога целиком и для каждой темы (рубрики). Наконец, не лишним было бы напомнить, что для каждой записи в блоге можно задать значимый и красивый URL — вписав недостающий фрагмент адреса.

Навигационные меню вы можете создавать на лету, поставив соответствующую галочку в Дополнительных опциях записи при создании или редактировании страницы. (Кроме этого, записи можно снабжать тэгами, которые также являются ссылками.) Удобная и простая навигация обеспечивает хорошую индексацию внутренних страниц сайта. Наконец, работает запрет на индексирование пользовательских ссылок в комментариях — спамерам, которые посещают ваш сайт, не имеет смысла оставлять там записи со ссылками.

При установке Meruert автоматически генерируются robots.txt и sitemap.xml (последний обновляется автоматически по мере наполнения сайта контентом).

Как можно видеть, используются особенности, направленные только на честную оптимизацию, и всё, что вам остаётся делать для повышения рейтингов сайта — регулярно писать интересные статьи и заметки в блог.

наверх


Шорткоды (автоматическое создание кода)

В Meruert есть короткие коды (шорткоды), которые строятся по определённым правилам и называются «парсели» (parcelles).

Например, если у вас есть страница с адресом /test/, то вы можете в любом месте вставить шорткод [parcelle:in-test:5] — будут выведены 5 страниц, дочерних по отношению к странице /test/ (например, /test/test2/, /test/test3/ и т.п.).

В шорткодах можно управлять порядком вывода содержания. Например, все страницы в алфавитном порядке с датами публикации: [parcelle:pages:all-abc:1], 10 случайных страниц без дат: [parcelle:pages:10-s], 5 последних опубликованных страниц с датами: [parcelle:pages:5-r:1], все страницы в порядке опубликования без дат: [parcelle:pages], 7 страниц, дочерних по отношению к art: [parcelle:in-art:7], 10 страниц, дочерних по отношению к /art/chinese/, в случайном порядке, с датами: [parcelle:in-art/chinese:10-s:1], 12 последних записей из блога с датами: [parcelle:posts:12-r:1].

То есть фрагменты pages или static отвечают за страницы, titles или posts — за записи блога, а records — за публикации вне зависимости от типа. Фрагмент in- отвечает за дочерние страницы. Если число записей после второго двоеточия не указано или вместо него стоит all, то выводятся все записи, подпадающие под правило. Они выводятся в порядке публикации. Если написать после числа -r, то в обратном, антихронологическом (как обычно записи в блоге), если -s — то в случайном порядке, а -abc — в алфавитном.

Кроме упомянутых, есть ещё несколько шорткодов, которые позволяют формировать необходимое содержимое:

[parcelle:year] или [parcelle:y] выводят текущий год: 2017.

[parcelle:range:ГОД] или [parcelle:from:ГОД] — диапазон дат, причём если год указан текущий, то будет выведен только он, а если один из прошлых, то появится указание диапазона дат. Например, [parcelle:from:1987] выведет на экран 1987–2017. Это удобно использовать при указании авторских прав на сайтах.

[parcelle:engine] выведет полное название CMS: Meruert 7.

[parcelle:enginelink] сформирует для нижней части страницы текст с указанием CMS.

[parcelle:sitecopy] сформирует для нижней части страницы текст со ссылкой на главную и названием сайта. Этот и предыдущий шорткод вы можете видеть при редактировании нижней части страницы начиная с 5 версии Меруерта.

[parcelle:version] выведет версию Меруерта (в нашем случае — 7).

[parcelle:currentPage], или [parcelle:currentpage], или [parcelle:current-page], или просто [parcelle:current] — полный адрес текущей страницы: http://www.meruert.com/handbook/.

[parcelle:server] — полное имя сервера с указанием протокола.

[parcelle:tags] — сформированный список тем, который можно использовать на любой странице, в боковой колонке и т.п.

[parcelle:children] — выводит список вложенных страниц, если они есть. Это касается только тех страниц, у которых указана альтернативная часть адреса (например, about вместо автоматически генерируемого post-3 или contacts вместо post-17). Если данная страница имеет альтернативный адрес company, а на сайте также присутствуют company/staff, company/history и company/partnership, то заголовки всех трёх будут выведены на месте указанного шорткода (благодаря слэшу между частями адреса система будет считать эти три страницы вложенными по отношению к первой).

[parcelle:lang] — короткая метка текущего языка: ru.

[parcelle:tag-ЧИСЛО] — работает как автоматический вывод содержания, но только для темы (рубрики) с указанным номером.

[parcelle:search] выведет форму поиска по сайту.

[parcelle:auth], или [parcelle:login], или [parcelle:enter] выведет форму авторизации на сайте, если вы не авторизованы.

Шорткоды [parcelle:today] и [parcelle:now] выводят текущую дату без времени или с ним (с использованием названий месяцев на текущем языке).

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

наверх


Рандомизация

Если вы запросите страницу ваш-сайт/random/, то сайт переадресует вас на случайную страницу вашего сайта, доступную публично.

Если вы строите автоматические содержания разделов, то вы также можете использовать рандомизацию с фрагментом -s [об этом см. в разделе Шорткоды (автоматическое создание кода)], чтобы списки заголовков выводились в случайном порядке.

наверх


Возможности фальсификации и реконфигурация

Вы можете указать придуманную дату публикации, датировав запись задним числом. Или, наоборот, подготовить ряд записей впрок, отметив их датами из будущего, создавая видимость круглосуточной работы над сайтом.

Вы можете сделать вид, что страницы сайта статические, снабдив их расширением .html в настройках (или, например, .asp, или .php, или любым другим).

Вы можете максимально модифицировать шаблоны вёрстки, скрывая изначальную вёрстку и принадлежность к CMS.

Наконец, начиная с билда 6.005 появилась возможность перезаписывать некоторые системные константы. Для этого следует в корне сайта создать файл conf.php и в нём после открытого маркера PHP назначить те константы, существование которых проверяется в начале файла index.php: например, можно переименовать основную папку для файлов системы из Meruert в любую другую (изменив значение константы System); сделать так, чтобы весь контент записывался не в data.php, а в storage.php (для этого в conf.php должна быть строчка define('Db','storage'.Fxt);). Это нужно для того, чтобы максимально скрыть следы CMS.

Но применение conf.php может быть и более полезным. Например, вы можете изменить максимальную ширину и высоту загружаемых к постам изображений (по умолчанию она равна 750): для этого назначьте константы imgMaxW и imgMaxH с новыми числовыми значениями; допустимые ширину и высоту автарки в боковой колонке можно изменить константами avMaxW и avMaxH. По умолчанию ссылка на вход на сайт заканчивается на /enter/, но вы можете изменить это, например, так: define('enterURL','login'); (и входить на сайт как администратор нужно будет по адресу ваш-сайт/login/). То же самое со страницей, которая ведёт на случайную запись: константе randomURL вместо значения 'random' можно присвоить новое значение. Изменить набор социальных кнопок к постам можно, например, написав: define('socialNetworks', 'vkontakte,facebook,twitter'); — дефолтное значение константы есть в начале index.php.

наверх


Редактируемые фрагменты

В любом месте шаблона, в боковой колонке и в любой записи можно вставить кусочек кода типа [edit:test] (вместо test напишите латиницей любое слово; таких edit-фрагментов может быть любое количество: повторяющихся с одним именем, неповторяющихся — с разными), и это создаст редактируемый фрагмент, в котором можно хранить произвольный HTML-код; а в месте его вывода он будет снабжаться ссылкой «ред.» для администратора. То есть вы можете создавать повторяющиеся фрагменты в разных записях, например, для рекламы, или просто вставлять быстро редактируемые области в любом месте сайта.

Например, в некоторых постах вам необходимо публиковать одну и ту же рекламу. Напишите пост, напишите в нём фрагмент [edit:advert-1], сохраните пост; по полученной ссылке на редактирование создайте рекламную область и сохраните её. В дальнейшем вам необходимо будет лишь писать в новых постах [edit:advert-1], и это будет апеллировать к уже созданному фрагменту. А для второй рекламной области, например, можно написать [edit:advert-2]. Такие редактируемые фрагменты можно включать везде без исключения.

Есть редактируемые меню, которые вы сможете вставлять так же, как edit-фрагменты, при помощи коротких кодов: [menu:test1] или [menu:abrakadabra:p], где test1 и abrakadabra — условные наименования меню, которые вы можете придумывать сами, а p во втором примере — тэг, в который будет заключаться каждый пункт меню. После создания редактируемого меню на странице появится ссылка, по которой меню будет открыто на редактирование в обычном формате:
ссылка1 = Название ссылки 1
ссылка2 = Название ссылки 2
.

Кроме того, вы можете вставлять в разные части страниц и шаблонов произвольные фрагменты PHP-кода и редактировать их. Для этого вставьте метку [phpcode:test] (где test — произвольное название фрагмента, желательны латинские буквы и/или цифры), и у вас появится ссылка на редактирование PHP-фрагмента (не забывайте открывающую и закрывающую последовательности PHP-кода; вы можете произвольно смешивать HTML и PHP, использовать операторы echo и иные).

наверх


Tiles

В Meruert можно использовать включаемые файлы, которые могут содержать программный код и выводить его в нужном месте (например, если вам требуется ещё одно меню или динамически генерируемые фрагменты). Для их хранения создайте в папке Meruert папку tiles, а в ней храните файлы с произвольными именами, но с расширением .php. Поскольку файлы предназначены именно для вывода информации, весь вывод нужно собирать в переменную $t (Меруерт прочитает содержимое этой переменной и выведет в нужном месте). Сам же вызов этих включаемых файлов («тайлов» в терминологии Meruert) осуществляется просто: [tile:ИМЯ], где ИМЯ должно соответствовать имени файла без расширения. То есть вызов [tile:menu2] подгрузит файл /Meruert/tiles/menu2.php и выведет содержимое, записанное в переменной $t этого файла. Тайлы можно включать где угодно.

наверх


Работа без шаблона

Достаточно к адресу страницы добавить фрагмент ?ajax или ?naked (т.е. передать GET-параметр без значения), чтобы для страницы с таким адресом не использовался шаблон дизайна, а показывалось только его содержимое: это удобно для Ajax-вызовов.

наверх


Плагины и динамические страницы

В папке /Meruert/special/ можно хранить любые динамические файлы с выводом в переменную $m. Это могут быть дополнительные динамические страницы с любым функционалом, но Meruert не включает их в меню автоматически, как это можно делать с обычными записями (т.е. сделать ссылку на страницу, которая лежит в этой папке, нужно будет самостоятельно). Если у вас в /Meruert/special/ лежит файл something.php, то его вывод будет доступен по адресу ваш-сайт/something/, при этом вывод автоматически включится в используемый шаблон дизайна, как обычная страница. Если вам необходимы параметры для динамической страницы, то их можно указывать прямо в адресе через слэш, а в самом файле анализировать. Например, по адресу ваш-сайт/something/anything/else/ система будет обращаться к файлу /Meruert/special/something.php и передавать ему в переменную $param значение anything/else (уже без слэшей по бокам).

наверх


Встроенные функции

Meruert обладает довольно большим набором хорошо отлаженных функций, которые можно использовать и вне самого движка, для его динамических страниц, в тайлах и собственном фреймворке — например, библиотека форм, конвертер изображений, средства безопасности. Наиболее важные функции с указанием параметров перечислены ниже (в квадратных скобках даются необязательные параметры):

protectDangerTexts(строка, [допустимые тэги]) очищает строку от потенциально опасных символов (для вывода пользовательских комментариев и т.п.)

trimslasher(строка) обрезает слэши по краям строки

xmler(строка, тэг, значение в случае пустого результата) возвращает содержимое указанного тэга из прочитанной строки, причём тэги без угловых скобок, а в случае вложенности через слэш: tag1/tag2

upXMLer(строка, массив с ключами и значениями или строка-ключ, [значение]) обновляет (но не записывает файл) так, что значения тэгов, переданные в ключах, обновляются значениями, переданными в качестве строк — значений ключей. Можно передать или одну пару ключ-значение (второй и третий параметры), или множество пар (массивом во второй параметр)

paragrafize(строка) корректно расставляет тэги абзацев в строке

recognizeLinks(строка) распознаёт ссылки в строке и снабжает их тэгами, если нужно

setURL(строка, [GET-параметр]) из адреса страницы без имени сервера и расширения делает корректный адрес страницы

setRedirect([адрес]) переадресует на страницу, указанную в качестве параметра; без параметра на главную страницу сайта

setRedirectRef() переадресует на предыдущую страницу (откуда пришли)

createMenu(ассоциативный массив ссылок и текстов ссылок, [тэг для выбранного элемента], [разделитель], [тэг вокруг каждого элемента], [префикс идентификаторов ссылок], [общий путь для ссылок], [1, если активный пункт меню нужно оставить ссылкой]) создаёт меню из массива (единственный обязательный параметр)

filereader(имя файла, [режим текстовый/бинарный]) читает содержимое файла в строку

filewriter(имя файла, строка, [вместо / до / после содержимого], [режим текстовый/бинарный]) записывает строку в файл

viewFolder(имя папки, [что читать: по умолчанию файлы, если 'd', то папки], [сортировать, по умолчанию по алфавиту]) читает содержимое папки

validname(имя файла) исправляет имя файла так, чтобы с ним не возникло проблем

fileUpload(ДАННЫЕ, папка, [валидировать имя], [изменять имя при наличии файла с таким же именем, по умолчанию нет, просто перезаисать]) загрузка файла на сервер (под ДАННЫМИ понимается массив $_FILES['строка'])

convertImages(в папке, из файла, [новое имя], [сделать шириной], [сделать высотой], [префикс для имени файла], [качество, обычно максимальное]) преобразует изображение из заданного файла, причём способно не только изменять размеры (по обоим разрешениям или по одному заданному пропорционально) и сохранять в нужном месте под нужным именем, но и конвертировать из формата в формат

equalizer(строка) читает последовательность строк типа «ключ = значение» в массив

dateBasedCached(имя файла) снабжает имя файла суффиксом вида ?2012....., где после вопросительного знака следует слитно написанная дата последнего обновления файла, что предотвращает нежелательное кэширование браузерами, например, таблиц стилей

f_elem(строка) оборачивает элемент формы в блок

f_elem_set(лейбл, массив из элементов формы) создаёт блок с общим заглавием и несколькими элементами формы

f1(идентификатор, [страница — цель отправки], [метод, обычно POST]) генерирует начальный тэг формы

f_required(строка) помечает найденный в строке элемент формы как обязательный

f_submit([слово]) генерирует кнопку отправки формы, обычно с надписью «Сохранить»

f2([слово]) генерирует финальный тэг формы с кнопкой отправки формы

f_text(имя, [лейбл], [значение], [не редактируемое, по умолчанию редактируемое]) генерирует однострочное текстовое поле (если вместо лейбла указать массив из 2 элементов, то первый будет лейблом, а второй placeholder-подсказкой)

f_password(имя, [лейбл], [значение]) генерирует поле для пароля

f_hidden(имя, [значение]) генерирует скрытое поле

f_file([имя], [лейбл]) генерирует поле для загрузки файла

f_files([базовая часть имён полей]) генерирует набор из поля для загрузки файла и ссылки, по щелчку по которой открывается новое поле для загрузки файла (добавлять поля можно бесконечно в рамках разумного смысла)

f_textarea(имя, [лейбл], [значение]) генерирует многострочное текстовое поле (если вместо лейбла указать массив из 2 элементов, то первый будет лейблом, а второй placeholder-подсказкой)

f_check(имя, [лейбл], [отмечено ли, по умолчанию нет], [не редактируемое, по умолчанию редактируемое]) генерирует флажок (поле для галочки)

f_checkbox(имя, [лейбл], [отмечено ли, по умолчанию нет], [не редактируемое, по умолчанию редактируемое]) — полный синоним для предыдущего

f_select(имя, [лейбл], массив с ключами и строками, [выбранный ключ], [размер в строках], [возможность множественного выбора]) генерирует элемент формы — выпадающий список

f_radio(имя файла, массив с ключами и строками, [выбранный ключ]) генерирует набор из переключателей (radio buttons)

captcha([суффикс]) генерирует капчу

captcha_check([суффикс]) проверяет, верно ли введено значение в капчу, и если да, то возвращает единицу

authForm() возвращает форму авторизации

composeMail(на адрес, тема письма, текст письма) отправляет электронное письмо с сайта

generateUniCode() генерирует уникальный код (для уникальных идентификаторов записей, но можно использовать и в своих целях)

humanifyDate(дата в MySQL-формате) трансформирует полученную дату в нормальную на человеческом языке

reduceText(строка, [количество символов, по умолчанию 250]) обрезает текст до указанного количества символов, причём никогда не обрезает посреди слова, а аккуратно следует до пробела и добавляет многоточие, если нужно.

наверх


Свои функции

Вы можете положить в папку /Meruert/special/ файл functions.php и описать в нём функции, которые нужны для вашего сайта на основе Meruert. Кроме этого, любой PHP-файл с любым именем вы можете положить в папку автозагрузки (см. ниже). Если вы где-то описали функцию, например, yourFunction(), которая что-то выводит или выполняет какие-то действия, возвращая результат, то в любом месте (в записях, боковой колонке, в шаблоне и т.п.) вы можете вызвать её при помощи шорткода [func:yourFunction]. В такие вызовы функций можно передавать и параметры: если есть функция testAction($abc), то вызвать в HTML-среде её можно как [func:testAction:аргумент].

наверх


Автозагрузка

Если в папку Meruert положить папку autoload, а в неё файл с произвольным именем, то этот файл будет автоматически найден и выполнен до того, как будет загружена страница; поэтому там можно использовать дополнительные программные библиотеки, в зависимости от типа страницы выполнять рассылки или иные действия, которые вам теоретически могут понадобиться. Единственное ограничение — файлы выполняются в алфавитном порядке, т.е. сначала будет загружен /Meruert/autoload/end.php, а лишь потом /Meruert/autoload/start.php, и об этом следует помнить (или нумеровать файлы). В скриптах автозагрузки можно хранить что угодно, вплоть до сценариев соединения с базой данных, любых библиотек и т.п.

наверх


Страница 404

Если не найдена страница, ссылка битая, то можно подгрузить собственную страницу ошибки. Для этого создайте файл Meruert/special/404.php и сформируйте его содержимое на PHP как обычную динамическую страницу (то есть с выводом в переменную $m). В противном случае Meruert просто сгенерирует собственное сообщение об ошибке. В обоих случаях при отсутствии страницы или функциональности для неё Meruert будет отдавать корректный ответ HTTP/1.1 404 Not Found.

наверх


Работа с фреймворком

На основе Meruert можно построить и собственный фреймворк, используя систему как микроядро с основным функционалом. Для этого поместите в папку Meruert папку framework, а в ней создайте (по своему усмотрению) файлы run.php и routes.php. Первый из них предназначен для абстрактной логики вашего фреймворка, а второй для определения своих правил роутинга; при этом, если в файле routes.php определены новые правила запросов страниц, которые могут конфликтовать с тем, что есть в составе CMS Meruert, то рекомендуется определять константу Routed (т.е. define('Routed', TRUE);), и родные правила роутинга Меруерта будут отключены для данного запроса.

наверх


Вопросы безопасности

Данные, сохраняемые при помощи Meruert, максимально закрыты от прямого прочтения. Тексты комментариев, оставляемых пользователями, обрабатываются. Пароль может быть отправлен только на тот e-mail, что указан лично вами. Безопасность данных гарантируется, если система используется как есть, без модификаций.

наверх


Прочие особенности

Концептуальная вещь — отсутствие сообщений об ошибках. То есть их вообще нет в Meruert. По умолчанию подразумевается, что пользователь всё делает правильно. Если он что-то не заполнил, значит, просто не захотел. Возможности максимально вариативны (вы даже можете опубликовать в блоге пустую запись, только нужно ли это вам?). Сообщений о выполнении действий вообще нет: если всё хорошо, то результат и так виден; если что-то не получилось (что сложно представить), то и результата не будет.

Когда мы пытаемся открыть дверь не тем ключом, мы сразу понимаем, что что-то не так, и берём другой ключ. Когда мы заполняем бланк неправильно, мы его комкаем и выкидываем, берём бумагу снова и заполняем второй раз — это изначально настраивает на правильное заполнение строк (особенно если бланк большой и подробный, например, договор с банком). Если мы отправляем бумажное письмо без заголовка, конверт не сообщает нам, что мы что-то делаем неправильно. Meruert создаёт аналогию реальной жизни в отношении исключительных ситуаций.

наверх


Краткая история Meruert

3 ноября 2011 года началось проектирование системы и были написаны первые строки кода. А уже 18 декабря вышла первая версия Meruert. Она носила кодовое имя «Lulu» (на суахили — «жемчужина»).

Вторая версия, с поддержкой многоязычности, вышла всего через 10 дней, 28 декабря. Третья версия, более гибкая и настраиваемая, — 15 января 2012. Четвёртая (новые шаблоны дизайна, новые настройки, улучшенный файловый менеджер) — 12 февраля 2012. Затем политика именования версий изменилась, и пятая версия (кодовое имя — «Julia») вышла лишь 2 августа 2012, спустя полгода: новые языки, улучшение безопасности и гибкости системы, новшества для специалистов по SEO, автоматизации во всех частях системы, улучшения в навигации. 27 августа было выпущено минорное обновление, 5.1, с некоторыми улучшениями по запросам пользователей, а работа над шестой версией продолжалась едва ли не год: планы к шестой версии начали собираться ещё до выпуска пятой. Уже пятую версию можно было использовать как фреймворк для сложных сайтов.

Шестая, актуальная версия системы, вышла 3 июля 2013 года (кодовое имя — «Gauhar»), но мелкие улучшения (некритичные обновления) продолжают вноситься и после релиза, и каждый раз сборка для загрузки обновляется. Шестую версию отличает от пятой в совокупности около 100 нововведений, улучшений и исправлений, касающихся многоязычности, уровней приватности и безопасности данных, рейтингов, детальных настроек разных частей системы, редактируемых фрагментов и динамических страниц.

наверх


О названии

Слово «Meruert» («меруерт» или «меруэрт») на казахском и некоторых других тюркских языках означает «жемчуг, жемчужина». В основе ассоциативного названия лежит аналогия с компактным микроядром данного семейства CMS, которое полностью управляет системой и, словно в раковине, находится под слоем файлов библиотек, реестров, данных и шаблонов дизайна.

наверх