public function save(Default_Model_Relation $value)
 {
     global $application;
     $data = array();
     $ishidden = false;
     if ($value->getHiddenByID() === 0) {
         $ishidden = true;
         $value->hiddenbyid = null;
     }
     parent::save($value);
     if ($ishidden) {
         $data['hiddenby'] = null;
     }
     if (count($data) > 0) {
         $q1 = 'id = ?';
         $q2 = $value->id;
         if (null === ($id = $value->id)) {
             unset($data['id']);
             $value->id = $this->getDbTable()->insert($data);
         } else {
             $s = $this->getDbTable()->getAdapter()->quoteInto($q1, $q2);
             $this->getDbTable()->update($data, $s);
         }
     }
 }
 public function save(Default_Model_Relation $value)
 {
     global $application;
     $data = array();
     if (!isnull($value->getId())) {
         $data['id'] = $value->getId();
     }
     if (!isnull($value->getRelTypeID())) {
         $data['reltypeid'] = $value->getRelTypeID();
     }
     if (!isnull($value->getTargetGUID())) {
         $data['target_guid'] = $value->getTargetGUID();
     }
     if (!isnull($value->getSubjectGUID())) {
         $data['subject_guid'] = $value->getSubjectGUID();
     }
     if (!isnull($value->getParentID())) {
         $data['parentid'] = $value->getParentID();
     }
     if (!isnull($value->getAddedOn())) {
         $data['addedon'] = $value->getAddedOn();
     }
     if (!isnull($value->getAddedByID())) {
         $data['addedby'] = $value->getAddedByID();
     }
     if (!isnull($value->getDenyOn())) {
         $data['denyon'] = $value->getDenyOn();
     }
     if (!isnull($value->getDenyByID())) {
         $data['denyby'] = $value->getDenyByID();
     }
     if (!isnull($value->getGuid())) {
         $data['guid'] = $value->getGuid();
     }
     if (!isnull($value->getHiddenOn())) {
         $data['hiddenon'] = $value->getHiddenOn();
     }
     if (!isnull($value->getHiddenByID())) {
         $data['hiddenby'] = $value->getHiddenByID();
     }
     $q1 = 'id = ?';
     $q2 = $value->id;
     if (null === ($id = $value->id)) {
         unset($data['id']);
         $value->id = $this->getDbTable()->insert($data);
     } else {
         $s = $this->getDbTable()->getAdapter()->quoteInto($q1, $q2);
         $this->getDbTable()->update($data, $s);
     }
 }
Exemple #3
0
 public static function relate($reltypeid, $subjectguid, $targetguid, $userid = null, $parentid = null, $reverse = false)
 {
     $isvalid = self::validateRelation($reltypeid, $subjectguid, $targetguid, $userid, $parentid, $reverse);
     if ($reverse === true) {
         $tmp = $subjectguid;
         $subjectguid = $targetguid;
         $targetguid = $tmp;
     }
     if ($isvalid !== true) {
         return $isvalid;
     }
     $relexists = self::relationExists($reltypeid, $subjectguid, $targetguid);
     if ($relexists !== false) {
         return $relexists;
     }
     try {
         $rel = new Default_Model_Relation();
         $rel->reltypeid = $reltypeid;
         $rel->subjectGUID = $subjectguid;
         $rel->targetGUID = $targetguid;
         $rel->addedbyid = $userid;
         $rel->parentid = $parentid;
         $rel->save();
     } catch (Exception $ex) {
         return $ex->getMessage();
     }
     return $rel;
 }