Sử dụng Drupal 7, các mô-đun có thể dễ dàng xử lý các mã thông báo tương tự như [nút: tác giả: tên], trong đó một phần của mã thông báo sau nút: tác giả đang đề cập đến mã thông báo người dùng. Khác với mô-đun Token cho Drupal 6, mã trong Drupal 7 xử lý các mã thông báo cho phép tạo mã thông báo động. Điều này là do trên Drupal 7, các mô-đun triển khai mã thông báo có thể thay thế bất kỳ mã thông báo nào, không chỉ các mã thông báo mà chúng đã xác định. Vòng lặp thông thường được sử dụng trong hook_tokens () là vòng lặp sau.
foreach ($tokens as $name => $original) {
// Check the value of $name, and generate the replacement that is assigned to
// $replacements[$original].
}
Sử dụng mã sau đây, bạn có thể nhận được những gì bạn đang cố gắng để đạt được. Mã thông báo có một định dạng cụ thể, khác với định dạng bạn đang mô tả, mặc dù. Mã chưa được thử nghiệm.
function mymodule_token_info() {
$type = array(
'name' => t('Anchors'),
'description' => t('Your description'),
);
return array(
'types' => array('anchor' => $type),
);
}
function mymodule_tokens($type, $tokens, array $data = array(), array $options = array()) {
$replacements = array();
$sanitize = !empty($options['sanitize']);
if ($type == 'anchor') {
foreach ($tokens as $name => $original) {
list($file, $title) = explode(':', $name);
if (!empty($title) && !empty($_GET[$title])) {
$title = $_GET[$title];
}
else {
$title = '';
}
$replacements[$original] = "<a href='$file.html'>$title</a>";
}
}
return $replacements;
}
Sự thay thế cho các mã thông báo cụ thể đến mức tôi không nghĩ rằng bạn sẽ tìm thấy một mô-đun thực hiện điều đó. Khả năng duy nhất của bạn là một mô-đun tùy chỉnh bạn viết.