hyperlink - 如何自己在 Fluid 中生成分页链接
问题描述
我有一个显示记录列表的 TYPO3 扩展。由于它有 40 多页,我想提供一个额外的字母索引,使访问者能够直接跳转到字符的开头。
一般来说,一切正常 - 除了第 n 页的链接。
我有cur
包含当前字符(例如M
)和必要的页码pageNumber
(例如)的流体变量23
。
我怎样才能得到正确的 url,它应该如下所示:
https://mydomain.tld/path/to/list?tx_myextension_myextension[@widget_0][currentPage]=23&cHash=a6193a7eab129df4789343911221584b#jumplabel_M
任何一个
<a class="page-link" href="{f:uri.page(additionalParams:{tx_myextension_myextension{@widget_0:{currentPage:pageNumber}}})}#jmplabel_{cur}">{cur}</a>
也不
<a class="page-link" href="{f:uri.page(additionalParams:{tx_myextension_myextension[@widget_0][currentPage]:pageNumber})}#jmplabel_{cur}">{cur}</a>
打电话给f:uri.page
VH。结果是 href 参数中未替换的字符串。
<a class="page-link" href="{f:uri.page()}?tx_phonebook_phonebook[@widget_0][currentPage]={pageNumber}#jmplabel_{cur}">{cur}</a>
看起来不错,但错过了 cHash,因此导致 404 页面未找到。
解决方案
查看 Georg Ringer 在他的新闻扩展中是如何做到的。实际上,这是您分页的解决方案。
PaginateAdditionalParamsViewHelper.php:
https ://github.com/georgringer/news/blob/master/Classes/ViewHelpers/Widget/Ajax/PaginateAdditionalParamsViewHelper.php#L30
public function render()
{
$page = (int)$this->arguments['page'];
if ($page === 0) {
return [];
}
$params = [
'tx_news_pi1' => [
'@widget_0' => [
'currentPage' => $page
]
]
];
return $params;
}
在一些模板中:
https ://github.com/georgringer/news/blob/master/Resources/Private/Templates/Styles/Twb/Templates/ViewHelpers/Widget/Paginate/IndexAjax.html#L56 ,尤其是additionalParams
关键。
<f:widget.link data="{container:recordId,link:'{t:uri.ajaxAction(contextRecord:\'tt_content:{recordId}\', pluginName: \'pi1\',additionalParams:\'{n:widget.ajax.paginateAdditionalParams(page:0)}\')}'}">
<f:translate key="paginate_previous" />
</f:widget.link>
推荐阅读
- react-native - React-Native-Video 如何添加 onPress?
- php - 在 PHP7+ 中使用 qcodo
- assembly - x86-64 AT&T 指令 movq 和 movabsq 有什么区别?
- scala - Scala Spark:将 DataFrame 写入 CSV 文件时的顺序更改
- angular - 重新加载组件以供第二次使用后无法重新订阅行为主题
- python - PyCharm 无法识别与 python3.7 解释器位于同一目录中的 py 文件的导入
- teamcity - 2 Teamcity Web应用访问git仓库有问题
- jquery - WordPress 插件不工作 - Jquery 显示错误
- python - Optimize.minimize 初始猜测
- c# - 时间:2019-04-10 标签:c#async udp server closes after initiating