从另一个函数 [SilverStripe] 调用 BlogEntries 函数
Calling the BlogEntries function from another function [SilverStripe]
我正在使用 SilverStripe 中的博客模块。在模板中,它会按应有的方式遍历博客条目功能。但是,我也在使用 API's,我也在博客持有者中循环访问它。
<div class="blog-section">
<% loop $getSlackMessage %>
<p id="author-tag">$UserName <span id="slackTimestamp">$Created.Format(h:i A)</span></p>
<p id="postDescription">$Text</p>
<% end_loop %>
</div>
<div class="blog-section">
<% loop $getLatestTracks %>
<p id="track-name">$Name </p>
<% end_loop %>
</div>
<% loop BlogEntries %>
<article class="col-md-3 item" section-type="article">
<% include BlogSummary %>
</article>
<% end_loop %>
所以你可以看到我在这里循环了 3 次,这有点烦人,因为在每个博客持有者页面上都可以看到 $getSlackMessage
和 $getLatestTracks
。这意味着当我转到第 2 页时,我会看到与第 1 页上看到的相同的内容,下面还有几篇不同的文章。
我如何合并所有这些循环并让 SilverStripe 将它们吐出为一个大循环,然后我可以按创建时间排序?
如果您还需要什么,请告诉我,谢谢。
如果你想要一个 returns getSlackMessage
和 getLatestTracks
合并结果的函数,那么你可以这样写:
function consolidatedF() {
$slackMessages = $this->getSlackMessage();
$latestTracks = $this->getLatestTracks();
$resultList = new ArrayList($slackMessages->toArray());
$resultList->merge($latestTracks->toArray());
return $resultList;
}
然后在模板中将其循环为 <% loop $consolidatedF.Sort(Created, ASC) %>
我正在使用 SilverStripe 中的博客模块。在模板中,它会按应有的方式遍历博客条目功能。但是,我也在使用 API's,我也在博客持有者中循环访问它。
<div class="blog-section">
<% loop $getSlackMessage %>
<p id="author-tag">$UserName <span id="slackTimestamp">$Created.Format(h:i A)</span></p>
<p id="postDescription">$Text</p>
<% end_loop %>
</div>
<div class="blog-section">
<% loop $getLatestTracks %>
<p id="track-name">$Name </p>
<% end_loop %>
</div>
<% loop BlogEntries %>
<article class="col-md-3 item" section-type="article">
<% include BlogSummary %>
</article>
<% end_loop %>
所以你可以看到我在这里循环了 3 次,这有点烦人,因为在每个博客持有者页面上都可以看到 $getSlackMessage
和 $getLatestTracks
。这意味着当我转到第 2 页时,我会看到与第 1 页上看到的相同的内容,下面还有几篇不同的文章。
我如何合并所有这些循环并让 SilverStripe 将它们吐出为一个大循环,然后我可以按创建时间排序?
如果您还需要什么,请告诉我,谢谢。
如果你想要一个 returns getSlackMessage
和 getLatestTracks
合并结果的函数,那么你可以这样写:
function consolidatedF() {
$slackMessages = $this->getSlackMessage();
$latestTracks = $this->getLatestTracks();
$resultList = new ArrayList($slackMessages->toArray());
$resultList->merge($latestTracks->toArray());
return $resultList;
}
然后在模板中将其循环为 <% loop $consolidatedF.Sort(Created, ASC) %>