如何显示网页的兄弟姐妹,除了当前页面在Drupal 7?(How to display siblin

2019-10-23 08:06发布

假设我有父页A1和B1。 A1有子页面A1.1,A1.2,A1.3和B1有子页面B1.1,B1.2。

当我在页面A1.1我应能显示A1.2和A1.3。 同为A1.2,我应该能够看到A1.1和A1.3。

如果我在页面B1.1,我会看到B1.2,反之亦然。

注意:每个页面都有一个形象,一个标题。 我想用的观点得到解决。

这个线程可以链接到这个链接,如果我们需要的子页面: 如何列出在Drupal 7当前父页面的所有子页面?

Answer 1:

添加NID两个页面上的上下文过滤器,在默认情况下,从网址提前部分检查选择内容的ID,然后在下面下来排除选项。



Answer 2:

我设法通过创建与上下文过滤器下面的PHP代码为了做到这一点

$sibbling = array();
$current = db_query("select menu_name, mlid from {menu_links} where link_path = :node", array(':node' => $_GET['q']));
$current_info = array();
foreach ($current as $value) {
    $current_info[] = $value;
}
if($current_info) {
    $result = db_query("select mlid, plid, link_path, link_title from {menu_links} where link_path != :node and plid = ( select plid FROM {menu_links} WHERE link_path =:node)", array(':node' => $_GET['q']));
    foreach ($result as $row) {
      $sibbling[] = $row;
    }
}
$nids = array();

foreach ($sibbling as $value){
    if( substr( $value->link_path, 0, 5 ) == 'node/' ){
        $nids[] = substr( $value->link_path, 5 );
    }
}

return implode('+',$nids);

最后在加选项我们得到了勾选“允许多个值”

保存并对其做;-)



文章来源: How to display sibling pages except current page in drupal 7?