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 ?>