我需要根据 tt_content 中是否存在内容来更改菜单的外观。为此,我这样做了,但它不起作用,我在测试中有错误:
1 = TMENU
1 {
expAll = 1
doNotLinkIt = 1
IFSUB = 1
IFSUB {
doNotLinkIt = 1
typeOfMenu = 0
#typeOfMenu.override = 1
# pane content
contenu.cObject = COA
contenu.cObject {
10 = CONTENT
10 {
table = tt_content
select {
orderBy = sorting
pidInList.field = uid
where = {#colPos}=99 and deleted = 0 and hidden = 0
}
if.isTrue.data {
typeOfMenu = 1
}
# 20 = TEXT
# 20 {
# field = bodytext
# typeOfMenu.value.override.if {
# isTrue.data = 20.field
# }
# }
}
}
[globalVar = LIT:1 = typeOfMenu]
#[globalVar = LIT:1 = {$typeOfMenu}]
stdWrap {
typolink.parameter.field = uid
typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
typolink.ATagParams.insertData = 1
}
[else]
stdWrap {
typolink.parameter.field = uid
typolink.ATagParams = class="vertical menu -- {register:typeOfMenu.value} --"
typolink.ATagParams.insertData = 1
}
[end]
...
- 错误:第 2244 行:对象名称字符串,“[globalVar”包含无效字符“[”。必须是字母数字或以下之一:“_:-。”
有人有想法吗?此致 !
差不多就是这样,但它不起作用(Bernd Wilke 解决方案......)。我不太了解sql查询。并且有一个偏移量,它是第一个 typeOfMenu 是为第二个写的。事实上,我想要这样:
<div class="top-bar-left">
<ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">
<li>
<a href="/testtypo3-9.2.0/htdocs/index.php?id=25">!</a>
<ul class="vertical menu">
<li>
<a href="/testtypo3-9.2.0/htdocs/index.php?id=29">YogaTissimo.fr</a>
<ul class="vertical menu">
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=31">Qui sommes nous ?</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=30">Faq</a></li>
</ul>
</li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=28">Vous nous dites ?</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=27">Contacts</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=26">Â propos</a></li>
</ul>
</li>
<li>
<a href="/testtypo3-9.2.0/htdocs/index.php?id=15">Philosophie</a>
<ul class="vertical menu">
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=24">Un art de vivre</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=23">Conscience et action</a></li>
<li>
<a href="/testtypo3-9.2.0/htdocs/index.php?id=17">Journal d'une sadhana [TTC]</a>
<ul class="vertical menu">
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=22">Jour 1</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=21">Jour 2</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=20">Jour 3</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=19">Jour 4</a></li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=18">Jour 5</a></li>
</ul>
</li>
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=16">Vedanta</a></li>
</ul>
</li> .....
而且,当 colPos=99 中有某些内容时,我想要:
<div class="top-bar-left">
<ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">
<li class="sanskrit-1">
<a href="/testtypo3-9.2.0/htdocs/index.php?id=25" class="dropdown shrink" data-toggle="sous-menu1">!</a>
<div class="dropdown-pane" id="sous-menu1" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true">
<div class="grid-x grid-padding-x">
<div class="large-12">PaneC'est-UN_PANE ! </div>
</div>
<div class="grid-x grid-padding-x">
<div class="large-3 medium-4 cell">
<p>
<a href="/testtypo3-9.2.0/htdocs/index.php?id=29">YogaTissimo.fr</a></br><b>Sur ce site</b>
<i>
</i></p>
<ul class="ssmenu">
<li class="first"><a href="/testtypo3-9.2.0/htdocs/index.php?id=31">Qui sommes nous ?</a></li>
<li class="last"><a href="/testtypo3-9.2.0/htdocs/index.php?id=30">Faq</a></li>
</ul>
</div>
<div class="large-3 medium-4 cell">
<p><a href="/testtypo3-9.2.0/htdocs/index.php?id=28">Vous nous dites ?</a></br></p>
</div>
<div class="large-3 medium-4 cell">
<p><a href="/testtypo3-9.2.0/htdocs/index.php?id=27">Contacts</a></br></p>
</div>
<div class="large-3 medium-4 cell">
<p><a href="/testtypo3-9.2.0/htdocs/index.php?id=26">Â propos</a></br><b></b><i></i>
<div class="img-wrap"><img src="/testtypo3-9.2.0/htdocs/fileadmin/user_upload/bg.jpeg" width="225" height="225" alt="" ></div>
</p>
</div>
</div>
</div>
</li>
这里的打字稿部分我很难编码并且有效,没有考虑 colPos = 99:
# menu
20 = HMENU
20 {
wrap = <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">|</ul>
# Premier niveau
1 = TMENU
1 {
expAll = 1
doNotLinkIt = 1
IFSUB = 1
IFSUB {
doNotLinkIt = 1
stdWrap {
typolink.parameter.field = uid
typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
typolink.ATagParams.insertData = 1
}
wrapItemAndSub = <li class="sanskrit-1">|</div></div></li> |*| <li>|</div></div></li> |*| <li class="last">|</div></div></li>
after {
stdWrap.insertData = 1
stdWrap.wrap = <div class="dropdown-pane" id="sous-menu{register:count_MENUOBJ}" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true"><div class="grid-x grid-padding-x">|
# pane content
stdWrap.cObject = COA
stdWrap.cObject {
10 = CONTENT
10 {
table = tt_content
select {
orderBy = sorting
pidInList.field = uid
where = {#colPos}=99 and deleted = 0 and hidden = 0
}
renderObj = COA
renderObj {
10 = TEXT
10.stdWrap.field = bodytext
10.stdWrap.wrap = <div class="large-12">|
20 = FILES
20 {
references {
table = tt_content
uid.data = field:uid
fieldName = image
}
begin = 0
maxItems = 1
renderObj = IMAGE
renderObj {
file {
import.data = file:current:originalUid // file:current:uid
#width = 232c
#height = 145c
}
required = 1
#wrap = <div class="img-wrap">|</div>
wrap = |
}
}
30 = TEXT
30.value = </div></div><div class="grid-x grid-padding-x">
} //COA
} //CONTENT
} //COA
} //after
} //IFSUB
} //1
此致
现在如果我这样做:
# menu
20 = HMENU
20 {
wrap = <ul class="dropdown vertical menu medium-horizontal" data-responsive-menu="accordion medium-dropdown">|</ul>
# Premier niveau
1 = TMENU
1 {
expAll = 1
doNotLinkIt = 1
IFSUB = 1
IFSUB {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
# let's define registers
1 = LOAD_REGISTER
# define register 'typeOfMenu'
1.typeOfMenu.cObject = TEXT
1.typeOfMenu.cObject {
# set value 1
value = 1
# override with 0
override = 0
# override only if this CONTENT is empty
override.ifEmpty.cObject = CONTENT
override.ifEmpty.cObject {
# select all CEs, from this page in column 99
table = tt_content
select {
pidInList.field = uid
where = {#colPos}=99 and deleted=0 and hidden=0
}
# render only the uid, so even an empty CE will trigger
renderObj = TEXT
renderObj.field = uid
}
}
#99 = RESTORE_REGISTER
}
stdWrap.typolink {
parameter.field = uid
ATagParams = class="vertical menu -- {register:typeOfMenu} --"
ATagParams.insertData = 1
ATagParams {
insertData = 1
# override the std value:
override = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
override {
insertData = 1
# override only if register typeOfMenu is 1
stdWrap.if.equals = 1
stdWrap.if.data = register:typeOfMenu
}
}
}
#stdWrap {
# typolink.parameter.field = uid
# typolink.ATagParams = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
# typolink.ATagParams.insertData = 1
# }
wrapItemAndSub = <li class="sanskrit-1">|</div></div></li> |*| <li>|</div></div></li> |*| <li class="last">|</div></div></li>
after {
stdWrap.insertData = 1
stdWrap.wrap = <div class="dropdown-pane" id="sous-menu{register:count_MENUOBJ}" data-dropdown data-options="closeOnClick:true; hover: true; hoverPane: true"><div class="grid-x grid-padding-x">|
# pane content
stdWrap.cObject = COA
stdWrap.cObject {
10 = CONTENT
10 {
table = tt_content
select {
orderBy = sorting
pidInList.field = uid
where = {#colPos}=99 and deleted = 0 and hidden = 0
}
renderObj = COA
renderObj {
10 = TEXT
10.stdWrap.field = bodytext
10.stdWrap.wrap = <div class="large-12">|
20 = FILES
20 {
references {
table = tt_content
uid.data = field:uid
fieldName = image
}
begin = 0
maxItems = 1
renderObj = IMAGE
renderObj {
file {
import.data = file:current:originalUid // file:current:uid
#width = 232c
#height = 145c
}
required = 1
#wrap = <div class="img-wrap">|</div>
wrap = |
}
}
30 = TEXT
30.value = </div></div><div class="grid-x grid-padding-x">
} //COA
} //CONTENT
} //COA
} //after
} //IFSUB
} //1
我得到了一些与 colPos = 99 对应的 'typeOfMenu' 的值(反转,还不是那样),它几乎很好,但是脚本中较低的值没有被考虑在内。
如果我这样做:
# let's define registers
stdWrap.innerWrap.cObject = LOAD_REGISTER
stdWrap.innerWrap.cObject {
# define register 'typeOfMenu'
typeOfMenu.cObject = TEXT
typeOfMenu.cObject {
# set value 1
value = 1
# override with 0
override = 0
# override only if this CONTENT is empty
override.ifEmpty.cObject = CONTENT
override.ifEmpty.cObject {
# select all CEs, from this page in column 99
table = tt_content
select {
pidInList.field = uid
where = colPos=99 and deleted=0 and hidden=0
}
# render only the uid, so even an empty CE will trigger
renderObj = TEXT
renderObj.field = uid
}
}
}
stdWrap.typolink{
parameter.field = uid
ATagParams = class="vertical menu -- {register:typeOfMenu} --"
ATagParams {
insertData = 1
# override the std value:
override = class="dropdown shrink" data-toggle="sous-menu{register:count_MENUOBJ}"
override {
insertData = 1
# override only if register typeOfMenu is 1
stdWrap.if.equals = 1
stdWrap.if.data = register:typeOfMenu
}
}
}
我明白了:
<li class="sanskrit-1"><a href="/testtypo3-9.2.0/htdocs/index.php?id=25" class="vertical menu -- 46 --">!</a><div class="dropdown-pane" ... # DROP PANE YES
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 47 --"> ...</a> ... # DROP PANE YES
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE
<li><a href="/testtypo3-9.2.0/htdocs/index.php?id=15" class="vertical menu -- 1 --"> ...</a> ... # NO DROP PANE
...
当它是 'typeOfMenu' = 1 时,我没有 droppane 但没有变化: override = class="dropdown shrink" data-toggle="sous-