Общие теги шаблона MODX

На этой странице перечислены наиболее часто используемые теги MODX Revolution в помощь любому, кто конвертирует макеты HTML/CSS в шаблоны MODX. Их часто называют «тегами» или «заполнителями» (а иногда и «переменными шаблона»), поэтому мы упоминаем эти термины здесь как помощь в поиске, хотя с технической точки зрения они не являются заполнителями или переменными шаблона: это теги MODX. Да, это может сбить с толку новичка, поэтому просто помните, что существуют разные виды этих тегов, каждый со своим назначением и названием. Заполнители задаются в коде и отображаются с тегами заполнителей. Переменные шаблона — это дополнительные поля содержимого ресурса, созданные пользователем. Их можно рассматривать как настраиваемые поля. Ни заполнители, ни переменные шаблона не устанавливаются ядром MODX заранее.

Теги поля содержимого ресурса по умолчанию

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

ЯрлыкОписаниеПример использования
[[*id]]Идентификатор ресурса страницы (устанавливается MODX при создании страницы.Часто используется в сочетании с синтаксисом ссылки, например <a href="[[~[[*id]]]]">Bookmark this page!</a>
[[*pagetitle]]Название страницы.<title>[[*pagetitle]]</title>
[[*longtitle]]Длинное название страницы<h1>[[*longtitle]]</h1>
[[*alias]]Асевдоним страницы.Используется для создания URL-адреса страницы.
[[*description]]Страница Описание<meta name="description" content="[[*description]]"/>
[[*introtext]]Поле «Вводный текст» (также известное как сводка).Часто используется Snippets для обобщения постов, например<div id="summary">[[*introtext]]</div>
[[*parent]]ID родительской страницы (если есть). Устанавливается MODX при создании страницы. Может быть изменен пользователем.Часто используется в сочетании с синтаксисом ссылки, например<a href="[[~[[*parent]]]]">Up to parent page</a>
[[*menutitle]]Заголовок, используемый, когда страница появляется в меню.Чаще всего используется сниппетами, такими как Wayfinder или pdoMenu, при динамическом построении меню .
[[*content]]Содержание страницы.<body>[[*content]]</body>

Другие общие теги

Эти теги представляют системные настройки, которые можно редактировать в меню «Система» -> «Настройки системы» .

ЯрлыкОписаниеПример использования
[[++site_url]]Содержит URL вашего сайта, например http://www.yoursite.com/Во многих CMS, которые полагаются на перезапись Apache, обычной практикой является включение базового тега в ваш HTML-заголовок: <base href="[[++site_url]]" />
[[++site_name]]Название сайта`

Источник: https://docs.modx.com/current/en/building-sites/tag-syntax/common

Как сгенерировать UUID в Drupal 8?

Чтобы сгенерировать UUID самостоятельно, понадобится сервис uuid:

$uuid = \Drupal::service('uuid');
$uuid_to_validate = $uuid->generate();
$uuid->isValid($uuid_to_validate);

Чтобы сгенерировать uuid с помощью drush:

sudo drush php-eval "echo \Drupal::service('uuid')->generate();"

Fat-Free Framework

Fat-Free Framework — это микро-фреймворк с открытым исходным кодом, распространяемый под Стандартной общественной лицензией GNU и размещенный на GitHub и SourceForge. Программное обеспечение стремится объединить полный набор функций с легкой базой кода, при этом его легко изучать, использовать и расширять.

Ссылка: https://fatfreeframework.com/

Метод гаммирования на PHP

Гамми́рование, или Шифр XOR, — метод симметричного шифрования, заключающийся в «наложении» последовательности, состоящей из случайных чисел, на открытый текст. Последовательность случайных чисел называется гамма-последовательностью и используется для зашифровывания и расшифровывания данных.

function gamma_encryption($str, $passw = '') {
   $salt = 'jEJerBV3xg';
   $len = strlen($str);
   $gamma = '';
   $n = $len > 100 ? 8 : 2;
   while (strlen($gamma) < $len) {
      $gamma .= substr(pack('H*', sha1($passw . $gamma . $salt)), 0, $n);
   }
   return $str ^ $gamma;
}

Как определить первую и последнюю итерацию в цикле foreach?

Вопрос

Вопрос прост. Есть цикл foreach в коде:

foreach ($array as $item) {
    //code
}

В этом цикле необходимо по-разному реагировать, когда мы находимся в первой или последней итерации.

Как это сделать?

Ответ

Вы можете использовать счетчик:

$i = 0;
$len = count($array);
foreach ($array as $item) {
    if ($i === 0) {
        // Первая итерация
    } else if ($i === $len - 1) {
        // Последняя итерация
    }
    // ...
    $i++;
}