openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

PageContent.class.php (2934B)


      1 <?php
      2 namespace cms\model;
      3 use cms\base\Configuration;
      4 use cms\base\DB;
      5 use cms\base\Startup;
      6 use util\ArrayUtils;
      7 use cms\generator\Publish;
      8 use cms\macros\MacroRunner;
      9 use \util\exception\ObjectNotFoundException;
     10 use logger\Logger;
     11 use util\exception\GeneratorException;
     12 use util\Text;
     13 use util\Html;
     14 use util\Http;
     15 use util\Transformer;
     16 use util\Code;
     17 use util\cache\FileCache;
     18 
     19 
     20 
     21 /**
     22  * PageContent.
     23  *
     24  * @author Jan Dankert
     25  */
     26 
     27 class PageContent extends ModelBase
     28 {
     29 	/**
     30 	 * ID.
     31 	 * @var integer
     32 	 */
     33 	private $id;
     34 
     35 	/**
     36 	 * Content-ID.
     37 	 *
     38 	 * @type Integer
     39 	 */
     40 	public $contentId = 0;
     41 
     42 	/**
     43 	 * Element-Objekt
     44 	 * @type integer
     45 	 */
     46 	public $elementId;
     47 	
     48     /**
     49      * Sprach-Id.
     50      * @var int
     51      */
     52     public $languageid;
     53 
     54 	/**
     55 	 * Page-Id
     56 	 * @var integer
     57 	 */
     58     public $pageId;
     59 
     60     /**
     61 	 * Konstruktor
     62 	 */
     63 	function __construct()
     64 	{
     65 	}
     66 
     67 	
     68 
     69 	/**
     70 	 * Laden des aktuellen Inhaltes aus der Datenbank
     71 	 */
     72 	function load()
     73 	{
     74 		$stmt = Db::sql( <<<SQL
     75            SELECT * FROM {{pagecontent}}
     76 			 WHERE elementid ={elementid}
     77 			   AND pageid    ={pageid}
     78 			   AND languageid={languageid}
     79 SQL
     80 		);
     81 		$stmt->setInt( 'elementid' ,$this->elementId );
     82 		$stmt->setInt( 'pageid'    ,$this->pageId    );
     83 		$stmt->setInt( 'languageid',$this->languageid);
     84 		$row = $stmt->getRow();
     85 
     86 		if	( count($row) > 0 ) // Wenn Inhalt gefunden
     87 		{
     88 			$this->contentId = intval($row['contentid']);
     89 			$this->id        = intval($row['id'       ]);
     90 		}
     91 	}
     92 
     93 
     94 
     95 	/**
     96 	 * No function, values are NOT updated, values are only added.
     97 	 * @return name|void
     98 	 */
     99 	protected function save()
    100 	{
    101 		// not implemented, values are only added ("copy on write")
    102 	}
    103 
    104 	/**
    105 	 * Add new object.
    106 	 */
    107 	protected function add()
    108 	{
    109 		// Get next ID from database.
    110 		$stmt = DB::sql('SELECT MAX(id) FROM {{pagecontent}}');
    111 		$this->id = intval($stmt->getOne())+1;
    112 
    113 		$content = new Content();
    114 		$content->persist();
    115 		$this->contentId = $content->getId();
    116 
    117 		$stmt = DB::sql( <<<SQL
    118 INSERT INTO {{pagecontent}}
    119             (id  ,contentid  ,elementid  ,pageid  ,languageid   )
    120      VALUES ({id},{contentid},{elementid},{pageid},{languageid} )
    121 SQL
    122 		);
    123 		$stmt->setInt( 'id'        ,$this->id            );
    124 		$stmt->setInt( 'contentid' ,$this->contentId     );
    125 		$stmt->setInt( 'elementid' ,$this->elementId     );
    126 		$stmt->setInt( 'pageid'    ,$this->pageId        );
    127 		$stmt->setInt( 'languageid',$this->languageid    );
    128 
    129 		$stmt->execute();
    130 	}
    131 
    132 
    133 	
    134 	/**
    135 	 * Delete this page content.
    136 	 */
    137 	public function delete()
    138 	{
    139 		$stmt = DB::sql( <<<SQL
    140 			DELETE FROM {{pagecontent}}
    141 			 WHERE id ={id}
    142 SQL
    143 		);
    144 		$stmt->setInt( 'id' ,$this->id );
    145 		$stmt->execute();
    146 
    147 		$content = new Content( $this->contentId );
    148 		$content->delete();
    149 	}
    150 
    151 
    152     public function getName()
    153     {
    154         return "PageContent ".$this->id;
    155     }
    156 
    157 
    158     public function __toString()
    159 	{
    160 		return "PageContent: ".print_r($this,true);
    161 	}
    162 
    163 
    164 
    165 	public function getId()
    166 	{
    167 		return $this->id;
    168 	}
    169 
    170 
    171 }