1

在 TMENU 中,我只想对某些页面应用特殊包装。

所以

Home
-- This
-- That
-- Such
-----A
-----Thing

只有页面“Such”会有这种包装(带有一个特殊的类或一个用于 wrapItemsAndSub 的图标)。

理想情况下,这可以从页面树/CMS 中完成。或者通过pid。但我认为不可能以简单的方式进入 TMENU 吗?OptionSplit 不是一个选项,因为它只有几个特殊页面。

这可以做到吗?怎么做?

4

2 回答 2

4

您必须在此处使用 CASE 对象并将其应用于具有 stdWrap 的属性/包装。看看这个例子。

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 的元素使用这种方式。

于 2013-09-20T06:34:43.000 回答
2

顺便说一句:正如 pcampe 所说,当您选择类名时,它当然可以通过一些复选框甚至下拉菜单来完成更通用的操作。

这是复选框的简短教程。对于本教程,我假设扩展名是“t3_local”

步骤1

在 ext_tables.sql 文件中添加:

CREATE TABLE pages (
    tx_t3local_special tinyint(4) DEFAULT '0' NOT NULL,
}

然后进入扩展管理器进入您的扩展并更新数据库以在页面表中创建新字段。

第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
}

笔记

您现在知道如何将开关添加到页面属性,您还可以使用它们来关闭/打开页面上的某些功能。例如,我使用这样的开关来打开/关闭页面的面包屑。在此示例中,如果复选框被选中,则面包屑为关闭。

为此,您必须记住将字段名称添加到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 {
...
...
...
}
于 2013-09-22T09:45:33.393 回答