Боюсь, что это может быть специфический / связанный с плагином вопрос, но, может быть, есть более опытные программисты TypoScript / Extensions, которые могут дать мне быстрый совет, на что мне обратить внимание.
Я использую плагин галереи Галерея YAG. В целях SEO я хотел бы иметь дополнительные ссылки в заголовке для предыдущей и следующей страницы itemList.
На данный момент я достиг следующего:
В Классы / Controller / ItemListController.php я добавил следующие строки в функцию «listAction»:
$pager = $this->extListContext->getPagerCollection();
$nextLinkUid = $pager->getNextPage();
$prevLinkUid = $pager->getPreviousPage();
$prev = '<link rel="prev" href="' . $prevLinkUid . '">';
$next = '<link rel="next" href="' . $nextLinkUid . '">';
$this->response->addAdditionalHeaderData($prev . PHP_EOL . $next);
С этим я получаю два дополнительных тега в <head>
раздел моей страницы с
<link rel="prev" href="1">
<link rel="next" href="2">
Пока все хорошо — у меня есть правильные записи, и у меня есть uid страницы предыдущей и следующей ссылки.
У кого-нибудь есть идея, как я могу получить фактическую ссылку в этом месте? как тот, который отображается внутри Ресурсы / Private / Partials / Пейджер / Default.html
<f:if condition="{pager.showPreviousLink}">
<li class="previous">
<extlist:link.action controller="{controller}" action="{action}" arguments="{extlist:namespace.GPArray(object:'{pagerCollection}' arguments:'page:{pager.previousPage}')}"><span><</span></extlist:link.action>
</li>
</f:if>
Какое действие мне нужно вызвать с контроллера, чтобы получить ссылку?
Я предполагаю, что, возможно, придется использовать render
от Классы / ViewHelpers / Связь / ItemViewHelper.php каким-то образом — но как? Я не могу понять, как преобразовать синтаксис из Частичного в некоторый синтаксис, который я могу вызвать из контроллера.
Для тех, кто интересуется, как я решил это:
Вместо того, чтобы использовать addAdditionalHeaderData, я добавил данные заголовка через жидкую область просмотра непосредственно в частичную часть:
Других решений пока нет …