【问题标题】:Drupal clean urls on custom page GET request自定义页面 GET 请求上的 Drupal 清理 url
【发布时间】:2010-04-14 17:59:59
【问题描述】:
【问题讨论】:
标签:
php
drupal
drupal-6
get
clean-urls
【解决方案1】:
您可以在模块中使用hook_menu 在菜单系统中执行您所要求的操作,但您不能在其中一部分是名称的情况下创建别名。整个别名是一个名称,因此您无法从中提取信息。使用hook_menu 你可以这样做:
function my_module_menu() {
$items = array();
$items['path/%user'] = array(
'title' => 'Title',
'page callback' => 'callback',
'page arguments' => array(1),
'access callback' => '...',
'access arguments' => array(...),
);
return $items;
}
然后在您的回调函数中,您将在对应于 uid 的路径中拥有值或参数 1(实际上,由于%user,它将是一个加载的用户对象)。
【解决方案2】:
是的。使用 arg() 而不是 $_GET
请记住,arg() 默认使用 $_GET['q'],因此在返回结果之前有效地转换了别名。因此,您尝试访问的参数可能位于另一个位置。
例如,路径 myalias/5 可能会转换为 taxonomy/term/5。在这种情况下,arg(2) 为 5。
有关 Drupal arg() 函数的更多信息,请参阅http://api.drupal.org/api/function/arg/6
【解决方案3】:
如果您使用视图来组装这些页面,则可以通过将 UID 作为 URL 中提供的参数为您轻松完成该部分。