使用typoscript将菜单链接标题更改为图像

Bet*_*ide 0 menu typo3 typoscript

我的typo3网站有一个菜单,其中包含以下typoscript定义:

lib.footernav = HMENU
lib.footernav.special = directory
lib.footernav.special.value = 38
lib.footernav.entryLevel = 0
lib.footernav.1 = TMENU
lib.footernav.1.NO {
  ATagParams = class = "footer-link"
}
Run Code Online (Sandbox Code Playgroud)

menue工作得很好.我想要做的是,将链接文本更改为图像,如下所示:

<a class="footer-link" href="index.php?id=43&L=1">Facebook</a>
Run Code Online (Sandbox Code Playgroud)

<a class="footer-link" href="index.php?id=43&L=1"><img src="facebook.gif"/></a>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

如果它有帮助我也可以为这个facebook链接创建一个新菜单.

Jps*_*psy 6

我建议使用菜单目标页面的"媒体"字段来定义菜单中的哪些页面应使用图像显示.可以在页面属性的"资源"选项卡中找到"媒体"字段.它是您问题的完美解决方案,因为它允许您自由选择任何菜单项的任何图像:

对于要作为图像显示的菜单项,请使用相应菜单页的"媒体"字段并选择要使用的图像.对于要作为文本显示的所有菜单项,只需将"媒体"字段留空即可.

以下是创建该行为的TS代码:

  1 = TMENU
  1.NO {
    ATagParams = class="footer-link"

    # Replace menu item text with image if defined in page tab "Resources"-->"Media"
    stdWrap.override.cObject = COA
    stdWrap.override.cObject{
      10 = IMAGE
      10.file.import = uploads/media/
      10.file.import.field = media
      10.altText.field = title
    }

  }
Run Code Online (Sandbox Code Playgroud)


使用FAL更新TYPO3 6.2:

TYPO3 6.2包括FAL--一种新的媒体资源管理系统.由于页面属性的资源选项卡现在也基于FAL,因此您需要使用不同的TypoScript方法来访问这些图像.这是一个最新的解决方案:

1 = TMENU
1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
        wrapItemAndSub = <li>|</li>

        stdWrap.override.cObject = FILES
        stdWrap.override.cObject {
          references {
            table = pages
            fieldName = media
          }

          renderObj = IMAGE
          renderObj {
            file.import.data = file:current:uid
            file.treatIdAsReference = 1
            titleText.data = file:current:title // field:nav_title // field:title
            altText.data = file:current:alternative // field:nav_title // field:title
          }

          # start with first image
          begin = 0
          # show only one image
          maxItems = 1
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

该参数begin定义应使用多个图像中的哪一个(例如,如果您需要一个图像作为页面的标题背景而另一个图像作为菜单中的图标).

如果增加maxItems参数,将返回多个图像(如果在资源选项卡中定义了多个图像).

如果你想附加/添加的图像菜单文本,而不是取代它的,你必须改变stdWrap.override.cObjectafter.cObjectbefore.cObject在上面的代码.