xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Пример замены токенов на текст

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

Пример работы с токенами:

/**
 * Реализация hook_menu()
 */
function token_example_menu() {
  $items['token-test'] = array(
    'title' => 'Token test',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('token_example_form'),
    'access callback' => TRUE,
  );
  return $items;
}
 
/**
 * Форма для проверки работы токенов
 */
function token_example_form() {
  $form['text'] = array(
    '#type' => 'textfield',
    '#title' => 'Тест с токенами',
    '#required' => true,
  );
  if (module_exists('token')) {
    $form['token_tree'] = array(
      '#type' => 'fieldset',
      '#title' => 'Подстановочные шаблоны',
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#description' => theme('token_tree', array('token_types' => array('node'))),
    );
  }
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Поехали!',
  );
  return $form;
}
 
/**
 * Сабмит формы token_example_form
 */
function token_example_form_submit($form, $form_state) {
    $text = token_replace($form_state['values']['text'], array('user' => $GLOBALS['user']));
    drupal_set_message($text);
}

Скриншот получившейся формы:

Форма

Результат отправки формы:

Результат отправки формы

Подробности в описании функции token_replace().

Написанное актуально для Drupal 7.x
Похожие записи

Комментарии RSS

Скажите, а вот тут у вас array('user' => $GLOBALS['user']) :

 $text = token_replace($form_state['values']['text'], array('user' => $GLOBALS['user']));

Допустим мне нужны токены commerce-order от Drupal Commerce, какие параметры можно передать?

array('commerce-order' => commerce_order_load($order_id))

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании