在TMENU中,我想仅对某些页面应用特殊包装。
所以
Home
-- This
-- That
-- Such
-----A
-----Thing
只有页面“Such”会有这个换行(带有一个特殊的类或wrapItemsAndSub的图标)。
理想情况下,这可以从页面树/ CMS中完成。或者通过pid。 但我认为不可能以简单的方式进入TMENU? OptionSplit不是一个选项,因为它只有几个特殊页面。
可以这样做吗?
答案 0 :(得分:4)
您必须在此处使用CASE对象并将其应用于具有stdWrap的property / wrap。 看看这个例子。
NO {
wrapItemAndSub.cObject = CASE
wrapItemAndSub.cObject {
key.field = uid
default = TEXT
default.value = <li>|</li>
// for page uid = 99
99 = TEXT
99.value = <li class="special">|</li>
}
}
您可以将这种方式用于具有stdWrap的每个元素。
答案 1 :(得分:2)
这是复选框的简短教程。在本教程中,我假设扩展名为“t3_local”
第1步
在ext_tables.sql文件中添加:
CREATE TABLE pages (
tx_t3local_special tinyint(4) DEFAULT '0' NOT NULL,
}
然后进入Extension Manager进入您的扩展并更新数据库以在pages表中创建新字段。
第2步
在ext_tables.php文件中添加:
$tempColumns = Array(
'tx_t3local_special' => Array(
'exclude' => 1,
'label' => 'Some label for special',
'config' => Array(
'type' => 'check',
'default' => 0
)
)
);
t3lib_div::loadTCA('pages');
t3lib_extMgm::addTCAcolumns('pages', $tempColumns, 1);
t3lib_extMgm::addToAllTCAtypes('pages', 'tx_t3local_special');
现在可以在后端使用了。清除TYPO3缓存后,您应该会看到页面属性中的复选框。现在我们只能用它在前端构建我们的菜单。
第3步
现在一切都取决于你想用这个开关做什么。假设你想为 li 添加一个类,这里有一个小技巧,如何允许使用几个这样的开关来累积不同的类。
NO.wrapItemAndSub.stdWrap {
prepend.cObject = LOAD_REGISTER
prepend.cObject {
special1class.cObject = TEXT
special1class.cObject {
value = special1-class
if.isTrue.field = tx_t3local_special
}
special2class.cObject = TEXT
special2class.cObject {
value = special2-class
if.isTrue.field = tx_t3local_special2
}
}
append = TEXT
append.value = <li class="clearfix {register:special1class} {register:special2class}">/li>
append.insertData = 1
}
注意强>
如您现在知道如何将切换添加到页面属性,您还可以使用它们来关闭/打开页面上的某些功能。例如,我使用这样的开关来打开/关闭页面的面包屑。在这个例子中,if复选框被检查off.g的面包屑。
为此,您必须记住将字段名称添加到typo3conf / localconf.php文件(或6.x中的LocalConfiguration.php)
$TYPO3_CONF_VARS['FE']['addRootLineFields'] .= ',tx_t3local_breadcrumb';
和TS:
lib.breadcrumb = COA
lib.breadcrumb.stdWrap.if.isFalse.data = page:tx_t3local_breadcrumb
lib.breadcrumb {
...
...
...
}