Parcelle (произносится [парсель] с ударением на последний слог) — компактный язык разметки внутри CMS Meruert. Он позволяет вставлять небольшие кусочки кода, которые генерируют достаточно большие объёмы данных, уже свёрстанные нужным образом и корректно работающие: форму поиска или форму обратной связи, текущий год или список всех страниц сайта. Parcelles (читается так же, но разработчики под Meruert называют их «парсели» и склоняют на русском языке) — это те самые кусочки кода, или шорткоды, которые можно вставлять в любое место сайта: любую запись или страницу, любое место шаблона, сайдбар, футербар и т.п. Например, если написать [parcelle:search], то будет вставлена форма поиска. Если написать [parcelle:since:2011], то мы получим запись: 2011–2018. Если же написать [parcelle:posts:all-abc], то выведется список ссылок на все посты (записи) блога в алфавитном порядке.
В 7 версии Meruert система парселей сильно переработана. Те шорткоды, которые описаны в документации для шестой версии, всё так же работают.
Первая часть касается вывода простых фрагментов:
[parcelle:year] или [parcelle:y] — текущий год: 2018;
[parcelle:since:1987], или [parcelle:from:1987], или [parcelle:range:1987] — диапазон от указанного года (в данном примере 1987) до текущего: 1987–2018;
[parcelle:engine] — название CMS: Meruert 7;
[parcelle:version] — версия CMS: 7;
[parcelle:sitecopy] — знак авторских прав и название текущего сайта, оформленное как ссылка на главную страницу (испльзуется по умолчанию в подвале страниц):
© Meruert CMS;
[parcelle:currentPage], или [parcelle:currentpage], или [parcelle:current-page], или просто [parcelle:current] — полный адрес текущей страницы: http://www.meruert.com/date-2016-02/;
[parcelle:server] — адрес сервера, на котором работает данный сайт: http://www.meruert.com/;
[parcelle:lang] — код языка, который активен в системе в данный момент; имеет более специальное употребление, чем остальные шорткоды; при генерации меню может быть заменён на короткий аналог [lang]; выводит результат в виде ru;
[parcelle:today] показывает сегодняшнюю дату на нужном языке: 22 апреля 2018;
[parcelle:now] показывает текущие дату и время: 22 апреля 2018 (06:08:40).
Другая часть используется для вывода форм:
[parcelle:feedback] — форма обратной связи, позволяющая отправить письмо с сайта его владельцу;
[parcelle:search] — форма поиска, ведушая на поисковую страницу на данном сайте;
[parcelle:login], или [parcelle:login], или [parcelle:login] — форма авторизации (входа на сайт); видна только неавторизованным пользователям.
В качестве примера — результат вывода [parcelle:search]:
Наконец, две большие группы парселей связаны с автоматическим выводом содержания (то есть ссылок на материалы сайта). Если вам нужен список из пяти последних статей на сайте; или список из тэгов (тем, рубрик), вложенных в другой тэг; или список ссылок на шестнадцать случайных постов; или на все страницы, не входящие в блог; или список из блогов; или алфавитный список всех статей под определённой рубрикой — в этом случае данные шорткоды помогут решить вашу задачу. В этих шорткодах порядок следования элементов и все их части имеют большое значение (вы можете управлять также видом ссылок и дополнительными фрагментами), поэтому стоит прочитать все примеры.
Списки материалов
[parcelle:records] — список всех материалов сайта;
[parcelle:posts] или [parcelle:titles] — список всех записей в блоге;
[parcelle:pages] или [parcelle:static] — список всех страниц, не входящих в блог;
[parcelle:drafts] — черновики;
[parcelle:secret] — тайные записи;
[parcelle:faved], или [parcelle:favorite], или [parcelle:favourite] — избранные записи;
[parcelle:tag-3] — все записи под тэгом (рубрикой) №3 — разумеется, можно использовать любой номер из тех, которые доступны; номер тэга легко узнать из адресной строки или при его редактировании;
[parcelle:blog-7] — все записи из блога №7;
[parcelle:in-projects] — записи или страницы, дочерние по отношению к указанной (в данном примере projects; например, в списке будут страницы с адресами site.com/projects/print, site.com/projects/web, site.com/projects/web/sites и другие); вы можете ограничивать анализ вложенности страниц, например, так: [parcelle:in-projects^2] — в этом случае будут выводиться страницы только с двумя уровнями вложенности;
[parcelle:children] — непосредственные дочерние страницы по отношению к текущей (например, site.com/books/novels по отношению к site.com/books);
[parcelle:all-children] — дочерние страницы любого уровня вложенности по отношению к текущей (например, site.com/books/novels/recent по отношению к site.com/books).
Если заголовка у материала нет, вместо заголовка выводятся три звёздочки.
По умолчанию выводятся все записи указанного типа, без ограничения количества. Это потому, что указаны только две позиции в парселе (позиции — то, что разделено двоеточием; на первом месте всегда слово parcelle, а на втором — то, что именно нужно вывести на экран: записи, черновики, темы и т.п.). Можно ввести третью позицию, после второго двоеточия, и в этом случае можно указать, какой максимум заголовков записей будет выведен:
[parcelle:posts:5] — пять записей блога;
[parcelle:pages:10] — десять страниц;
[parcelle:drafts:all] — все черновики.
Модификатор all на третьей позиции может и отсутствовать: если не указано точное число, значит, все записи.
В содержании все заголовки по умолчанию выводятся как отдельные абзацы. Если на третьей позиции через косую черту указать другой HTML-тэг, то обрамляющим будет именно он:
[parcelle:posts:5/li] — каждый заголовок будет элементом маркированного списка.
Наконец, на этой же третьей позиции через дефис с помощью специального модификатора (d, r, u, s, abc, cba, 123, 321) можно указать, в каком порядке будут выводиться записи:
[parcelle:posts:10-d] или без модификатора [parcelle:posts:10] — 10 записей в хронологическом порядке (то есть не в обычном для блога порядке, а начиная с ранних записей);
[parcelle:posts:10-d/li] — то же самое, в виде маркированного списка;
[parcelle:posts:10-r] — 10 записей в обычном порядке для блога, от свежих к более старым;
[parcelle:posts:10-u] — 10 записей, отсортированных по дате последнего обновления материала (в этом случае видно, какие записи в последнее время редактировались и обновлялись);
[parcelle:posts:10-s] — 10 случайных записей в произвольном порядке: очень удобно, когда хочется всегда показывать непредсказуемую выборку материалов и почти не повторяться, или создать иллюзию постоянного обновления и богатства материалов блога;
[parcelle:posts:10-abc] — 10 записей по алфавиту;
[parcelle:posts:10-cba] — 10 записей против алфавита;
[parcelle:posts:10-123] — 10 записей, адреса которых отсортированных в алфавитном порядке;
[parcelle:posts:10-321] — 10 записей, адреса которых отсортированных против алфавита.
На четвёртой позиции можно поставить единицу, и в этом случае ссылки на материалы будут снабжены датами. Если оставить пустую позицию или вписать ноль, то даты не будет. Удобно, если даты важны:
[parcelle:posts:5-r:1] — 5 свежих записей с датами публикации.
Если вместо единицы поставить 2, то дата будет выделена цветом, если она сегодняшняя:
[parcelle:posts:5-r:2] — 5 свежих записей с датами публикации, из которых сегодняшяя будет выделена.
Модификатор 3 будет обозначать, что из даты нужно оставить только год; 4 — текущий год будет выделен цветом; 5 — текущий и прошлый год будут выделены разными цветами; 6 — три последних года будут выделены разными цветами.
Такая «подсветка» работает только в теме дизайна Orinoco. В остальных темах, если есть необходимость, можно в CSS указать нужный цвет для классов small-highlight, small-highlight-1 и small-highlight-2.
Все эти списки ссылок являются по своей сути навигационными меню, генерируемыми автоматически. На пятой позиции можно указать, каким образом будет выделен текущий пункт таких меню (то есть ссылка на ту страницу, на которой пользователь находится в данный момент). По умолчанию, если не указать пятую позицию, то она будет равна 1.
1 — ссылка перестаёт быть ссылкой и становится полужирным текстом;
2 — ссылка остаётся обычной ссылкой и приобретает CSS-класс selected;
3 — ссылка становится полужирной и приобретает CSS-класс selected.
Пример:
[parcelle:posts:5-r:1:3] — 5 свежих записей с датами публикации, причём текущий пункт меню со списком ссылок становится полужирным, но остаётся ссылкой.
Кроме этих пяти позиций, есть ещё так называемые опции: их можно указывать после любого количества позиций после вопросительного знака (?) до закрывающей квадратной скобки, и если опций несколько, то они разделяются амперсандом (&); если у опции есть значение, то оно записывается после знака равенства (опция=значение), например:
[parcelle:posts:all-s:1?images&tags&strong&prefix=* ] — все записи блога в случайном порядке с датами, все ссылки полужирные в любом случае, снабжены тэгами (рубриками) и изображениями, если они приложены к постам, а перед каждой ссылкой будет находиться префикс в виде звёздочки с пробелом.
Значения опций:
prefix или pref — префикс, тот текст, что предшествует ссылке (опция со значением);
images или preview — ссылка на запись снабжена иллюстрациями, приложенными к ней;
topic или tags — ссылка на запись снабжена тэгами (темами, рубриками) из этой записи;
bold или strong — ссылки набраны полужирным начертанием;
italic или oblique — ссылки набраны курсивным начертанием.
Списки тэгов и блогов
Списки рубрик, или тем, или тэгов, гораздо проще по своей структуре, но они всё равно могут использоваться как удобное средство навигации. Названия всегда сортируются по алфавиту, и в данный момент этот порядок нельзя изменить.
Здесь может быть четыре позиции, причём третья и четвёртая отведены обрамляющим HTML-тэгам, а первую занимает сама команда parcelle.
[parcelle:tags] выведет список из тэгов как набор абзацев со ссылками;
[parcelle:tags:div] выведет список из тэгов как набор блоков DIV со ссылками (если есть третья позиция, то в ней указано название HTML-тэга, обрамляющего пункт меню);
[parcelle:tags:ol:li] выведет список из тэгов как нумерованный список из пунктов со ссылками (третья позиция занята названием обрамляющего HTML-тэга для всего блока, а четвёртая — HTML-тэга для каждого пункта).
Каждая тема и каждый блог внутри Meruert могут иметь свой URL (фрагмент адреса). Для того, чтобы заменить стандартные tag-1, tag-2, blog-8 на осмысленные названия, нажимайте ссылки редактирования наверху страницы каждой темы. Если часть ваших записей посвящена фотографиям, то снабдите их темой записи «фото», а когда запись сохранится, нажмите на ссылку «фото» и найдите ссылку «ред.» над всеми записями данной темы; нажмите её и в поле редактирования альтернативного адреса (Альтернативный URL) введите, например, текст photo. В этом случае невыразительный адрес site.com/tag-1 для данной темы сменится на «говорящий» site.com/photo. Более того, адреса для тем можно делать иерархически вложенными: photo/portrait для портретных фотографий, photo/still-life для фотонатюрмортов, photo/portrait/monochrome для монохромных фотопортретов, и т.п. Это может пригодится для формирования динамических списков с названиями тем.
[parcelle:blogs] — это список всех блогов в системе;
[parcelle:tags] — это список всех тем записей;
[parcelle:intag-ABC] — это список всех тем записей, вложенных в тему с адресом ABC (то есть если у вас есть темы с адресами ABC/DEF, ABC/XYZ, то именно они будут выведены в списке ссылок);
[parcelle:withtag-ABC] — это список всех тем записей, вложенных в тему с адресом ABC, и ссылка на саму тему с адресом ABC.
Разумеется, в двух последних примерах ABC и прочие алфавитные наборы букв вы замените на ваши осмысленные URL для тем записей.
В следующих версиях Meruert система Parcelle будет улучшаться и дополняться.