如何将当前菜单元素的页面ID传递给用户函数?

时间:2012-07-11 17:31:08

标签: typo3 typoscript

我正在处理以下菜单:

lib.content = HMENU
lib.content {
  special = directory
  special.value.data = page:id

  wrap   = <div id="productNavigator">|</div>
  expAll = 1

  1 = TMENU
  1 {
    noBlur = 1
    expAll = 1

    NO {
      stdWrap.cObject = COA
      stdWrap.cObject {

        10 = IMAGE
        10 {
          file {
            import.cObject = USER
            import.cObject {
              userFunc = tx_dam_pages->get_media_file
              uid      = ???
              listNum  = 0
              slide    = 1
            }
          }
        }

        30 = TEXT
        30.field = title
        30.wrap = <span class="text"><span>|</span></span>
      }
    }

我们的想法是将分配给页面的DAM图像拉入菜单。但我不知道如何将menu元素的id传递给用户函数。

如果我添加一个常量值,它的效果很好,每个菜单项都会获得相同的图像。但我希望每个菜单项都有链接到的页面的图像。

2 个答案:

答案 0 :(得分:1)

您可以通过uid.field = uid获取该页面的内容。在渲染过程中,你总是加载页面,然后渲染。

但我不希望slide = 1有效。是吗?

    10 = IMAGE
    10 {
      file {
        import.cObject = USER
        import.cObject {
          userFunc = tx_dam_pages->get_media_file
          uid.field = uid
          listNum  = 0
          slide    = 1
        }
      }
    }

如果这不起作用,请检查uid的静态值是否有效。

顺便说一下。以前不知道tx_dam_pages->get_media_file。 DAM附带了吗?

答案 1 :(得分:1)

FrançoisSuter还在TYPO3-english邮件列表中提供了此解决方案:

NO.before.cObject = IMAGE
NO.before.cObject.file.import.cObject = USER
NO.before.cObject.file.import.cObject {
    userFunc = tx_dam_tsfe->fetchFileList
    refTable = pages
    refField = tx_dampages_files
}

这在我的案例中完美无缺。