Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

What do I need and how do I do this on Silverstripe?

Go to End

3 Posts   1015 Views


Community Member, 70 Posts

24 October 2012 at 10:42pm

I am still trying to learn how to do things on Silverstripe but the hardest thing when you are teaching yourself is what you need to ask for!?

I want to create pages with articles/news items on as shown in this link ...

... say 5 pages and then a main page with feeds on as shown in this link ...

I have absolutely no idea where to start!! Please could you point me in the right direction and keep it simple, I am in the early stages of the learning process :-)


Community Member, 49 Posts

24 October 2012 at 11:12pm

Edited: 24/10/2012 11:59pm

It's so easy when you know how. The problem I also find with SilverStripe is finding the information, especially if you are not a programmer or part of the team.

Presuming you are using SS3 and you added your news articles to the CMS page with a date, I create a news template with...

   static $db = array(
   		'Date' => 'Date'  

and a nice way to show the date in the CMS...

   	function getCMSFields() {
		$fields = parent::getCMSFields();	
			$datefield = new DateField('Date', 'Publication date');
			$datefield->setConfig('showcalendar', true);
			$datefield->setConfig('showdropdown', true);
			$datefield->setConfig('dateformat', 'dd/MM/YYYY');				
			$fields->addFieldToTab('Root.Main', $datefield, 'Content');


You need to display snippets from the page above in the tree then create a template called NewsHolder simply in the SS file template add...

        <% loop Children %>

              <div class="date">
              <p>$Content.FirstParagraph </p>
              <p><a href="$Link"  class="more">Read more</a></p>

        <% end_loop %>

..but if you want to diplay snippets on another template like the homepage you need to create a function I call it LatestNews function and call this from the SS. The function will call the NewsHolder you created above.

            <% loop LatestNews %>
            <div class="news-item jlink">
                <p><span class="date">$Date.Nice</span><br>
                <a class="more" href="$Link">Read more</a> - $Content.FirstSentence</p>
            <% end_loop %>

...and the function you need goes is the PHP of the template in the mysite/code such as hompage.php inside the class HomePage extends Page {...

	// show news
	function LatestNews($num=2) {
		$news = DataObject::get_one("NewsHolder");
		return ($news) ? DataObject::get("NewsArticle", "ParentID = $news->ID", "Date DESC", "", $num) : false;

That should be more than enough to get you going if not go back to the basic tutorials. Good luck.

p.s. I would re-write the topic title to explain the content of the posts so that others know what this thread is about.


Community Member, 68 Posts

27 October 2012 at 2:44pm


The query is even easier to write since SS3 :

function LatestNews() {
return NewsArticle::get()->sort('Date','DESC')->limit(2);