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 に答える