作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
还记不记得前面我们曾经说过,对于包含通配符的Drupal路径,Drupal无法为其创建一个有效的链接,比如node/%(毕竟,Drupal怎么会知道如何替换%呢)?不过这一点并非完全正确。我们可以定义一个帮助函数,来为通配符参数提供一个默认值,这样,在Drupal构建链接时,就有路径可用了。向我们的模块的module文件中追加以下函数:
/**
* to_arg()函数的实现
*/
function menu_wildcard_arg_optional_to_arg($arg){
return (empty($arg) || $arg == '%') ? 'a' : $arg;
}
清除缓存,这样,链接“占位符示例”就会出现在导航区块中了。该链接的Drupal路径为placeholder/a。
to_arg()函数,最初应用于“我的帐户”这一链接上,但在Drupal7的正式版本中,“我的帐户”对应路径已被修改为了user,不带任何通配符。而与uid相关的信息则是从global $user中提取出来的。随着此处弃用了to_arg()函数,Drupal核心中,好像再也找不到实际的例子了。而这种方式,在实际的站点开发中,很少被用到。