在 typo3 中带有 fontawesome 图标的菜单
menu with fontawesome icons in typo3
我尝试在 typo3 8.7.13 中使用 fontawesome 图标实现一个菜单。
我的想法是用 tx_fontawesome_icon 字段扩展 table 页面 - 没问题 - 它可以在页面属性中使用,也保存在数据库中。
但如何在打字稿中使用它?
[ts]
lib.mainnav_mobile = HMENU
lib.mainnav_mobile {
wrap = <ul>|</ul>
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub =<li>|</li>
stdWrap.wrap = <i class="fas fa-home fa-2x"></i>|
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
ATagParams = class="home-link"
}
}
}
[/ts]
谢谢
沃尔克
我假设您在字段中存储了完整的图标名称。如果您可能会跳过前缀,请在包装中构建前缀。
你的 .stdWrap
尝试是可能的,所以我更喜欢 属性:.before
你可以这样使用(填写菜单定义的其余部分):
:
NO {
:
before.cObject = TEXT
before.cObject {
field = tx_fontawesome_icon
## have a default icon:
ifEmpty = fa_home
noTrimWrap = |<i class="fas | fa-2x"></i>|
# if you want the icon to be linked too:
typoLink.parameter.field = uid
}
}
使用 .noTrimWrap
这样您就可以保留 icon-name.
前后的空格
如果图标应该只在一个 link 内,则需要将图标添加到项目文本(页面标题)中。
因此,您一开始就使用 .stdWrap.wrap
。但您需要从 cObject 构建包装(见上文)或使用数据包装:
:
NO {
:
stdWrap.dataWrap = <i class="fas {field:tx_fontawesome} fa-2x"></i>|
:
}
我的解决方案是:
lib.mainnav_mobile = HMENU
lib.mainnav_mobile {
wrap = <ul>|</ul>
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub =<li>|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = description // subtitle // title
ATagParams = class="home-link"
ATagBeforeWrap = 1
stdWrap.wrap.cObject = TEXT
stdWrap.wrap.cObject {
field = tx_fontawesome_icon
## have a default icon:
ifEmpty = fa-home
noTrimWrap = |<i class="fas | fa-2x"></i> |
}
}
感谢您的帮助!
沃尔克
我尝试在 typo3 8.7.13 中使用 fontawesome 图标实现一个菜单。 我的想法是用 tx_fontawesome_icon 字段扩展 table 页面 - 没问题 - 它可以在页面属性中使用,也保存在数据库中。
但如何在打字稿中使用它?
[ts]
lib.mainnav_mobile = HMENU
lib.mainnav_mobile {
wrap = <ul>|</ul>
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub =<li>|</li>
stdWrap.wrap = <i class="fas fa-home fa-2x"></i>|
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
ATagParams = class="home-link"
}
}
}
[/ts]
谢谢 沃尔克
我假设您在字段中存储了完整的图标名称。如果您可能会跳过前缀,请在包装中构建前缀。
你的 .stdWrap
尝试是可能的,所以我更喜欢 属性:.before
你可以这样使用(填写菜单定义的其余部分):
:
NO {
:
before.cObject = TEXT
before.cObject {
field = tx_fontawesome_icon
## have a default icon:
ifEmpty = fa_home
noTrimWrap = |<i class="fas | fa-2x"></i>|
# if you want the icon to be linked too:
typoLink.parameter.field = uid
}
}
使用 .noTrimWrap
这样您就可以保留 icon-name.
如果图标应该只在一个 link 内,则需要将图标添加到项目文本(页面标题)中。
因此,您一开始就使用 .stdWrap.wrap
。但您需要从 cObject 构建包装(见上文)或使用数据包装:
:
NO {
:
stdWrap.dataWrap = <i class="fas {field:tx_fontawesome} fa-2x"></i>|
:
}
我的解决方案是:
lib.mainnav_mobile = HMENU
lib.mainnav_mobile {
wrap = <ul>|</ul>
1 = TMENU
1 {
expAll = 1
NO = 1
NO {
wrapItemAndSub =<li>|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = description // subtitle // title
ATagParams = class="home-link"
ATagBeforeWrap = 1
stdWrap.wrap.cObject = TEXT
stdWrap.wrap.cObject {
field = tx_fontawesome_icon
## have a default icon:
ifEmpty = fa-home
noTrimWrap = |<i class="fas | fa-2x"></i> |
}
}
感谢您的帮助! 沃尔克