openrat-cms

# OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs

Name.class.php (4331B)


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