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.

Template Questions /

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

Help with Conditional logic


Go to End
Reply


1130 Views

Avatar
Hello_electro

Community Member, 80 Posts

4 March 2011 at 7:24am

HI Everyone:

I have a notice page and notice holder which I pull data from and place on the home page.

I have them display based on the type of notice and if they are expired. I am trying to simply just place a line of text that states "no notices" if the notice type does not have any non expired pages.

Everything is successful except, because I am using a control to show the data, if I use an If Else statement, the message appears the total amount of times i have notices. so since I am allowing 3 notices max to appear, the "no notices" message will appear three times. Anyone have suggestions where I can prevent this. here is my code:

homepage.ss


<div id="campusNotices">
    <ul>	
       <% control SafetyNotices %>
          <% if InFuture(HomePageExpiration) %>
	      <% if NoticeType==Safety %>
              <li><a href="$Link"><span>$NoticeDate&#58; $Title</span></a></li>
              <% end_if %>
         <% end_if %>
      <% end_control %>
</ul>
</div>

homepage.php


public function GetCampusNoticePage(){
    return DataObject::get("CampusNoticePage");

}

function SafetyNotices($num=5) {
    $Notices = DataObject::get_one("CampusNoticeHolder");
    return ($Notices) ? DataObject::get("CampusNoticePage", "ParentID = $Notices->ID", "NoticeDate DESC", "", $num) : false; 
}

page.php < this is in the class section to allow this function to be used sitewide


public function InPast($fieldname) {
    return $this->$fieldname < date('Y-m-d H:i:s');
}

public function InFuture($fieldname) {
    return $this->$fieldname > date('Y-m-d H:i:s');
}

campusnoticepage.php


class CampusNoticePage extends Page {

	public static $db = array(
		'NoticeDate' => 'Date',
		'NoticeType' => "Enum('Traffic, Safety','Traffic')",
		'HomePageExpiration' => 'Date',
	);

	public static $has_one = array(
		
	);

 function getCMSFields() {
      $fields = parent::getCMSFields();
		  $fields->addFieldToTab("Root.Content.Main", new DatePickerField('NoticeDate'), 'Content');
		  $fields->addFieldToTab("Root.Content.Main", new DropdownField( 'NoticeType' , 'Notice Type', array( 
				'Traffic' => 'Traffic', 
				'Safety' => 'Safety'	
				),$this->NoticeType), 'Content'); 
		 $fields->addFieldToTab("Root.Content.Main", new DatePickerField('HomePageExpiration'), 'Content');	 
		 $fields->removeFieldFromTab("Root.Content.Main","NavigationOrder");
		 $fields->removeFieldFromTab("Root.Content.Main","ThirdLevelTitle");
		 $fields->removeFieldFromTab("Root.Content.Main","ThirdLevelDesc");
		
	
	      
		  return $fields;
   }

I know I am using the hell out of the IF?else statements so any suggestions would be great!