openrat-cms

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

Link.class.php (2576B)


      1 <?php
      2 namespace cms\model;
      3 
      4 
      5 /**
      6  * Darstellen einer Verkn�pfung. Eine Verkn�pfung kann auf eine Objekt oder auf
      7  * eine beliebige Url zeigen
      8  *
      9  * @version $Revision$
     10  * @author $Author$
     11  * @package openrat.objects
     12  */
     13 class Link extends BaseObject
     14 {
     15 	var $linkid;
     16 	var $linkedObjectId = 0;
     17 	var $url            = '';
     18 
     19 	public function __construct( $objectid='' )
     20 	{
     21 		parent::__construct( $objectid );
     22 		$this->isLink = true;
     23 		$this->typeid = BaseObject::TYPEID_LINK;
     24 	}
     25 
     26 
     27 
     28     /**
     29      * Lesen der Verknuepfung aus der Datenbank
     30      * @throws \ObjectNotFoundException
     31      */
     32     public function load()
     33 	{
     34 		$db = db_connection();
     35 
     36 		$sql = $db->sql( 'SELECT *'.
     37 		                ' FROM {{link}}'.
     38 		                ' WHERE objectid={objectid}' );
     39 		$sql->setInt( 'objectid',$this->objectid );
     40 		$row = $sql->getRow();
     41 
     42 		if	( count($row ) != 0 )
     43 		{
     44 			$this->linkedObjectId = $row['link_objectid'];
     45 		}
     46 
     47 		$this->objectLoad();
     48 	}
     49 
     50 
     51     /**
     52      *
     53      */
     54     public function delete()
     55 	{
     56 		$db = db_connection();
     57 
     58 		// Verkn�pfung l�schen
     59 		$sql = $db->sql( 'DELETE FROM {{link}} '.
     60 		                ' WHERE objectid={objectid}' );
     61 		$sql->setInt( 'objectid',$this->objectid );
     62 
     63 		$sql->query();
     64 
     65 		$this->objectDelete();
     66 	}
     67 
     68 
     69     /**
     70      *
     71      */
     72     public function save()
     73 	{
     74 		$db = db_connection();
     75 		
     76 		$sql = $db->sql('UPDATE {{link}} SET '.
     77 		               '  link_objectid = {linkobjectid}'.
     78 		                ' WHERE objectid={objectid}' );
     79 		$sql->setInt   ('objectid'    ,$this->objectid );
     80 		$sql->setInt ('linkobjectid',$this->linkedObjectId );
     81 
     82 		$sql->query();
     83 
     84 		$this->objectSave();
     85 	}
     86 
     87 
     88 	public function getProperties()
     89 	{
     90 		return array_merge( parent::getProperties(),
     91 		                    array( 'objectid'       =>$this->objectid,
     92 		                           'linkobjectid'   =>$this->linkedObjectId
     93                             ));
     94 	}
     95 
     96 
     97 	public function getType()
     98 	{
     99 		return 'link';
    100 	}
    101 
    102 
    103     /**
    104      * Add a new link.
    105      */
    106     public function add()
    107 	{
    108 		parent::add();
    109 
    110 		$stmt = db()->sql('SELECT MAX(id) FROM {{link}}');
    111 		$this->linkid = intval($stmt->getOne())+1;
    112 
    113 		$stmt = db()->sql('INSERT INTO {{link}}'.
    114 		               ' (id,objectid,link_objectid)'.
    115 		               ' VALUES( {linkid},{objectid},{linkobjectid} )' );
    116 		$stmt->setInt   ('linkid'      ,$this->linkid         );
    117 		$stmt->setInt   ('objectid'    ,$this->objectid       );
    118 
    119 		if ($this->linkedObjectId == 0)
    120             $stmt->setNull('linkobjectid');
    121 		else
    122             $stmt->setInt ('linkobjectid',$this->linkedObjectId );
    123 
    124 		$stmt->query();
    125 	}	
    126 }
    127 
    128 ?>