<
  • Главная<
Не найдено

Drupal 8 – создаем кастомный токен

Опубликовано: 11.10.2017

видео Drupal 8 – создаем кастомный токен

Урок 11 часть 3 создание блога на Друпал.mp4

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



Как всегда, все действия проводим в кастомном модуле, в моем случае он будет называться ex_token .

Файл ex_token.info.yml

name: Example token type: module description: Пример создания кастомного токена в Drupal 8 core: 8.x dependencies: - token

Далее, нам необходимо реализовать hook_token_info() . Данным хуком мы описываем создание нового токена, а именно тип токена и его возможные варианты.


Урок 11 часть 2 создание блога на Друпал.mp4

Файл ex_token.module

<?php /** * Implements hook_token_info(). */ function ex_token_token_info() { return array( # Определили тип токена 'types' => array( 'ex_token' => array( 'name' => t('Ex token'), 'description' => t('Example custom token'), ), ), # Добавили возможные варианты для типа токена 'tokens' => array( 'ex_token' => array( 'title' => array( 'name' => t('Title'), 'description' => t('Ex custom token'), ), ), ), ); }

Как вы можете видеть, мы описали новый тип токена под именем Ex token , который содержит единственный вариант – title .


3.6 - Поиск и метаданные. ЧПУ для друпал.

Хочу заметить, что все токены строятся по принципу [тип токена:вариант токена] , в нашем случае наш токен будет выглядеть как – [ex_token:title]

Теперь нам необходимо определить действия для каждого из вариантов нашего типа токена – hook_tokens() .

Файл ex_token.module

<?php /** * Implements hook_token_info(). */ function ex_token_token_info() { return array( # Определили тип токена 'types' => array( 'ex_token' => array( 'name' => t('Ex token'), 'description' => t('Example custom token'), ), ), # Добавили возможные варианты для типа токена 'tokens' => array( 'ex_token' => array( 'title' => array( 'name' => t('Title'), 'description' => t('Ex custom token'), ), ), ), ); } /** * Implements hook_tokens(). */ function ex_token_tokens($type, $tokens, array $data, array $options, \Drupal\Core\Render\BubbleableMetadata $bubbleable_metadata) { $replacements = array(); if ($type == 'ex_token') { foreach ($tokens as $name => $original) { # Описываем действия для вариантов типа токена switch ($name) { case 'title': $replacements[$original] = 'custom-example-token'; break; } } } return $replacements; }

Где:



rss