我正在使用tx_news扩展名。当在页面上使用插件并且设置包含特定字符的标题时,我想用现有的新闻文章的数量替换该字符。
例如,编辑器维护there are # articles for your selected category
,用户应该看到there are 8 articles for your selected category
。我希望你能得到,我想要完成的任务。
我的TypoScript:
lib.anzahlNews = CONTENT
lib.anzahlNews {
table = tx_news_domain_model_news
select {
selectFields = COUNT(title) AS anzahl
pidInList = 23
where = archive = 0
}
renderObj = COA
renderObj.wrap = <span class="item_count"> | </span>
renderObj {
10 = TEXT
10.field = anzahl
}
}
lib.stdheader {
# some ohter unrelated stuff I'm doing
stdWrap {
# clear old datawrap
dataWrap >
innerWrap.cObject = COA
innerWrap.cObject {
5 = TEXT
5.value = <header class="csc-header
10 = TEXT
10 {
value = news-headline
noTrimWrap = | ||
if {
value = news_pi1
equals.field = list_type
}
}
15 = TEXT
15.value = ">
20 = TEXT
20 {
value = | foo # bar
stdWrap.replacement {
10 {
search.char = 35
replace < lib.anzahlNews
}
}
if {
value = news_pi1
equals.field = list_type
}
}
25 = TEXT
25.value = </header>
}
}
}
所以我在这里有两个问题:
#
和foo
之间的bar
。 (foo CONTENT bar
中的结果。)但实际标题(管道)中的哈希值根本没有替换。提前抱歉,因为我只是TypoScript的初学者。
有人可以告诉我我错在哪里并告诉我方向吗? 非常感谢你。
// edit(2014-05-07 14:09):
我发现,replace
只期待字符串 - 因此我在结果中看到“ CONTENT ”。
我现在尝试使用stdWrap.split
拆分#
标题字段的内容,然后从我的lib.anzahlNews
添加内容,如下所示:
20 = TEXT
20 {
value = | foo # bar
stdWrap {
split {
token.char = 35
# rendering of content
cObjNum = 1 || 2
1.current = 1
1.wrap = |
1.append < lib.anzahlNews
2.current = 1
2.wrap = |
}
if {
value = news_pi1
equals.field = list_type
}
}
}
到目前为止,这是有效的,因为它解决了我第一个获得所需价值的问题。但第二个问题仍然存在,标题字段的实际内容根本没有触及。
我需要操纵header-field本身的值。我怎么能做到这一点?
答案 0 :(得分:0)
根据tsref replacement
附带一个stdWrap。所以你可能想试试这个:
....20 = TEXT
....20 {
replacement {
10 {
search.char = 35
replace.cObject < lib.anzahlNews
}
}
}
但由于上述内容并未替换标题文字中的#,请尝试将您的第二次尝试应用于h2标题:
lib.char_replace {
token.char = 35
cObjNum = |*||*| 1 || 2
1.current = 1
2 < .1
}
lib.stdheader.10.2.split < lib.char_replace
lib.stdheader.10.2.split.1.append < lib.anzahlNews
也许你可以通过以下方式获得所有头条新闻:
lib.stdheader.10.setCurrent.split < lib.char_replace
lib.stdheader.10.setCurrent.split.1.append < lib.anzahlNews