我使用銀條紋,我真的很困惑。我創建了Holder和Page類以及他們的.ss文件。銀條不使用自定義模板
mysite的/代碼/ NewsPage.php
class NewsPage extends Page {
static $db = array('Date' => 'Date', 'Author' => 'Text');
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields -> addFieldToTab('Root.Main', $dateField = new DateField('Date', 'Date'), 'Content');
$dateField -> setConfig('showcalendar', true);
$fields -> addFieldToTab('Root.Main', new TextField('Author', 'Article author'), 'Content');
return $fields;
}
}
class NewsPage_Controller extends Page_Controller {
public function init() {
parent::init();
}
}
mysite的/代碼/ NewsHolder.php
class NewsHolder extends Page {
static $allowed_children = array('NewsPage');
}
class NewsHolder_Controller extends Page_Controller {
public function NewsList() {
$holder = NewsHolder::get()->filter('ID', $this->ID);
return ($holder) ? NewsPage::get()->filter('ParentID', $this->ID)->sort('Date DESC')->limit(3) : false;
}
}
模板/佈局/ NewsPage.ss
<article>
<h2>$Title</h2>
<div class="content">
$Content
</div>
<p class="author">
$Author
</p>
<p class="info">
$Date.Format("d.m.Y")
</p>
</article>
個
模板/佈局/ NewsHolder.ss
<% loop $NewsList %>
<article>
<h2><a href="$Link">$Title</a></h2>
<p class="demo">
$Content.FirstParagraph ...
</p>
</article>
<% end_loop %>
這些類是文章和工作正常。我將這些代碼複製到我想要的圖片的GalleryPage和GalleryHolder中。問題是Silverstripe不使用GalleryHolder.ss,而是使用默認的Page.ss模板。
我不明白爲什麼。對於NewsPage.ss和NewsHolder.ss,它工作正常,但在另一個類(GalleryPage和GalleryHolder)中完全相同的代碼使用默認的Page.ss.代碼是一樣的,我只是將所有NewsPage或NewsHolder字符串更改爲GalleryPage和GalleryHolder。
編輯:爲庫頁
的mysite /代碼複製代碼/ GalPage.php
class GalPage extends Page {
static $db = array('Date' => 'Date', 'Author' => 'Text');
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields -> addFieldToTab('Root.Main', $dateField = new DateField('Date', 'Date'), 'Content');
$dateField -> setConfig('showcalendar', true);
$fields -> addFieldToTab('Root.Main', new TextField('Author', 'Article author'), 'Content');
return $fields;
}
}
class GalPage_Controller extends Page_Controller {
public function init() {
parent::init();
}
}
的mysite /代碼/ GalHolder.php
<?php
class GalHolder extends Page {
static $allowed_children = array('GalPage');
}
class GalHolder_Controller extends Page_Controller {
public function NewsssList() {
$holder = GalHolder::get()->filter('ID', $this->ID);
return ($holder) ? GalPage::get()->filter('ParentID', $this->ID)->sort('Date DESC')->limit(3) : false;
}
}
模板/佈局/ GalPage.ss
<article>
<h2>$Title</h2>
<div class="content">
$Content
</div>
<p class="author">
$Author
</p>
<p class="info">
$Date.Format("d.m.Y")
</p>
</article>
模板/佈局/ GalHolder.ss
<% loop $NewsssList %>
<article>
<h2><a href="$Link">$Title</a></h2>
<p class="demo">
$Content.FirstParagraph ...
</p>
</article>
<% end_loop %>
能否請您給我一些建議如何解決這一問題?
您是否在頁面上調用了?flush = all? – 3dgoo
如果你的問題是GalleryPage和GalleryHolder發佈這些頁面的代碼,而不是News。也許我們會挑錯一些。 – 3dgoo
是的,我調用了flush,我檢查了語法,我不知道爲什麼它是錯誤的。我還更新了代碼庫文件的代碼 –