我是typo3的新手,我必须设置导航.我已经完成了在Timerate找到的教程,并且我已经构建了演示导航(教程中的第2周).
现在我必须设置一个必须如下的导航:
Link 1 | Link 2 | Link 3 | Link 4
Run Code Online (Sandbox Code Playgroud)
back en结构如下:
Link 1
Link 2
Link 3 (shortcut to sub link 1)
Sublink 1
Sublink 2
Link 4
Run Code Online (Sandbox Code Playgroud)
当我在链接1,链接2和链接4指定的部分时,整个菜单工作正常,但是当我点击链接3时没有任何显示.
这些Sublinks将在辅助导航中显示
这是我在root ts模板上的typoscript(我正在使用TemplaVoila):
lib.field_topmenu = HMENU
lib.field_topmenu {
special = directory
special.value = {$idMain}
entryLevel = 2
1 = TMENU
1.NO = 1
1.wrap = <div id="menu"><ul> | </ul></div>
1.NO.wrapItemAndSub = <li>|</li>
1.ACT < .1.NO
1.ACT.ATagParams = class='active'
2 < .1
}
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
我在页面上有一个页面内容元素.它有ID 3,它有一个翻译.使用以下Typoscript读出此元素
lib.marker = RECORDS
lib.marker {
tables=tt_content
source= 3
dontCheckPid = 1
languageField = sys_language_uid
select.languageField = sys_language_uid
}
Run Code Online (Sandbox Code Playgroud)
对于默认语言,一切正常.但是对于我的其他语言,我得到了
<a id="c605"></a>
Run Code Online (Sandbox Code Playgroud)
在div我最初想要的之前显示.我查看了页面内容的HTML,并且应该有类似的内容.有任何想法吗?
编辑:
这里是通过TS对象浏览器收集的内容:
[tt_content] = CASE
[key]
[stdWrap]
[innerWrap]
[innerWrap2] = | <p class="csc-linkToTop"><a href="#">{LLL...
[prepend] = TEXT
[dataWrap] = <a id="c{field:_LOCALIZED_UID}"></a>
[if]
[isTrue]
[field] = _LOCALIZED_UID
Run Code Online (Sandbox Code Playgroud) 我必须使用typoscript替换我的typo3页面上的标记来构建到另一个页面的链接(即同一页面的另一种类型).
对于此链接,我必须设置与当前页面相同的查询参数,以及当前页面的页面ID <a href="index.php?id=11¶m1=abc¶m2=def&type=123">
到目前为止,我将收到的QUERY_STRING传递给以下站点.当前页面的路径没有id参数时会出现问题,例如由RealURL设置.
所以我需要的是这样的映射:
mysite.com/about_us
==> mysite.com/index.php?id=11&type=123&L=1
mysite.com/index.php?id=33¶m1=abc¶m2=def&L=1
==> mysite.com/index.php?id=33¶m1=abc¶m2=def&L=1
Run Code Online (Sandbox Code Playgroud)
这是我试过的:
page.10.marks.printlink = HTML
page.10.marks.printlink.value = dummy
# For plugin pages with querystring
page.10.marks.printlink.value.data= getIndpEnv:QUERY_STRING
# For other Typo3 pages
page.10.marks.printlink.value.ifEmpty.data = page:uid
page.10.marks.printlink.value.ifEmpty.dataWrap = id=|
page.10.marks.printlink.value.wrap = <a target="_blank" href="index.php?|&type=123">print</a>
Run Code Online (Sandbox Code Playgroud)
这适用于大多数情况,但是如果RealURL PREVar就位则不适用,在这种情况下会映射以下内容:
mysite.com/de/über_uns
==> mysite.com/de/index.php?L=2&type=123
Run Code Online (Sandbox Code Playgroud)
所以,没有id传递!(大概是因为RealURL替换了/de/prevar L=2,但没有设置id)
我的问题是:有没有办法简单地连接page:uid和QUERY_STRING?或者我是否还要做更多的typoscript魔术?
谢谢你的任何提示!
我有一个标题菜单,并尝试为每个项目定义不同的CSS类.
这就是我所拥有的:
20 = HMENU
20 {
special = directory
special.value = 107
1 = TMENU
1 {
wrap = <ul class="foo" id="mymenu">|</ul>
expAll = 1
NO = 1
NO.allWrap = <li class="first menu_{field:uid}">|</li> || <li class="menu_{field:uid}">|</li> || <li class="last menu_{field:uid}">|</li>
}
}
Run Code Online (Sandbox Code Playgroud)
但是在HTML输出中我只是得到了class="first menu_{field:uid}",没有任何东西被替换.
顺便说一下:菜单中的页面条目是指向外部页面的链接.
编辑:
当我们的设计师抱怨非说话类ID时,我们现在滥用了body-class属性:
NO.allWrap = <li class="first {field:bodyclass_wrap_class}">|</li> || <li class="{field:bodyclass_wrap_class}">|</li> || <li class="last {field:bodyclass_wrap_class}">|</li>
Run Code Online (Sandbox Code Playgroud) 我有一个关于TYPO3中更多域名的问题.
我想构建一个有2个域的树.
如果我加载第一个网址,我想加载第一个网站,
如果我加载第二个网址,我想加载第二个网站.
域存储在每个站点中.
是否可以在不使用.htaccess文件的情况下执行此操作?
有人给我一个教程或帮助吗?
谢谢
假设我有一个包含以下网页的项目(请参见屏幕截图)

红色,蓝色,帖子和博客页面的uid分别为1,2,3和4.
现在,我想在Typoscript中定义一个数组或某种列表,其中包含所有根网页的标题.这个数组,我可以在我的FLUID模板中使用它并显示所有标题.
例:
在TypoScript中
arrayOfTitles =具有uid 1,2,3和4的页面的#标题
在FLUID页面中
<f:for each="{arrayOfTitles}" as="foo">
<h1> {foo} </h1>
</f:for>
Run Code Online (Sandbox Code Playgroud)这是可能的吗?
实际上我在Typo 7.6.12的typo3模板上工作.我的问题是我无法从左,右或边栏列中获取我的内容.只有正常工作.
我的想法是,用户可以编辑左列的页脚元素和普通列的基本内容.
那是我的代码:
...
10 = FLUIDTEMPLATE
10 {
file = fileadmin/templates/gtstemplate/index.html
layoutRootPath = fileadmin/templates/gtstemplate/layouts/
partialRootPath = fileadmin/templates/gtstemplate/html/partials/
variables {
content < styles.content.get
footer < styles.content.getLeft
footer.slide = -1
}
}
...
Run Code Online (Sandbox Code Playgroud)
和我的HTML代码.
<div id="containerStart" class="container">
<f:format.html parseFuncTSPath="">{content}</f:format.html>
</div>
<footer>
<f:format.html parseFuncTSPath="">{footer}</f:format.html>
<f:debug title="Results of customers query">{footer}</f:debug>
</footer>
Run Code Online (Sandbox Code Playgroud)
使用footer.slide = -1我希望在所有页面上继承页脚模块.
它真的很混乱,因为正常的列正在处理任何问题,如果我使用它上面的模块.但是任何其他专栏都不起作用.Debug输出NULL.使用较旧的Typo3版本,它可以毫无问题地工作
CSS内容包括在内.
如果有人有任何想法会很酷.最好的答案谢谢.
我尝试使用TYPO3 8的数据处理器来制作我的菜单.
我在TypoScript脚本中有这个代码:
page = PAGE
page{
10 = FLUIDTEMPLATE
10 {
file = fileadmin/abis/templates/BootstrapTmpl.html
partialRootPath = fileadmin/abis/Partials/
layoutRootPath = fileadmin/abis/Layouts/
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
entryLevel= 0
excludeUidList = 27,30,31
levels = 5
#includeSpacer = 1
titleField = nav_title // title
as = huhu
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
这部分在一节中:
<f:section name="myMenu" >
<f:debug title="title">{huhu}</f:debug>
<f:cObject typoscriptObjectPath="obj.logo" />
<ul class="nav navbar-nav navbar-left">
<f:for each="{huhu}" as="menuItem">
<li>
{menuItem.text}
<f:if condition="menuItem.subItems">
<f:render section="myMenu" arguments="{myMenu: menuItem.subItems}" />
</f:if>
</li>
</f:for> …Run Code Online (Sandbox Code Playgroud) 我正在搜索TYPO3扩展,它允许我定义变量并在TYPO3后端的任何地方使用它们(类似于%CEO_NAME%).
客户想要集中定义名称和地址(例如他们的CEO),以便当另一个人获得工作时,他们可以只更改一次,并在每个RTE,页面标题,关键字等中替换它.
是否有一些扩展可以让我轻松地做到这一点,或者有一个简单的方法可以通过TS实现吗?
如果可能的话,我想避免为此编写自己的扩展,因为该项目的预算有点紧张.
在TYPO3中,您通常需要包括扩展中的“静态模板”以使扩展起作用。
但是,似乎在TYPO3后端中没有办法看到这些静态模板中实际上是什么印刷字。
我的问题是:有没有办法查看这些静态模板的内容而不浏览扩展的源代码?
typoscript ×10
typo3 ×9
fluid ×3
arrays ×1
cross-domain ×1
multilingual ×1
typo3-7.6.x ×1
typo3-8.7.x ×1
typo3-8.x ×1