从 Silverstripe 文件选项卡中列出前 3 个最新的 pdf
List top 3 most recent pdfs from Silverstripe Files tab
我是 Silverstripe 的新手,不过,我有一些不错的 PHP 经验。
现在,我正在努力获取我在 Silverstripe CMS 的“文件”选项卡下上传的 PDF 文件。
我将它们存储在一个名为 "Newsletters," 的文件夹中,我想获取每个文件的标题(这样我就可以创建一个可下载的超链接)和上传日期。到目前为止,我已经找到了关于如何上传文件的教程,并且我找到了这段用于从上传目录中获取图像的代码:
function getFrontPageImages() {
$folder = DataObject::get_one("Folder", "Filename = 'assets/myfrontpageimages'");
return $folder ? DataObject::get("Image", "ParentID = '{$folder->ID}'") : false;
}
但这并不是我想要的,考虑到我想要获得 3 个 PDF。有没有关于如何做到这一点的好例子?
我猜它类似于 $[something].Title
和 $[something].LastEdited
(或类似的东西)?
在你的PHP(Page_Controller或子class,通常):
<?php
class Page_Controller extends ContentController {
public function FeaturedPDFs() {
$folder = Folder::get()->filter('Filename', 'assets/featured-pdfs')->first();
// Could do $folder->Children()->sort('Filename', 'ASC') to sort by filename, here I'm going to show the 3 most recently edited files
return $folder
->Children()
->sort('LastEdited', 'DESC')
->limit(3);
}
}
?>
在您的模板中(例如,在本例中,Page.ss):
<% if $FeaturedPDFs %>
<ul>
<% loop $FeaturedPDFs %>
<%-- Here, you're in the scope of a `File` object --%>
<li>$Title.XML (last edited on $LastEdited.Format('Y-m-d') at $LastEdited.Time)</li>
<% end_loop %>
<ul>
<% end_if %>
我是 Silverstripe 的新手,不过,我有一些不错的 PHP 经验。
现在,我正在努力获取我在 Silverstripe CMS 的“文件”选项卡下上传的 PDF 文件。
我将它们存储在一个名为 "Newsletters," 的文件夹中,我想获取每个文件的标题(这样我就可以创建一个可下载的超链接)和上传日期。到目前为止,我已经找到了关于如何上传文件的教程,并且我找到了这段用于从上传目录中获取图像的代码:
function getFrontPageImages() {
$folder = DataObject::get_one("Folder", "Filename = 'assets/myfrontpageimages'");
return $folder ? DataObject::get("Image", "ParentID = '{$folder->ID}'") : false;
}
但这并不是我想要的,考虑到我想要获得 3 个 PDF。有没有关于如何做到这一点的好例子?
我猜它类似于 $[something].Title
和 $[something].LastEdited
(或类似的东西)?
在你的PHP(Page_Controller或子class,通常):
<?php
class Page_Controller extends ContentController {
public function FeaturedPDFs() {
$folder = Folder::get()->filter('Filename', 'assets/featured-pdfs')->first();
// Could do $folder->Children()->sort('Filename', 'ASC') to sort by filename, here I'm going to show the 3 most recently edited files
return $folder
->Children()
->sort('LastEdited', 'DESC')
->limit(3);
}
}
?>
在您的模板中(例如,在本例中,Page.ss):
<% if $FeaturedPDFs %>
<ul>
<% loop $FeaturedPDFs %>
<%-- Here, you're in the scope of a `File` object --%>
<li>$Title.XML (last edited on $LastEdited.Format('Y-m-d') at $LastEdited.Time)</li>
<% end_loop %>
<ul>
<% end_if %>