我的主要项目在TYPO3
上有一个旧项目,我必须对此进行修改,但我不知道这个CMS
(但作为一名网络开发人员,我知道PHP)。如果客户来自特定网址,我必须不显示子菜单(如www.website/specific /)。
因为我从未使用过TYPO3
我试过这样的事情:
我创建了$_session
的var,如果网址preg_match
包含typo3_src-4.5.29/index.php
中的特定网址
我在t3lib中创建custom_file.php
,我使用USER_INT
http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/UserAndUserInt/Index.html调用,
如果没有$_session
的var
我创建js_custom_file.php
,我在这里使用option2调用http://huuah.com/including-javascript-or-css-in-your-typo3-template/,此文件用于特定页面上的重定向
在db中我改变了两行关于菜单的部分子菜单:
includeLibs.session = t3lib/custom_session_owner.php
page = PAGE
page.10 = USER_INT
page.10 {
userFunc = getOwner
}
page.includeJS {
custom_owner = t3lib/js_custom_owner.php
custom_owner.type = application/x-javascript
}
我知道这很难看,但我不知道怎么办。更多的是,我认为下次我将负责这个网站,它将在另一个CMS上重建。
因此,如果某人有一个肮脏的快速技巧,我将感激不尽:)
答案 0 :(得分:1)
您可以通过向TypoScript配置的菜单构建部分添加条件来实现此目的。 http://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Index.html
基本示例可能如下所示:
[globalString = IENV:HTTP_REFERER = http://www.google.com/*]
# this section is only evalutated if the referer is set to www.google.com
lib.menu.special.value = 1234
[GLOBAL]
您也可以使用正则表达式。 http://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Reference/Index.html#condition-globalstring
请注意,此类条件只能在TS配置的GLOBAL范围内使用,这意味着它不能位于{}
内。
另请注意,引荐来自用户,这意味着它可以面对用户想要的任何方式。你无法确定地找出用户来自哪里。
当然,您可以在TS配置中的任何位置使用这样的条件,因此也可以作为USER_INT
内容对象的包装。