openrat-cms

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

Name.class.php (3353B)


      1 <?php
      2 
      3 
      4 namespace cms\model;
      5 
      6 use cms\base\DB;
      7 
      8 /**
      9  * Darstellung von Name und Beschreibung eines Objektes.
     10  *
     11  * @author Jan Dankert
     12  * @package openrat.objects
     13  */
     14 class Name extends ModelBase
     15 {
     16 	/** eindeutige ID dieses Objektes
     17 	 * @type Integer
     18 	 */
     19 	public $nameid;
     20 
     21 
     22 	public $objectid;
     23 	/** Sprach-ID
     24 	 * @see Language
     25 	 * @type Integer
     26 	 */
     27 	public $languageid;
     28 
     29 
     30 	/** Logischer (sprachabhaengiger) Name des Objektes
     31 	 * (wird in Tabelle <code>name</code> abgelegt)
     32 	 * @type String
     33 	 */
     34 	public $name = '';
     35 
     36 	/** Logische (sprachabhaengige) Beschreibung des Objektes
     37 	 * (wird in Tabelle <code>name</code> abgelegt)
     38 	 * @type String
     39 	 */
     40 	public $description;
     41 	/** <strong>Konstruktor</strong>
     42 	 *
     43 	 * @param Integer Objekt-ID
     44 	 */
     45 	function __construct($nameid=0 )
     46 	{
     47 		 $this->nameid   = $nameid;
     48 	}
     49 
     50 
     51 	/**
     52 	 * Lesen der Eigenschaften aus der Datenbank
     53 	 * Es werden
     54 	 * - die sprachabh?ngigen Daten wie Name und Beschreibung geladen
     55 	 * @throws \util\exception\ObjectNotFoundException
     56 	 */
     57 	public function load()
     58 	{
     59 		$db = DB::get();
     60 
     61 		$stmt = $db->sql( <<<SQL
     62 SELECT id,objectid,name,descr,languageid
     63 FROM {{name}}
     64 WHERE languageid = {languageid}
     65  AND objectid   = {objectid}
     66 SQL
     67 		);
     68 
     69 		$stmt->setInt('languageid', $this->languageid);
     70 		$stmt->setInt('objectid'  , $this->objectid  );
     71 
     72 		$row = $stmt->getRow();
     73 
     74 		if (count($row) > 0)
     75 			$this->setDatabaseRow( $row );
     76 	}
     77 
     78 
     79 
     80 
     81 	/**
     82 	 * Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile
     83 	 *
     84 	 * @param array Ergebniszeile aus Datenbanktabelle
     85 	 */
     86 	private function setDatabaseRow( $row )
     87 	{
     88 		$this->nameid      = $row['id'        ];
     89 		$this->objectid    = $row['objectid'  ];
     90 		$this->languageid  = $row['languageid'];
     91 		$this->name        = $row['name' ];
     92 		$this->description = $row['descr'];
     93 	}
     94 
     95 
     96 	protected function add()
     97 	{
     98 		$db = DB::get();
     99 
    100 		$sql = $db->sql('SELECT MAX(id) FROM {{name}}');
    101 		$this->nameid = intval($sql->getOne())+1;
    102 
    103 		$sql = $db->sql('INSERT INTO {{name}}'.'  (id,objectid,languageid,name,descr)'.' VALUES( {nameid},{objectid},{languageid},{name},{desc} )');
    104 		$sql->setInt   ('nameid'    , $this->nameid    );
    105 		$sql->setInt   ('objectid'  , $this->objectid    );
    106 		$sql->setInt   ('languageid', $this->languageid  );
    107 		$sql->setString('name'      , $this->name);
    108 		$sql->setString('desc'      , $this->description);
    109 		$sql->execute();
    110 	}
    111 
    112 	/**
    113 	 * Logischen Namen und Beschreibung des Objektes in Datenbank speichern
    114 	 *
    115 	 */
    116 	public function save()
    117 	{
    118 		$db = DB::get();
    119 
    120 		$sql = $db->sql( <<<SQL
    121 	UPDATE {{name}} SET 
    122 					 name  = {name},
    123 					 descr = {desc}
    124 					WHERE objectid  ={objectid}
    125 					  AND languageid={languageid}
    126 SQL
    127 		);
    128 		$sql->setString('name', $this->name);
    129 		$sql->setString('desc', $this->description);
    130 		$sql->setInt( 'objectid'  , $this->objectid   );
    131 		$sql->setInt( 'languageid', $this->languageid );
    132 		$sql->execute();
    133 	}
    134 
    135 
    136 
    137 	public function delete()
    138 	{
    139 		// not necessary, because names are deleted by BaseObject::delete()
    140 
    141 	}
    142 
    143 
    144 
    145 	/**
    146 	 */
    147 	public function objectDelete()
    148 	{
    149 		// not necessary, because names are deleted by BaseObject::delete()
    150 	}
    151 
    152 
    153 	/**
    154 	 * Eigenschaften des Objektes.
    155 	 * @return array
    156 	 */
    157 	public function getProperties()
    158 	{
    159 		return get_object_vars( $this );
    160 
    161 	}
    162 
    163 	public function getName()
    164 	{
    165 		return $this->name;
    166 	}
    167 
    168 
    169 	public function getId()
    170 	{
    171 		return $this->nameid;
    172 	}
    173 
    174 
    175 }