2

libraries/html フォルダーのコア pagination.php で 1 つの関数をそのように変更しました

protected function _list_render($list)
   {  
$stranky = JPagination::getPagesCounter();

      $html = '<ul>';
      $html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';


    $html .= '<li> &nbsp; | '. $stranky .' |&nbsp; </li>';

      $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
      $html .= '</ul>';

      return $html;
   }

この変更はうまく機能しますが、私が達成しようとしているのは、このコードをオーバーライドすることです。そのため、テンプレート フォルダーの html フォルダーにある pagination.php に同じコードを配置し、関数の名前を pagination_list_render($list) に変更します。

function pagination_list_render($list)
   {  

$stranky = JPagination::getPagesCounter();


      $html = '<ul>';
      $html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';

        $html .= '<li> &nbsp; | '. $stranky .' |&nbsp; </li>';

      $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
      $html .= '</ul>';

      return $html;
   }

しかし、今では機能しなくなり、ページ全体が壊れています。

$stranky = JPagination::getPagesCounter(); のようです。問題です..コアファイルでは機能しますが、オーバーライドされたファイルでは機能しません。何か案は?

4

2 に答える 2

3

Chrome ファイル (ページネーション テンプレートのオーバーライド) は JPagination オブジェクトにアクセスできないため、自分で値を計算する必要があります。

public function pagination_list_render($list)
{
    $total   = count($list['pages']);
    $current = 0;
    foreach ($list['pages'] as $i => $page) {
        if (!$page['active']) {
            $current = $i;
            break;
        }
    }
    $counter = JText::sprintf('JLIB_HTML_PAGE_CURRENT_OF_TOTAL', $current, $total); 

    $html .= '<ul>';
    $html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';
    $html .= '<li> &nbsp; | '. $counter .' | &nbsp; </li>';
    $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
    $html .= '</ul>';

    return $html;
}

複数のページがある場合は、テストを追加したいかもしれません。

于 2013-05-13T12:09:54.743 に答える
1

テンプレートのデフォルトのページ付けを次のように変更しました。

jQueryを使えば本当に簡単です

    $(document).ready(function() {
        $( '.pagenav' ).removeClass( 'pagenav' ).addClass( 'pagination' );
    });

「ページネーション」の代わりに何でも入れることができます。同様に、その子 li を変更できます

それが役立つことを願っています

于 2013-10-18T11:32:44.310 に答える