0

我刚刚发现,如果使用 blocklayered 模块,当您更改页面时,当前页面参数($p,来自 FrontController)不会全局更新。这意味着相对 smarty var 仅在一些非常小的区域可用,例如 pagination.tpl 中的 ul.pagination。这可能是由于模块的 ajax 特性。

这太可怕了。我需要在小块之外以及所有类别 tpl 组件的每个点中的分页数据。实际上应该是这样的,因为 FrontController 中有一个 $p var 没有得到更新,而且您无法在 $_GET 或 $_POST 中读取,显然它应该。至少它应该被发布,或者应该有某种钩子来阅读它。

有什么办法可以做到这一点?

谢谢

4

1 回答 1

1

我找到了一种至少“扩展”$p 范围的方法。

在 pagination.tpl 中,将 ul.pagination 包装在 div.pagination-box 中

然后仔细修改 blocklayered.js,特别是在 reloadContent() 中,在 ajax onsuccess 回调中,以便更新的是 div.pagination-box 而不是 ul.pagination。

这让我可以在 div.pagination-box 中获得更新的 {$p} (因为是一个孩子,当然也在 ul.paginationof 中)。所以我可以在 div.pagination-box 中在 UL 之外添加任意内容。

希望它可以帮助有同样问题的人。

无论如何,在每个 .tpl 的每个块中始终拥有更新的 $p 会非常好。

如果有人找到更好的解决方案,请在此处发布。

于 2013-07-31T18:47:03.147 回答