MrF*_*dge 6 drupal drupal-views drupal-6
如何在Drupal中构建一个块,它能够显示块当前所在的视图页面的节点ID?
我正在使用视图构建我的网站的一大块,但我需要能够在PHP模式下制作"智能"块,这将根据视图的显示内容生成动态内容.
如何找到当前显示视图的$ nid?
mpa*_*r17 14
以下是获取节点ID的更强大的方法:
<?php
// Check that the current URL is for a specific node:
if(arg(0) == 'node' && is_numeric(arg(1))) {
return arg(1); // Return the NID
}
else { // Whatever it is we're looking at, it's not a node
return NULL; // Return an invalid NID
}
?>
Run Code Online (Sandbox Code Playgroud)
即使您的节点具有path
和/或pathauto
模块的自定义路径,此方法也可以工作.
仅供参考,如果您不打开path
模块,Drupal生成的默认URL在文档中称为"系统路径".如果你不打开的path
模块,你可以设置这是所谓的"别名"文档中的自定义路径.
因为我总是path
打开模块,所以最初让我困惑的一件事是arg
函数是否有可能返回别名的一部分而不是系统路径的一部分.
事实证明,该arg
函数将始终返回一个系统路径,因为该arg
函数基于$_GET['q']
...经过一些研究后,似乎$_GET['q']
总会返回一个系统路径.
如果要从实际页面请求中获取路径,则需要使用$_REQUEST['q']
.如果path
模块已启用,则$_REQUEST['q']
可能返回别名或系统路径.
归档时间: |
|
查看次数: |
21634 次 |
最近记录: |