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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

Our old forums are still available as a read-only archive.

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

Need help with homepage function


Go to End


1063 Views

Avatar
NickJacobs

Community Member, 148 Posts

30 May 2008 at 9:48pm

Edited: 30/05/2008 9:52pm

Hi, I'm pretty new to this and having some trouble implementing a function on the homepage which lists pages from another section. I've got the news list sorted from the tutorials but can't seem to replicate it ... and trying to find documentation is a nightmare!

I've got a DocumentHolder type and a DocumentPage type:

*** in DocumentHolder.php ***

class DocumentHolder extends Page {	
	static $db = array();	
	static $has_one = array();   
        static $allowed_children = array('DocumentPage');  
}

class DocumentHolder_Controller extends Page_Controller {}

*** in DocumentPage.php ***

class DocumentPage extends Page {
   static $db = array(
   'PDFdocDesc' => 'Text',
   'ShowOnHomePage' => 'Text'
   );
   static $has_one = array(
      'PDFdoc' => 'File'
   );
   	
   function getCMSFields() {
      	$fields = parent::getCMSFields();
	$fields->addFieldToTab("Root.Content.Main", new TextField('PDFdocDesc',"Document Description"));
      	$fields->addFieldToTab("Root.Content.Main", new FileIFrameField('PDFdoc',"PDF Document")); 	
		$fields->addFieldToTab("Root.Content.Main", new CheckboxField('ShowOnHomePage',"Show this on homepage?")); 	
   		$fields->removeFieldFromTab("Root.Content.Main", "Content");
				
      return $fields;
   }
}
 
class DocumentPage_Controller extends Page_Controller {
	
}

and, I'm pretty sure this is where I'm getting trouble because I just copied the news one & I don't fully understand it yet :)

class HomePage_Controller extends ContentController {
	function init() {
		parent::init();
		
		}
		
	function LatestNews($num=5) {
  	$news = DataObject::get_one("NewsIntroPage");
  	return ($news) ? DataObject::get("NewsArticlePage", "ParentID = $news->ID", "Date DESC", "", $num) : false;
}

	function HomeDocs($num=5) {
 	 $doccys = DataObject::get_one("DocumentHolder");
 	 return ($doccys) ? DataObject::get("DocumentPage", "ParentID = $doccys->ID", "Date DESC", "", $num) : false;
}
}

In my sidebar I'm trying to do this:

<% control HomeDocs %> 
		 <% if $ShowOnHomePage %>	
    <li ><a href="$PDFdoc.filename" target="_blank" title="Download this file">$Title t</a></li>
		<% end_if %>
    	<% end_control %>

any help with this would be much appreciated. Thanks