Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 如何获得;leveltitle“;通过打字输入的纸牛产品?_Typo3_Typoscript_Typo3 9.x_Typo3 10.x - Fatal编程技术网

Typo3 如何获得;leveltitle“;通过打字输入的纸牛产品?

Typo3 如何获得;leveltitle“;通过打字输入的纸牛产品?,typo3,typoscript,typo3-9.x,typo3-10.x,Typo3,Typoscript,Typo3 9.x,Typo3 10.x,我有一个菜单(HMENU withspecial=updated),它提供了来自3个类别的最新子页面和子页面。 在后端,页面结构如下所示: 除了标题之外,我还想输出相应类别的名称(父级别1页面) 这是我的打字尝试: lib.myMenu = HMENU lib.myMenu { special = updated special{ value.field = 10,11,12 beginAtLevel = 1 limit = 99

我有一个菜单(HMENU with
special=updated
),它提供了来自3个类别的最新子页面和子页面。 在后端,页面结构如下所示:

除了标题之外,我还想输出相应类别的名称(父级别1页面)

这是我的打字尝试:

lib.myMenu = HMENU
lib.myMenu {
    special = updated
    special{
        value.field = 10,11,12
        beginAtLevel = 1
        limit = 99
    }
    1 = TMENU
    1{
        NO{
            doNotLinkIt = 1
            stdWrap.cObject = COA
            stdWrap.cObject {
                10 = TEXT
                10{
                    wrap = <h3>|</h3>
                    field = seo_title // title
                    typolink.parameter.field = uid
                }

                20 = HMENU
                20{
                    wrap = <div class="category attempt-1">|</div>
                    special = rootline
                    special.range = 1|1
                    special.value.field = uid # does not work
                    1 = TMENU
                    1.NO.allWrap = |
                }

                30 = TEXT
                30{
                    wrap = <div class="category attempt-2">|</div>
                    data = leveltitle : 1 # does not work as expected
                }
            }
        }
    }
}
lib.myMenu=humenu
lib.myMenu{
特殊=更新
特别的{
value.field=10,11,12
beginAtLevel=1
极限=99
}
1=t菜单
1{
没有{
doNotLinkIt=1
stdWrap.cObject=COA
stdWrap.cObject{
10=文本
10{
包裹=|
字段=搜索引擎优化标题//标题
typlink.parameter.field=uid
}
20=汉努
20{
包裹=|
特殊=根线
特殊范围=1 | 1
special.value.field=uid#不起作用
1=t菜单
1.NO.allWrap=|
}
30=文本
30{
包裹=|
data=leveltitle:1#未按预期工作
}
}
}
}
}
不幸的是,它不起作用,因为

  • special=rootline
    不支持
    special.value
  • data=leveltitle:1
    使用当前页面的ID,而不是TMENU项ID
  • 有没有人有其他方法可以让我使用打字稿获得相应类别的标题

    编辑:背景信息/所需内容
    使用此菜单,我打算替换现有项目的新闻模块ext:news。现在使用的是页面而不是新闻记录,此菜单创建列表视图。当然,将添加一个打字脚本页面浏览器。

    我不会重新生成完整的菜单项生成(
    NO.doNotLinkIt=1

    只需使用
    NO.after.cObject=COA

    如果希望获得当前页面的标题,则
    leveltitle:1
    是正确的

    如果显示根行菜单,情况也一样:它是为当前页面生成的

    如果您想要另一个页面的levelfield,您需要自己构建它

    • 在打字脚本中,可以使用userfunction。(有一个核心函数用于获取给定页面id的根行)

    • 如果使用流体生成菜单,则可以使用viewhelper。(您可能从
      ext:vhs
      中获得灵感)


    编辑:

    您可以将所需信息直接存储在
    页面
    记录中

    向记录中添加新字段(或使用任何未使用的字段)

    然后确保每个类别页面都包含一些页面TS\U配置:

    TCADefaults.pages.<yourfield> = CategoryName
    
    TCADefaults.pages.=类型名
    
    使用此配置,下面的每个新页面将自动设置此值。
    当然,您需要手动或通过一些手动查询为所有现有页面设置这些值

    如果要阻止编辑器更改此值,则需要从编辑表单中删除该字段,并在首页上显示此TSConfig:

    TCEForm.pages.<yourfield>.hide= 1
    
    TCEForm.pages..hide=1
    
    我不会重新生成完整的菜单项生成(
    NO.doNotLinkIt=1

    只需使用
    NO.after.cObject=COA

    如果希望获得当前页面的标题,则
    leveltitle:1
    是正确的

    如果显示根行菜单,情况也一样:它是为当前页面生成的

    如果您想要另一个页面的levelfield,您需要自己构建它

    • 在打字脚本中,可以使用userfunction。(有一个核心函数用于获取给定页面id的根行)

    • 如果使用流体生成菜单,则可以使用viewhelper。(您可能从
      ext:vhs
      中获得灵感)


    编辑:

    您可以将所需信息直接存储在
    页面
    记录中

    向记录中添加新字段(或使用任何未使用的字段)

    然后确保每个类别页面都包含一些页面TS\U配置:

    TCADefaults.pages.<yourfield> = CategoryName
    
    TCADefaults.pages.=类型名
    
    使用此配置,下面的每个新页面将自动设置此值。
    当然,您需要手动或通过一些手动查询为所有现有页面设置这些值

    如果要阻止编辑器更改此值,则需要从编辑表单中删除该字段,并在首页上显示此TSConfig:

    TCEForm.pages.<yourfield>.hide= 1
    
    TCEForm.pages..hide=1
    
    我找到了一个纯打字稿解决方案,它可能不是很优雅,但可以工作:

    lib.myMenu = HMENU
    lib.myMenu {
        special = updated
        special{
            value.field = 10,11,12
            beginAtLevel = 1
            limit = 99
        }
        1 = TMENU
        1{
            NO{
                doNotLinkIt = 1
                stdWrap.cObject = COA
                stdWrap.cObject {
                    10 = TEXT
                    10{
                        wrap = <h3>|</h3>
                        field = seo_title // title
                        typolink.parameter.field = uid
                    }
    
                    20 = HMENU
                    20{
                        wrap = <div class="category">|</div>
                        special = list
                        special.value.field = pid
                        1 = TMENU
                        1{
                            NO{
                                doNotLinkIt = 1
                                stdWrap.override{
                                    # Overwrite it if we are not yet at the category level
                                    if{
                                        # The ID of the page parent to the categories ("Website") is 1618
                                        equals = 1618
                                        value.field = pid
                                        negate = 1
                                    }
                                    cObject = HMENU
                                    cObject{
                                        special = list
                                        special.value.field = pid
                                        1 = TMENU
                                        1.NO.doNotLinkIt = 1
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    lib.myMenu=humenu
    lib.myMenu{
    特殊=更新
    特别的{
    value.field=10,11,12
    beginAtLevel=1
    极限=99
    }
    1=t菜单
    1{
    没有{
    doNotLinkIt=1
    stdWrap.cObject=COA
    stdWrap.cObject{
    10=文本
    10{
    包裹=|
    字段=搜索引擎优化标题//标题
    typlink.parameter.field=uid
    }
    20=汉努
    20{
    包裹=|
    特殊=列表
    special.value.field=pid
    1=t菜单
    1{
    没有{
    doNotLinkIt=1
    stdWrap.override{
    #如果我们尚未处于类别级别,请覆盖它
    如果{
    #类别(“网站”)的父页面ID为1618
    等于1618
    value.field=pid
    
    10 = COA
    10 {
        ### left menu table column
        10 = LOAD_REGISTER
        10 {
            ulClass = col-left
        }
    
        ### right menu table column
        20 = LOAD_REGISTER
        20 {
            ulClass = col-right
        }
    
        30 = HMENU
        30 {
            special = list
            special.value = 1
            1 = TMENU
            # ...
            3 = TMENU
            3 {
                stdWrap {
                    preCObject = COA
                    preCObject {
                        10 = RESTORE_REGISTER
                    }
                    dataWrap = <ul class="{register:ulClass}">|</ul>
                }
                wrap =
                SPC = 1
                SPC {
                    allStdWrap {
                        replacement {
                            10 {
                                search = ---
                                replace =
                            }
                        }
                        dataWrap = </ul>|<ul class="{register:ulClass}">
                    }
                }
            }
        }
    }