0

我有一个独特的问题。在我的 drupal 站点中,我在预告片中显示了很多节点,对于每个节点,我使用的是带有寻呼机的表。问题是,在页面初始加载时,表格排序不起作用。但是,如果我使用寻呼机并移动到不同的页面然后返回,那么排序工作。

我调查了这个问题,发现在初始加载时,标题链接的 url 使用主链接,即:mysite.com/node?sort=asc&order=Name。单击寻呼机后,标题链接的 url 更改为:mysite.com/mycallbackfunction?_=1348208999187&page=1&nid=13&pager_id=1&sort=desc&order=Name

如果您注意到,url 显然是不同的,这没关系,但主要的是,在初始加载中缺少 nid。我希望表头使用寻呼机 url 或我指定的一些 url,因此在这两种情况下都会出现 nid,因为如果没有 nid,函数不会返回任何内容。

这是显示表格的 mycallbackfunction 中的相关代码:

  //Attach a theme table 
  $html = theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'attributes' => array(
      "class" => array(
        "my_table_box"
      ),
      "cellspacing" => '0',
      "cellpadding" => '0'
  )));

//Pager theme
  $html .= theme('pager', array(
    'element' => $pager_id,
    'parameters' => array(
      'nid' => $nid,
      'pager_id' => $pager_id),
    'quantity' => ceil($count/5)
  ));

希望有人可能对这个奇怪的问题有所了解。

4

1 回答 1

0

您可以在 theme('pager') 函数中传递自定义参数。

<?php
// e.g.
theme('pager', array('parameters' => array('nid' => $nid))
?>);

如果您正在寻找其他东西,请告诉我。

祝你好运!

-伊姆兰

于 2012-10-08T12:43:32.960 回答