1

我正在处理以下菜单:

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 图像拉到菜单中。但我不知道如何将菜单元素的 id 传递给用户函数。

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

4

2 回答 2

1

您可以通过 获取页面的 uid 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 一起发货?

于 2012-07-12T08:33:19.250 回答
1

François Suter 也在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
}

这在我的情况下非常有效。

于 2012-07-12T09:41:31.410 回答