เมื่อใช้ Drupal 7 โมดูลสามารถจัดการโทเค็นที่คล้ายกับ [node: author: name] ได้อย่างง่ายดายโดยที่ส่วนของโทเค็นหลังจาก node: ผู้เขียนอ้างถึงโทเค็นผู้ใช้ แตกต่างจากโมดูล Token สำหรับ Drupal 6 รหัสที่ใน Drupal 7 จัดการโทเค็นอนุญาตให้สร้างโทเค็นแบบไดนามิก นี่เป็นเพราะใน Drupal 7 โมดูลที่ใช้โทเค็นสามารถแทนที่โทเค็นใด ๆ ไม่เพียง แต่โทเค็นที่พวกเขากำหนด วนรอบปกติที่ใช้ในhook_tokens ()เป็นค่าต่อไปนี้
foreach ($tokens as $name => $original) {
// Check the value of $name, and generate the replacement that is assigned to
// $replacements[$original].
}
ใช้รหัสต่อไปนี้คุณสามารถได้รับสิ่งที่คุณพยายามที่จะบรรลุ โทเค็นมีรูปแบบเฉพาะซึ่งแตกต่างจากรูปแบบที่คุณอธิบาย รหัสยังไม่ได้รับการทดสอบ
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;
}
การแทนที่โทเค็นนั้นเฉพาะเจาะจงมากฉันไม่คิดว่าคุณจะพบโมดูลที่ทำเช่นนั้น ความเป็นไปได้เพียงอย่างเดียวของคุณคือโมดูลที่กำหนดเองที่คุณเขียน