Как передать аргумент в разметку (визуализируемый массив)?
Я прохожу курс по модулю 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 answers
Документы для format_string()
следует устранить путаницу:
- @переменная: Экранирована в HTML с помощью check_plain(). Используйте это как выбор по умолчанию для всего, что отображается на странице сайта.
- % переменная: Экранирована в HTML и отформатирована с помощью drupal_placeholder(), что позволяет отображать ее как подчеркнутый текст.
- !переменная : Вставлена как есть, без очистки или форматирования. Используйте это только для текст, который уже был подготовлен для отображения в формате HTML (например, предоставленный пользователем текст, который ранее уже был запущен через check_plain() или, как ожидается, будет содержать некоторые ограниченные теги HTML и уже был запущен через filter_xss() ранее).
Таким образом, в конкретном случае, который вы указали, %wildcard
используется для обеспечения того, чтобы значение было:
Экранирован в HTML и отформатирован с помощью drupal_placeholder(), что позволяет отображать его как подчеркнуто текст.
Различные типы заполнителей просто используются в разных ситуациях, в зависимости от того, что вам нужно сделать со значением, и доверяете ли вы его источнику или нет.
Документы для t()
также стоит прочитать для дополнительного контекста.