Проверьте, равен ли pid текущей страницы X

#typo3 #fluid #typo3-6.2.x

#typo3 #текучий #typo3-6.2.x

Вопрос:

Как я могу проверить, имеет ли страница определенный идентификатор, и если true, вывести текст?

Я думал о чем-то подобном этому (псевдокод):

 <f:if condition="{current.page.uid}=='78'">
    <p>I am Page 78</p>
</f:if>
 

Ответ №1:

Если вы хотите использовать это в FLUIDTEMPLATE ( page.10 = FLUIDTEMPLATE в качестве примера), вы можете получить доступ к данным страницы с {data.uid} помощью .

 <f:if condition="{data.uid} == 78">
  <p>I am Page 78</p>
</f:if>
 

В расширении extbase вы можете сделать это так, как говорит @dimitri-l.

Комментарии:

1. Это FLUIDTEMPLATE без подчеркивания.

Ответ №2:

Вы можете получить текущий идентификатор страницы с помощью объекта typoscript

typoscript:

 lib.currentPageId = TEXT
lib.currentPageId.data = TSFE:id
 

ЖИДКОСТЬ:

 <f:if condition="{f:cObject(typoscriptObjectPath:'lib.currentPageId')}==78">
    <p>I am Page 78</p>
</f:if>
 

Ответ №3:

Вы можете создать переменную в своей «настройке страницы TS», как здесь :

 variables {
    pageUid = TEXT
    pageUid.field = uid
    ...
}
 

Таким образом, вы можете создать свое жидкое состояние, как здесь :

 <f:if condition="{pageUid}=={settings.homepid}">
    <p>I am Page 78</p>
</f:if>
 

например…

Ответ №4:

Вам нужно будет передать идентификатор страницы в шаблон fluid. Если вы используете контроллер Extbase, вы можете перейти $GLOBALS['TSFE']->id к своему представлению, а затем использовать условие if, как вы это делали.

 $this->view->assign('pageId', $GLOBALS['TSFE']->id);
 

Я не уверен, возможно ли уже выполнять сравнение строк в Typo3 6.2, если нет, вы должны сравнить его таким образом:

 <f:if condition="{0:pageId} == {0:'78'}>
...
</f:if>
 

В противном случае это чистое решение для текущих версий

 <f:if condition="{pageId} == '78'>
...
</f:if>
 

Ответ №5:

С помощью VHS viewhelper вы можете делать это только с помощью fluid, не прибегая к помощи Typoscript:

 {namespace v=FluidTYPO3VhsViewHelpers}

<f:if condition="{v:page.info(field: 'uid')} == '21'">
    <f:then>
        Shows only if page ID equals 21.
    </f:then>
</f:if>