如何在TYPO3 cObjects中正确应用内容映射



我是TYPO3的新手,并完成了本教程:https://docs.typo3.org/m/typo3/tutorial-sitepackage/master/en-us/Index.html.到目前为止,除了最后一步内容映射之外,一切都很顺利。我不太确定该发布什么作为诊断,源代码看起来像这样:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- 
This website is powered by TYPO3 - inspiring people to share!
TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
TYPO3 is copyright 1998-2017 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
Information and contribution at https://typo3.org/
-->

<title>Page 1</title>
<meta name="generator" content="TYPO3 CMS">

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" media="all">
<link rel="stylesheet" type="text/css" href="/typo3conf/ext/site_package/Resources/Public/Css/website.css?1600015994" media="all">
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="#">Navbar</a>
<button  class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarsExampleDefault"
aria-controls="navbarsExampleDefault"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">

<li class="nav-item active">
<a class="nav-link"
href="/index.php?id=8"
target=""
title="Page 1"
>
Page 1
</a>
</li>

<li class="nav-item ">
<a class="nav-link"
href="/index.php?id=9"
target=""
title="Page 2"
>
Page 2
</a>
</li>

<li class="nav-item ">
<a class="nav-link"
href="/index.php?id=10"
target=""
title="Page 3"
>
Page 3
</a>
</li>

</ul>
</div>
</nav>

<main role="main">
<div class="jumbotron">
<div class="container">
<h1 class="display-3">Hello, world!</h1>
<p> ... </p>
</div>
</div>

<div class="container">
<div class="row">
<div class="col-md-4">

</div>
<div class="col-md-4">

</div>
<div class="col-md-4">

</div>
</div>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" type="text/javascript"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/typo3conf/ext/site_package/Resources/Public/JavaScript/website.js?1600016007" type="text/javascript"></script>

</body>
</html>

相关模板代码如下所示:

<f:layout name="Default" />
<f:section name="Main">
<main role="main">
<f:render partial="Jumbotron" />
<div class="container">
<div class="row">
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '1'}" />
</div>
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '0'}" />
</div>
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '2'}" />
</div>
</div>
</div>
</main>
</f:section>

TypoScript源代码如下所示:

lib.dynamicContent = COA
lib.dynamicContent {
10 = LOAD_REGISTER
10 {
colPos.cObject = TEXT
colPos.cObject {
field = colPos
ifEmpty.cObject = TEXT
ifEmpty.cObject {
value.current = 1
ifEmpty = 0
}
}
pageUid.cObject = TEXT
pageUid.cObject {
field = pageUid
ifEmpty.data = TSFE:id
}
contentFromPid.cObject = TEXT
contentFromPid.cObject {
data = DB:pages:{register:pageUid}:content_from_pid
data.insertData = 1
}
wrap.cObject = TEXT
wrap.cObject {
field = wrap
}
}
20 = CONTENT
20 {
table = tt_content
select {
includeRecordsWithoutDefaultTranslation = 1
orderBy = sorting
where = {#colPos}={register:colPos}
where.insertData = 1
pidInList.data = register:pageUid
pidInList.override.data = register:contentFromPid
}
stdWrap {
dataWrap = {register:wrap}
required = 1
}
}
30 = RESTORE_REGISTER
}

并保存在site_package/Configuration/TypoScript/Helper/DynamicContent.typoscript中。setup.typoscript文件包含以下内容:

@import 'EXT:fluid_styled_content/Configuration/TypoScript/setup.typoscript'
@import 'EXT:site_package/Configuration/TypoScript/Helper/DynamicContent.typoscript'

有什么建议吗?

我找不到如何将pageUid转换为打字脚本。所以模板应该是这样的:

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="Default" />
<f:section name="Main">
<main role="main">
<f:render partial="Jumbotron" />
<div class="container">
<div class="row">
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '{data.uid}',colPos: '1'}" />
</div>
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '{data.uid}',colPos: '0'}" />
</div>
<div class="col-md-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{pageUid: '{data.uid}',colPos: '2'}" />
</div>
</div>
</div>
</main>
</f:section>
</html>

请注意,我在数据变量中放入了pageUid:"{data.uid}">

最新更新