You are here

使用to_arg()函数为通配符构建路径

老葛的Drupal培训班 Think in Drupal

还记不记得我曾经说过,对于包含通配符的Drupal路径,Drupal无法为其创建一个有效的链接,比如user/%(毕竟,Drupal怎么会知道如何替换%呢)?不过这一点并非完全正确。我们可以定义一个帮助函数,来为通配符生成一个替身,这样,在Drupal构建链接时就可以使用替身了。在菜单项“我的帐号”中,使用以下步骤来生成“我的帐号”链接的路径:
    1. Drupal路径最初为user/%user_uid_optional。
    2. 当构建链接时,Drupal会查找一个名为user_uid_optional_to_arg()的函数。如果没有定义该函数的话,那么Drupal就不知道如何构建路径,因此也就无法显示链接了。
    3. 如果找到了该函数,那么Drupal将会使用该函数返回的结果来替代链接中的通配符。user_uid_optional_to_arg()函数返回了当前用户的用户ID,假定你就是用户4,那么Drupal就会将“我的帐号”链接到http://example.com/?q=user/4
 
    to_arg()函数不是特定于一个给定路径的。换句话说,对于任何页面,在构建链接期间都会运行to_arg()函数,而不仅仅是对于匹配Drupal路径的一个特定页面。“我的帐号”链接显示在所有的页面,而不仅仅是页面http://example.com/?q=user/3

 

Drupal版本: