0

blocklayered モジュールを使用すると、ページを変更しても現在のページ パラメータ (FrontController の $p) がグローバルに更新されないことがわかりました。つまり、相対的な smarty var は、pagination.tpl の ul.pagination などの非常に小さな領域でのみ使用できます。これはおそらく、モジュールの ajax の性質によるものです。

そして、それはひどいです。その小さなチャンクの外側と、すべてのカテゴリ tpl コンポーネントのすべてのポイントで、ページネーション データが必要です。FrontController には更新されない $p 変数があり、$_GET または $_POST で読み取ることもできないため、実際にはこのようにする必要があります。少なくとも投稿する必要があります。または、変更時に読み取るための何らかのフックが必要です。

これを達成する方法はありますか?

ありがとうございました

4

1 に答える 1

1

$p のスコープを少なくとも「拡張」する方法を見つけました。

pagination.tpl で、ul.pagination をたとえば div.pagination-box でラップします。

次に、更新されるものが ul.pagination ではなく div.pagination-box になるように、特に reloadContent() で、ajax onsuccess コールバックで blocklayered.js を慎重に変更します。

これにより、更新された {$p} を div.pagination-box で取得できます (これは子であるため、もちろん ul.paginationof にもあります)。したがって、div.pagination-box の OUTSIDE ul に任意のものを追加できます。

同じ問題を抱えている人々に役立つことを願っています。

とにかく、すべての .tpl のすべてのチャンクに常に更新された $p があると本当に良いでしょう。

誰かがより良い解決策を見つけたら、ここに投稿してください。

于 2013-07-31T18:47:03.147 に答える