gpt4 book ai didi

SilverStripe 模板:显示 DataObject::Count 而不重复

转载 作者:行者123 更新时间:2023-12-04 04:17:46 24 4
gpt4 key购买 nike

我有一个页面,这个页面有很多,一个或没有评论。有一次我只想显示评论的数量,而不是遍历所有评论。然而,由于翻译需要区分评论计数的两个复数版本,所以简单调用 $Comment.Count 就不行了。由于翻译器组件似乎没有任何复数支持,我需要在模板级别进行。

到目前为止我得到的是这个:

<% if Comments %>
<% control Comments %>
<span class="comments">
<% if Count == 1 %> ein Kommentar<% else %>$Count Kommentare<% end_if %></span>
<% end_control %>
<% end_if %>

这有效但会重复 Count-Times。有解决方法吗?我知道可以在我的 Page 类中创建一个函数,例如

function CommentCount(){
return $this->Comments->Count();
}

但这感觉有点乏味。

最佳答案

我做了一个小装饰器,因为这种事情让我很烦。

对于这么小的东西来说它可能有点重量级,但您可以轻松地扩展它来提供您需要的东西。

基本上它向 DataObjectSet 添加了一个方法,因此您可以:

$Comments.Count $Comments.Plural(SingularWord, PluralWord)

目前,如果您不提供 PluralWord,它会尝试使用典型的英语拼写更改来猜测复数。

代码在这里: https://github.com/lingo/silverstripe-bits-and-bobs/blob/master/code/Pluraliser.php

帮助和自述文件在这里: https://github.com/lingo/silverstripe-bits-and-bobs/

关于SilverStripe 模板:显示 DataObject::Count 而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com