检查当前页面的pid是否为X.

时间:2016-10-17 14:12:38

标签: typo3 fluid typo3-6.2.x

如何检查页面是否具有特定ID?如果true,则输出文本?

我想过这样的事情(伪代码):

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

5 个答案:

答案 0 :(得分:4)

如果您想在FLUIDTEMPLATE中使用此功能(例如page.10 = FLUIDTEMPLATE),则可以使用{data.uid}访问网页数据。

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

在extbase扩展中你可以像@ dimitri-l那样说。

答案 1 :(得分:3)

您可以通过typoscript对象

获取当前页面ID

的TypoScript:

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

FLUID:

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

答案 2 :(得分:2)

您需要将页面ID传递给流体模板。如果您使用的是Extbase控制器,则可以将element.getAttribute("textContent") 传递给您的视图,然后像您一样使用if条件。

$GLOBALS['TSFE']->id

我不确定是否已经可以在Typo3 6.2中进行字符串比较,如果没有,你必须这样比较:

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

否则这是当前版本的干净解决方案

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

答案 3 :(得分:2)

您可以在“页面TS设置”中创建一个变量,如下所示:

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

所以你可以在这里制作流畅状态:

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

例如......

答案 4 :(得分:1)

使用VHS viewhelper,你可以只用流体做,不需要Typoscript助手:

{namespace v=FluidTYPO3\Vhs\ViewHelpers}

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