#intershop
#intershop
Вопрос:
Как создать ссылку без PGID на уровне ISML?
Следующий код отлично подходит для того, чтобы избежать указания идентификатора сеанса в URL, но все равно добавляет PGID в конец URL.
#sessionlessurl(Action(TargetPipeline))#
Ответ №1:
Я считаю, что вы не можете этого сделать, sessionlessurl
и я также думаю, что нет функции ISML, которая может это сделать. Но есть пользовательский тег, который используется для создания канонических ссылок, и вы также можете им воспользоваться. Вызывается тег issetcanonicallink
. Вот пример кода:
<issetcanonicallink
scope="request"
name="CanonicalLink"
action="ViewStandardCatalog-Browse"
parameters="#ParameterList(Parameter('CatalogID', CategoryBO:CatalogBO:Name), Parameter('CategoryName', CategoryBO:Name))#">
<link rel="canonical" href="<isprint encoding="off" value="#CanonicalLink#">" />
Реализация SetCanonicalLinkTag
находится в core
картридже, и параметры соответствующим образом документированы.
Комментарии:
1. На самом деле забавно, так как я уже изменил этот тег в нашем проекте 😉 Спасибо за напоминание!
Ответ №2:
Мое текущее решение для создания URL-адреса без sid и pgid таково:
<%
String targetPipeline = getPipelineDictionary().get("targetPipeline");
URLPipelineAction action = new URLPipelineAction(targetPipeline);
action.setAppendPGID(false);
// Default Link
String myDefaultLink = TemplateURLComposition.getTemplateExecutionConfig().getURLComposer().createURL(false, null, null, null, action, null);
getPipelineDictionary().put("myDefaultLink", myDefaultLink);
%>
<isprint value="#myDefaultLink#">
Не стесняйтесь добавлять лучшую, которая использует меньше JSP 🙂
Параметры URL отсутствуют, но вы также можете легко добавить их в часть JSP.