Как передать аргумент в разметку (визуализируемый массив)?


Я прохожу курс по модулю Drupal 7. Мы создаем функцию во включаемом файле, которая принимает и аргумент из URL-адреса. Затем он выводит значение на страницу. Кажется достаточно простым, но затем он делает это в примере:

function good_morning_extra($wildcard) {
$content = array(
'#type' => 'markup',
'#markup' => '<p>' . t('The wildcard contains the value "%wildcard".', array('%wildcard' => $wildcard)) . '</p>',
);

return $content;
}

Именно эта часть меня смутила, и инструктор замалчивал ее: 'The wildcard contains the value "%wildcard".', array('%wildcard' => $wildcard) Почему бы просто 'The wildcard contains the value "' . $wildcard .'"</p>'?

Выводится то же самое, но мне интересно, есть ли здесь чему поучиться. Я все еще изучаю весь "визуализируемый синтаксис "массива" и именно то, что это означает. У меня такое чувство, что понимание этого может быть ключом к пониманию того, как Drupal передает данные.

 1
Author: kiamlaluno, 2015-05-21

1 answers

Документы для format_string() следует устранить путаницу:

  • @переменная: Экранирована в HTML с помощью check_plain(). Используйте это как выбор по умолчанию для всего, что отображается на странице сайта.
  • % переменная: Экранирована в HTML и отформатирована с помощью drupal_placeholder(), что позволяет отображать ее как подчеркнутый текст.
  • !переменная : Вставлена как есть, без очистки или форматирования. Используйте это только для текст, который уже был подготовлен для отображения в формате HTML (например, предоставленный пользователем текст, который ранее уже был запущен через check_plain() или, как ожидается, будет содержать некоторые ограниченные теги HTML и уже был запущен через filter_xss() ранее).

Таким образом, в конкретном случае, который вы указали, %wildcard используется для обеспечения того, чтобы значение было:

Экранирован в HTML и отформатирован с помощью drupal_placeholder(), что позволяет отображать его как подчеркнуто текст.

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

Документы для t() также стоит прочитать для дополнительного контекста.

 1
Author: Clive, 2015-05-21 13:18:13