|  | <?php | 
						
						
							|  | 
 | 
						
						
							|  | if(!defined('QUINTACMS') ) die("No quinta."); | 
						
						
							|  | 
 | 
						
						
							|  | 	/** | 
						
						
							|  | 	* Class ContentItemController - provids display of a content item | 
						
						
							|  | 	* This class provides display of a ContentItem from the database - it is rendered | 
						
						
							|  | 	* by a ContentBlockController template, which must always exist as a parent. The content | 
						
						
							|  | 	* block view creates this with a reference to itself and a ContentItem ORM object drawn | 
						
						
							|  | 	* from the content_item table. Here we instantiate the panels that display the content item | 
						
						
							|  | 	* fields which are rendered in the template according to active flags. Title, Author, Description | 
						
						
							|  | 	* and the other fields are optionally rendered - this behaviour can be configured from the | 
						
						
							|  | 	* administrative interface. | 
						
						
							|  | 	* | 
						
						
							|  | 	*@author Erik Winn <sidewalksoftware@gmail.com> | 
						
						
							|  | 	* | 
						
						
							|  | 	*@version 0.3 | 
						
						
							|  | 	* | 
						
						
							|  | 	* @package Quinta | 
						
						
							|  | 	* @subpackage Controllers | 
						
						
							|  | 	 */ | 
						
						
							|  | 
 | 
						
						
							|  | 	class ContentItemController extends QPanel{ | 
						
						
							|  | 		// Local instances of the ContentItemMetaControl, Parent object, child ContentItems and ContentItems | 
						
						
							|  | 		protected $objParentObject; | 
						
						
							|  | 		protected $objContentItem; | 
						
						
							|  | 
 | 
						
						
							|  | 		///NOTE: in future, i want to implement an edit mode to allow inline editing, hence the | 
						
						
							|  | 		/// meta control here .. | 
						
						
							|  | 		protected $mctContentItem; | 
						
						
							|  | 
 | 
						
						
							|  | 		// Panels for ContentItem's individual data fields | 
						
						
							|  | 		protected $pnlTitle; | 
						
						
							|  | 		protected $pnlDescription; | 
						
						
							|  | 		protected $pnlText; | 
						
						
							|  | 		protected $pnlCreator; | 
						
						
							|  | 		protected $pnlCreationDate; | 
						
						
							|  | 		protected $pnlLastModification; | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | 		// This blocks CSS -  note that Cssclass has a lower case c to avoid conflict with QCodo core .. | 
						
						
							|  | 		protected $strCssId; | 
						
						
							|  | 		protected $strCssclass; | 
						
						
							|  | 
 | 
						
						
							|  | 		public function __construct($objParentObject, $objContentItem ) | 
						
						
							|  | 		{ | 
						
						
							|  | 			//Parent must always be a child of QForm or Qcontrol | 
						
						
							|  | 			$this->objParentObject = $objParentObject; | 
						
						
							|  | 
 | 
						
						
							|  | 			try { | 
						
						
							|  | 				parent::__construct($this->objParentObject, $this->strCssId); | 
						
						
							|  | 			} catch (QCallerException $objExc) { | 
						
						
							|  | 				$objExc->IncrementOffset(); | 
						
						
							|  | 				throw $objExc; | 
						
						
							|  | 			} | 
						
						
							|  | 			if(  $objContentItem ){ | 
						
						
							|  | 				$this->mctContentItem =  new ContentItemMetaControl($this, $objContentItem); | 
						
						
							|  | 				$this->objContentItem =  $objContentItem; | 
						
						
							|  | 			}else { ///@todo just in case, make _something_  ... todo, error out? | 
						
						
							|  | 				$this->mctContentItem = ContentItemMetaControl::Create($this); | 
						
						
							|  | 				$this->objContentItem =  $this->mctContentItem->ContentItem; | 
						
						
							|  | 			} | 
						
						
							|  | 
 | 
						
						
							|  | 			$this->strCssId = preg_replace('/\s/', '',$objContentItem->Name); | 
						
						
							|  | 			$this->AddCssClass($objContentItem->Cssclass); | 
						
						
							|  | 
 | 
						
						
							|  | 			$this->pnlTitle = $this->mctContentItem->pnlTitle_Create($this->CssId ); | 
						
						
							|  | 			$this->pnlTitle->CssClass = "ContentItemTitle"; | 
						
						
							|  | 			$this->pnlDescription = $this->mctContentItem->pnlDescription_Create($this->CssId); | 
						
						
							|  | 			$this->pnlDescription->CssClass = "ContentItemDescription"; | 
						
						
							|  | 			$this->pnlText = $this->mctContentItem->pnlText_Create($this->CssId ); | 
						
						
							|  | 			$this->pnlText->CssClass = "ContentItemText"; | 
						
						
							|  | 			$this->pnlCreator = $this->mctContentItem->pnlCreatorId_Create($this->CssId); | 
						
						
							|  | 			$this->pnlCreator->Name = "Written by:"; | 
						
						
							|  | 			$this->pnlCreator->CssClass = "ContentItemCreator"; | 
						
						
							|  | 			$this->pnlCreationDate = $this->mctContentItem->pnlCreationDate_Create($this->CssId); | 
						
						
							|  | 			$this->pnlCreationDate->Name = "Created On:"; | 
						
						
							|  | 			$this->pnlCreationDate->CssClass = "ContentItemCreationDate"; | 
						
						
							|  | 			$this->pnlLastModification = $this->mctContentItem->pnlLastModification_Create($this->CssId); | 
						
						
							|  | 			$this->pnlLastModification->Name = "Last Modification:"; | 
						
						
							|  | 			$this->pnlLastModification->CssClass = "ContentItemLastModification"; | 
						
						
							|  | 
 | 
						
						
							|  | 			// Setup the Template | 
						
						
							|  | 			$this->Template = __QUINTA_CORE_VIEWS__ . '/ContentItemView.tpl.php'; | 
						
						
							|  | 
 | 
						
						
							|  | /* just thinking here .. | 
						
						
							|  | 		   if(!$this->mctContentItem || !$this->objContentItem  ) | 
						
						
							|  | 				$this->Template = 'BasicContentItem.tpl.php'; | 
						
						
							|  | 			else | 
						
						
							|  | 				switch( $this->objContentItem->Type ) | 
						
						
							|  | 				{ | 
						
						
							|  | 					case 'Menu': | 
						
						
							|  | 						$this->Template = 'MenuContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'MenuItem': | 
						
						
							|  | 						$this->Template = 'MenuItemContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'Header': | 
						
						
							|  | 						$this->Template = 'HeaderContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'RightPanel': | 
						
						
							|  | 						$this->Template = 'RightPanelContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'LeftPanel': | 
						
						
							|  | 						$this->Template = 'LeftPanelContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'CenterPanel': | 
						
						
							|  | 						$this->Template = 'CenterPanelContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'Footer': | 
						
						
							|  | 						$this->Template = 'FooterContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'BlockHeader': | 
						
						
							|  | 						$this->Template = 'BlockHeaderContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					case 'BlockFooter': | 
						
						
							|  | 						$this->Template = 'BlockFooterContentItem.tpl.php'; | 
						
						
							|  | 						break; | 
						
						
							|  | 					default: | 
						
						
							|  | 						$this->Template = 'BasicContentItem.tpl.php'; | 
						
						
							|  | 				}*/ | 
						
						
							|  |  //               $this->AutoRenderChildren = false; | 
						
						
							|  | 		} | 
						
						
							|  | 
 | 
						
						
							|  | 
 | 
						
						
							|  | 		///@todo  provide defualt contstruction or errors for these | 
						
						
							|  | 		public function __get($strName){ | 
						
						
							|  | 			switch ($strName){ | 
						
						
							|  | 				case 'CssId': | 
						
						
							|  | 					return $this->strCssId ; | 
						
						
							|  | 				case 'Cssclass': | 
						
						
							|  | 					return $this->strCssclass ; | 
						
						
							|  | 				case 'Title': | 
						
						
							|  | 					return $this->pnlTitle ; | 
						
						
							|  | 				case 'Description': | 
						
						
							|  | 					return $this->pnlDescription ; | 
						
						
							|  | 				case 'Text': | 
						
						
							|  | 					return $this->pnlText ; | 
						
						
							|  | 				case 'Creator': | 
						
						
							|  | 					return $this->pnlCreator ; | 
						
						
							|  | 				case 'CreationDate': | 
						
						
							|  | 					return $this->pnlCreationDate ; | 
						
						
							|  | 				case 'LastModification': | 
						
						
							|  | 					return $this->pnlLastModification ; | 
						
						
							|  | 				case 'ContentItem': | 
						
						
							|  | 					return $this->objContentItem; | 
						
						
							|  | 				case 'ShowTitle': | 
						
						
							|  | 					return $this->objContentItem->ShowTitle ; | 
						
						
							|  | 				case 'ShowDescription': | 
						
						
							|  | 					return $this->objContentItem->ShowDescription ; | 
						
						
							|  | 				case 'ShowCreator': | 
						
						
							|  | 					return $this->objContentItem->ShowCreator ; | 
						
						
							|  | 				case 'ShowCreationDate': | 
						
						
							|  | 					return $this->objContentItem->ShowCreationDate ; | 
						
						
							|  | 				case 'ShowLastModification': | 
						
						
							|  | 					return $this->objContentItem->ShowLastModification ; | 
						
						
							|  | 				default: | 
						
						
							|  | 					try { | 
						
						
							|  | 						return parent::__get($strName); | 
						
						
							|  | 					} catch (QCallerException $objExc) { | 
						
						
							|  | 						$objExc->IncrementOffset(); | 
						
						
							|  | 						throw $objExc; | 
						
						
							|  | 					} | 
						
						
							|  | 			} | 
						
						
							|  | 		} | 
						
						
							|  | 
 | 
						
						
							|  | 		public function __set($strName, $mixValue){ | 
						
						
							|  | 			switch ($strName){ | 
						
						
							|  | 				default: | 
						
						
							|  | 					try { | 
						
						
							|  | 						return (parent::__set($strName, $mixValue)); | 
						
						
							|  | 					} catch (QCallerException $objExc) { | 
						
						
							|  | 						$objExc->IncrementOffset(); | 
						
						
							|  | 						throw $objExc; | 
						
						
							|  | 					} | 
						
						
							|  | 			} | 
						
						
							|  | 		} | 
						
						
							|  | 	} | 
						
						
							|  | ?>
 |