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.

Archive

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

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

Need help with homepage function


Reply

779 Views

Avatar
NickJacobs

30 May 2008 at 9:48pm (Last edited: 30 May 2008 9:52pm), Community Member, 144 Posts

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