コード例 #1
0
ファイル: Edge.php プロジェクト: atomicjets/PHP-Rexster
 public function delete(array $properties = array())
 {
     if (!empty($properties)) {
         throw new \RuntimeException('Cannot delete properties from edges yet - Rexster deletes the entire edge');
     }
     return parent::delete();
 }
コード例 #2
0
ファイル: EntityTest.php プロジェクト: danzabar/alice
 /**
  * Test the delete function
  *
  * @return void
  * @author Dan Cox
  */
 public function test_removeModel()
 {
     DI::addMock('database', $this->database);
     $this->database->shouldReceive('getEntity')->andReturn($this->database);
     $this->database->shouldReceive('remove');
     $this->database->shouldReceive('flush');
     $this->entity->delete();
 }
コード例 #3
0
ファイル: Stream.php プロジェクト: kurt-planet/BigTree-CMS
 /**
  * Delete a file
  *
  * @param String $path
  * @return Boolean
  * @access public
  */
 function _unlink($path)
 {
     $path = $this->_parse_path($path);
     if ($path === false) {
         return false;
     }
     return $this->sftp->delete($path, false);
 }
コード例 #4
0
ファイル: Upload.php プロジェクト: xingcuntian/yaf
 public function deleteOne($file = "")
 {
     if ('' === $file) {
         return false;
     }
     if ($this->uploader->delete($file)) {
         return true;
     } else {
         return false;
     }
 }
コード例 #5
0
ファイル: ORM.php プロジェクト: brussens/cogear2
 /**
  * Delete
  *
  * @return boolean
  */
 public function delete()
 {
     $cogear = getInstance();
     $data = $this->getData();
     $result = FALSE;
     if (!isset($data[$this->primary]) && $data) {
         $result = $this->db->delete($this->table, $data) ? TRUE : FALSE;
         event('Db_ORM.delete', $this, $data, $result);
     } elseif ($data) {
         $result = $this->db->delete($this->table, array($this->primary => $data[$this->primary])) ? TRUE : FALSE;
         event('Db_ORM.delete', $this, $data, $result);
     } else {
         $result = $this->db->delete($this->table) ? TRUE : FALSE;
         event('Db_ORM.delete', $this, $data, $result);
     }
     // Чистим кеш
     $this->cache($this->{$this->primary}, FALSE, array(), 0);
     $this->clear();
     return $result;
 }
コード例 #6
0
ファイル: SessionMemcache.class.php プロジェクト: jyht/v5
 /**
  * 删除SESSION
  * @param string $sid SESSION_id
  * @return boolean
  */
 public function destroy($sid)
 {
     return $this->memcache->delete($sid);
 }
コード例 #7
0
 /**
  * @see	\herosphp\session\interfaces\ISession::destroy().
  */
 public static function destroy($sessionId)
 {
     $_SESSION = null;
     return self::$handler->delete($sessionId);
 }
コード例 #8
0
ファイル: Redis.php プロジェクト: ChenHuaPHP/ZOLshop
 /**
  * 删除SESSION
  * @param string $sid  SESSION_id
  * @return boolean
  */
 function destroy($sid)
 {
     return $this->redis->delete($sid);
 }
コード例 #9
0
ファイル: RedisHandler.php プロジェクト: houdunwang/hdphp
 function flush()
 {
     return $this->redis->delete($this->session_id);
 }
コード例 #10
0
 function delete($whereFields = "")
 {
     $this->getCid();
     $this->activateVariableFields();
     load($this);
     $this->iterateNonUserFieldAndDoSomething("deleteCore");
     parent::delete($whereFields);
 }
コード例 #11
0
 /**
  * 删除缓存
  * @access public
  * @param type $name  缓存KEY
  * @return boolean
  */
 public function del($name)
 {
     //缓存KEY
     $name = $this->options['prefix'] . $name;
     return $this->memcacheObj->delete($name);
 }
コード例 #12
0
ファイル: MemSession.class.php プロジェクト: cqmyg/herosphp2
 /**
  * @see	\herosphp\session\interfaces\ISession::destroy().
  */
 public static function destroy($sessionId)
 {
     return self::$handler->delete($sessionId);
 }
コード例 #13
0
ファイル: category.php プロジェクト: alencarmo/OCF
 function delete($whereFields = "")
 {
     G::load($children, array("SELECT * FROM @category WHERE up=#this->id#", $this->id));
     global $recursive;
     foreach ($children as $child) {
         $recursive = TRUE;
         $child->delete();
         // rekurziv
         $recursive = FALSE;
     }
     // Elobb kitoroljuk az itemeit (ha az item egyaltalan be van
     // inkudalva). Azert kell elotte, mert az
     // item->delete() hivhat load-ot a categoriara
     if (class_exists("item")) {
         if (class_exists("itemnode")) {
             $query = "SELECT iid, id FROM @itemnode WHERE cid='{$this->id}";
             $itemNodes = new ItemNode();
             foreach ($itemNodes as $itemNode) {
                 delete($itemNode);
                 // megszamoljuk, hogy hany hivatkozas maradt meg az adott itemre
                 // az itemnode tablaban:
                 getDbCount($count, array("SELECT COUNT(*) FROM @itemnode WHERE iid=#itemNode->iid#", $itemNode->iid));
                 // ha nincs ra tobb hivatkozas, akkor toroljuk:
                 // TODO: ez igy nem kezeli az itemNum-ok csokkenteset!
                 if (!$count) {
                     executeQuery("DELETE FROM @item WHERE id=#itemNode->iid#", $itemNode->iid);
                 }
             }
         } else {
             $items = new Item();
             $query = array("SELECT * FROM @item WHERE cid=#this->id#", $this->id);
             loadObjectsSql($items, $query, $items);
             $itemCount = count($items);
             foreach ($items as $item) {
                 $item->delete("", "categoryDelete");
             }
         }
     }
     parent::delete($whereFields);
     // Rekurziv esetben elobb a levelre hivodik meg a kovetkezo
     // kodreszlet, majd az o folott allo objektumra es igy tovabb
     // egeszen addig az objektumig, amelyre tulajdonkeppen meghivtuk a
     // delete-et. A subCatNum ennek soran egyesevel csokkenget a lanc
     // tagjaiban:
     if ($this->up) {
         G::load($father, $this->up, "appcategory");
         $father->decreaseDirectSubCatNum();
         $father->decreaseItemNum($itemCount);
     }
     executeQuery("DELETE FROM @subscription WHERE cid=#cid#", $this->id);
     executeQuery("DELETE FROM @unsubscription WHERE cid=#cid#", $this->id);
 }
コード例 #14
0
ファイル: SSH.php プロジェクト: emijrp/Peachy
 /**
  * Deletes a file
  *
  * @access public
  * @param string $filename Path to the file.
  * @return bool
  */
 public function unlink($filename)
 {
     return $this->sftpobject->delete($filename, false);
 }
コード例 #15
0
ファイル: class.tt.php プロジェクト: GStepOne/CI
 /**
  * 删除指定Key的内容
  * 
  * @param String $key 
  * @return void
  */
 public function delete($key)
 {
     $this->mObject->delete($key);
 }
コード例 #16
0
ファイル: merge.php プロジェクト: vuthaiphat/CakePHP-Assets
 /**
  * Merge two models into one, by effectivly joining them. By default target fields and associations will be used,
  * but sources will be used where there the target isnt available or both where that is possible. You can override
  * this on a field and association(alias) basis should you need to.
  * 
  * NB when merging with associations that are binded realtime, reset (2nd parameter of Model::bindModel) needs to be false
  *
  * @example $this->Post->merge(1,2,array('title'=>'source','author_id'=>'input'),array('Comment'=>'source'),$data);
  * @param Object $Model
  * @param int $target_id
  * @param int $source_id
  * @param array $field_options
  * @param array $data
  * @return boolean success
  */
 function merge(&$Model, $target_id, $source_id, $field_options = array(), $assoc_options = array(), $data = array())
 {
     $fields = am($this->settings[$Model->alias], $field_options);
     $target = $Model->find('first', array('conditions' => array($Model->primaryKey => $target_id), 'recursive' => -1));
     $source = $Model->find('first', array('conditions' => array($Model->primaryKey => $source_id), 'recursive' => -1));
     $new_values = array();
     foreach ($fields as $key => $value) {
         switch ($value) {
             case 'source':
                 $new_values[$key] = $source[$Model->alias][$key];
                 break;
             case 'target_source':
                 $new_values[$key] = $target[$Model->alias][$key] . "\n " . $source[$Model->alias][$key];
                 break;
             case 'source_target':
                 $new_values[$key] = $source[$Model->alias][$key] . "\n " . $target[$Model->alias][$key];
                 break;
             case 'input':
                 $new_values[$key] = $data[$Model->alias][$key];
                 break;
             case 'target':
             case FALSE:
             default:
                 break;
         }
     }
     // belongsTo is taken care of above with fields
     // hasOne - default is target, options are target, source, neither
     foreach ($Model->hasOne as $assoc_model => $assoc_setup) {
         $className = $assoc_setup['className'];
         $foreignKey = $assoc_setup['foreignKey'];
         $dependent = $assoc_setup['dependent'];
         if (!isset($assoc_options[$assoc_model]) && !isset($assoc_options['hasOne'][$assoc_model])) {
             $use = 'target';
             // default behaviour
         } else {
             if (isset($assoc_options['hasOne']) && isset($assoc_options['hasOne'][$assoc_model])) {
                 $use = $assoc_options['hasOne'][$assoc_model];
             } else {
                 $use = $assoc_options[$assoc_model];
             }
         }
         switch ($use) {
             case 'neither':
                 // delete or reset both
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($source_id, $target_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => array($source_id, $target_id)));
                 }
                 break;
             case 'target':
                 // keep old target, delete or reset assoc for source
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($source_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => $source_id));
                 }
                 break;
             case 'source':
                 // delete or reset target, use source
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($target_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => $target_id));
                 }
                 $Model->{$assoc_model}->updateAll(array($foreignKey => $target_id), array($foreignKey => $source_id));
                 break;
             default:
                 return FALSE;
         }
     }
     // hasMany - default is both, options are : target,source,neither,both
     foreach ($Model->hasMany as $assoc_model => $assoc_setup) {
         $className = $assoc_setup['className'];
         $foreignKey = $assoc_setup['foreignKey'];
         $dependent = $assoc_setup['dependent'];
         if (!isset($assoc_options[$assoc_model]) && !isset($assoc_options['hasMany'][$assoc_model])) {
             $use = 'both';
             // default behaviour
         } else {
             if (isset($assoc_options['hasMany']) && isset($assoc_options['hasMany'][$assoc_model])) {
                 $use = $assoc_options['hasMany'][$assoc_model];
             } else {
                 $use = $assoc_options[$assoc_model];
             }
         }
         switch ($use) {
             case 'both':
                 $Model->{$assoc_model}->updateAll(array($foreignKey => $target_id), array($foreignKey => $source_id));
                 break;
             case 'neither':
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($source_id, $target_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => array($source_id, $target_id)));
                 }
                 break;
             case 'target':
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($source_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => $source_id));
                 }
                 break;
             case 'source':
                 if ($dependent) {
                     $Model->{$assoc_model}->deleteAll(array($foreignKey => array($target_id)));
                 } else {
                     $Model->{$assoc_model}->updateAll(array($foreignKey => NULL), array($foreignKey => $target_id));
                 }
                 $Model->{$assoc_model}->updateAll(array($foreignKey => $target_id), array($foreignKey => $source_id));
                 break;
             default:
                 return FALSE;
         }
     }
     // HABTM - default is both, options are : target,source,neither,both
     foreach ($Model->hasAndBelongsToMany as $assoc_model => $assoc_setup) {
         $className = $assoc_setup['className'];
         $foreignKey = $assoc_setup['foreignKey'];
         //$assocForeignKey = $assoc_setup['associationForeignKey'];
         $joinModel = $Model->name . 's' . $className;
         if (!isset($assoc_options[$assoc_model]) && !isset($assoc_options['habtm'][$assoc_model])) {
             $use = 'both';
             // default behaviour
         } else {
             if (isset($assoc_options['habtm']) && isset($assoc_options['habtm'][$assoc_model])) {
                 $use = $assoc_options['habtm'][$assoc_model];
             } else {
                 $use = $assoc_options[$assoc_model];
             }
         }
         switch ($use) {
             case 'both':
                 $Model->{$joinModel}->updateAll(array($foreignKey => $target_id), array($foreignKey => $source_id));
                 break;
             case 'neither':
                 $Model->{$joinModel}->deleteAll(array($foreignKey => array($source_id, $target_id)));
                 break;
             case 'target':
                 $Model->{$joinModel}->deleteAll(array($foreignKey => array($source_id)));
                 break;
             case 'source':
                 $Model->{$joinModel}->deleteAll(array($foreignKey => array($target_id)));
                 $Model->{$joinModel}->updateAll(array($foreignKey => $target_id), array($foreignKey => $source_id));
                 break;
             default:
                 return FALSE;
         }
     }
     $data = $target;
     $data[$Model->alias] = array_merge($data[$Model->alias], $new_values);
     if ($Model->save($data, false)) {
         $Model->delete($source_id, false);
     }
     return true;
 }
コード例 #17
0
 public function delete($id)
 {
     return $this->gateway->delete($this->getSingleUrl($id));
 }
コード例 #18
0
ファイル: import.php プロジェクト: sahne123/calendarplus
 public function import()
 {
     if (!$this->isValid()) {
         return false;
     }
     $numofcomponents = count($this->calobject->getComponents());
     if ($this->overwrite) {
         foreach (Object::all($this->id) as $obj) {
             Object::delete($obj['id']);
         }
     }
     foreach ($this->calobject->getComponents() as $object) {
         if (!$object instanceof \Sabre\VObject\Component\VEvent && !$object instanceof \Sabre\VObject\Component\VJournal && !$object instanceof \Sabre\VObject\Component\VTodo) {
             continue;
         }
         if (!is_null($object->DTSTART)) {
             $dtend = Object::getDTEndFromVEvent($object);
             if ($object->DTEND) {
                 //$object->DTEND->setDateTime($dtend->getDateTime());
                 $dtend = $dtend->getDateTime();
                 $dtend->setTimeZone($object->DTSTART->getDateTime()->getTimeZone());
                 $object->DTEND->setDateTime($dtend);
             }
         }
         $bAddtz = false;
         if (!is_null($object->RRULE)) {
             $bAddtz = true;
         }
         if (is_null($object->CLASS)) {
             $object->CLASS = 'PUBLIC';
         }
         $vcalendar = $this->createVCalendar($object->serialize(), $bAddtz);
         $insertid = Object::add($this->id, $vcalendar);
         $this->abscount++;
         if ($this->isDuplicate($insertid)) {
             Object::delete($insertid);
         } else {
             $this->count++;
         }
         $this->updateProgress(intval($this->abscount / $numofcomponents * 100));
     }
     $this->cache->remove($this->progresskey);
     return true;
 }
コード例 #19
0
ファイル: import.php プロジェクト: Rotzbua/calendarplus
 public function import()
 {
     if (!$this->isValid()) {
         return false;
     }
     $this->numofcomponents = count($this->calobject->getComponents());
     if ($this->overwrite === true) {
         foreach (Object::all($this->id) as $obj) {
             Object::delete($obj['id']);
         }
         //\OCP\Util::writeLog('calendarplus','DELETE MOD WUPPS FOUND: ', \OCP\Util::DEBUG);
     }
     //Check if a subscribed event is deleted
     $existObjects = [];
     foreach ($this->calobject->getComponents() as $object) {
         if (!$object instanceof \Sabre\VObject\Component\VEvent && !$object instanceof \Sabre\VObject\Component\VJournal && !$object instanceof \Sabre\VObject\Component\VTodo) {
             continue;
         }
         if ($this->bImportUri === true && $object instanceof \Sabre\VObject\Component\VTodo) {
             continue;
         }
         //refresh subscribed calendar check
         if ($this->bModified === true && !is_null($object->{'UID'})) {
             $testObject = Object::findByUID($object->{'UID'});
             $existObjects[$testObject['id']] = 1;
             if (isset($testObject['lastmodified']) && !is_null($object->{'LAST-MODIFIED'})) {
                 $importLastModified = strtotime($object->{'LAST-MODIFIED'});
                 if ($importLastModified > $testObject['lastmodified']) {
                     //Object::delete($testObject['id']);
                     $vcalendar = $this->createVCalendar($object->serialize(), $bAddtz);
                     Object::edit($testObject['id'], $vcalendar, true);
                     $this->abscount++;
                     continue;
                 }
                 if ($importLastModified == $testObject['lastmodified']) {
                     continue;
                 }
             }
         }
         if (!is_null($object->DTSTART)) {
             $dtend = Object::getDTEndFromVEvent($object);
             if ($object->DTEND) {
                 //$object->DTEND->setDateTime($dtend->getDateTime());
                 $dtend = $dtend->getDateTime();
                 $dtend->setTimeZone($object->DTSTART->getDateTime()->getTimeZone());
                 $object->DTEND->setDateTime($dtend);
             }
         }
         $bAddtz = false;
         if (!is_null($object->RRULE)) {
             $bAddtz = true;
         }
         if (is_null($object->CLASS)) {
             $object->CLASS = 'PUBLIC';
         }
         if (!is_null($object->SUMMARY)) {
             $this->currentSummary = 'Event ' . $object->SUMMARY;
         }
         $vcalendar = $this->createVCalendar($object->serialize(), $bAddtz);
         $insertid = Object::add($this->id, $vcalendar);
         $existObjects[$insertid] = 1;
         $this->abscount++;
         if ($this->bModified === false && $this->isDuplicate($insertid)) {
             Object::delete($insertid);
         } else {
             $this->count++;
         }
         $this->updateProgress(intval($this->abscount / $this->numofcomponents * 100));
     }
     $this->cache->remove($this->progresskey);
     if ($this->bModified === true) {
         foreach (Object::all($this->id) as $obj) {
             if (isset($existObjects[$obj['id']])) {
             } else {
                 Object::delete($obj['id']);
                 $this->abscount = 1;
             }
         }
     }
     return true;
 }
コード例 #20
0
 /**
  * Gets or creates the current order.
  * Based on the session ONLY!
  * IMPORTANT FUNCTION!
  * @todo - does this need to be public????
  * @return void
  */
 public function currentOrder($recurseCount = 0)
 {
     if (!$this->order) {
         $sessionVariableName = $this->sessionVariableName("OrderID");
         $orderIDFromSession = intval(Session::get($sessionVariableName));
         if ($orderIDFromSession > 0) {
             $this->order = Order::get()->byID($orderIDFromSession);
         }
         $member = Member::currentUser();
         if ($this->order) {
             //first reason to set to null: it is already submitted
             if ($this->order->IsSubmitted()) {
                 $this->order = null;
             } elseif (!$this->order->canView()) {
                 $this->order = null;
             } elseif ($member && $member->exists()) {
                 if ($this->order->MemberID != $member->ID) {
                     $updateMember = false;
                     if (!$this->order->MemberID) {
                         $updateMember = true;
                     }
                     if (!$member->IsShopAdmin()) {
                         $updateMember = true;
                     }
                     if ($updateMember) {
                         $this->order->MemberID = $member->ID;
                         $this->order->write();
                     }
                 }
                 //IF current order has nothing in it AND the member already has an order: use the old one first
                 //first, lets check if the current order is worthwhile keeping
                 if ($this->order->StatusID || $this->order->TotalItems()) {
                     //do NOTHING!
                 } else {
                     $firstStep = OrderStep::get()->First();
                     //we assume the first step always exists.
                     //TODO: what sort order?
                     $count = 0;
                     while ($firstStep && ($previousOrderFromMember = Order::get()->where("\r\n\t\t\t\t\t\t\t\t\t\"MemberID\" = " . $member->ID . "\r\n\t\t\t\t\t\t\t\t\tAND (\"StatusID\" = " . $firstStep->ID . " OR \"StatusID\" = 0)\r\n\t\t\t\t\t\t\t\t\tAND \"Order\".\"ID\" <> " . $this->order->ID)->First())) {
                         //arbritary 12 attempts ...
                         if ($count > 12) {
                             break;
                         }
                         $count++;
                         if ($previousOrderFromMember && $previousOrderFromMember->canView()) {
                             if ($previousOrderFromMember->StatusID || $previousOrderFromMember->TotalItems()) {
                                 $this->order->delete();
                                 $this->order = $previousOrderFromMember;
                                 break;
                             } else {
                                 $previousOrderFromMember->delete();
                             }
                         }
                     }
                 }
             }
         }
         if (!$this->order) {
             if ($member) {
                 $firstStep = OrderStep::get()->First();
                 if ($firstStep) {
                     $previousOrderFromMember = Order::get()->filter(array("MemberID" => $member->ID, "StatusID" => array($firstStep->ID, 0)))->First();
                     if ($previousOrderFromMember) {
                         if ($previousOrderFromMember->canView()) {
                             $this->order = $previousOrderFromMember;
                         }
                     }
                 }
             }
             if ($this->order && !$this->order->exists()) {
                 $this->order = null;
             }
             if (!$this->order) {
                 //here we cleanup old orders, because they should be
                 //cleaned at the same rate that they are created...
                 if (EcommerceConfig::get("ShoppingCart", "cleanup_every_time")) {
                     $cartCleanupTask = EcommerceTaskCartCleanup::create();
                     $cartCleanupTask->runSilently();
                 }
                 //create new order
                 $this->order = Order::create();
                 if ($member) {
                     $this->order->MemberID = $member->ID;
                 }
                 $this->order->write();
             }
             Session::set($sessionVariableName, intval($this->order->ID));
         } elseif ($this->order->MemberID && !$member) {
             $this->clear();
             $this->order = null;
         }
         if ($this->order && $this->order->exists()) {
             $this->order->calculateOrderAttributes($force = false);
         }
         if ($this->order && !$this->order->SessionID) {
             $this->order->SessionID = session_id();
             $this->order->write();
         }
     }
     //just in case ...
     if (!$this->order && $recurseCount < 3) {
         $recurseCount++;
         return $this->currentOrder();
     }
     return $this->order;
 }
コード例 #21
0
 /**
  * Gets or creates the current order.
  * IMPORTANT FUNCTION!
  * @todo - does this need to be public????
  * @return void
  */
 public function currentOrder()
 {
     if (!$this->order) {
         $sessionVariableName = $this->sessionVariableName("OrderID");
         $orderIDFromSession = intval(Session::get($sessionVariableName));
         if ($orderIDFromSession > 0) {
             $this->order = DataObject::get_by_id("Order", $orderIDFromSession);
         }
         //order has already been submitted - immediately remove it because we dont want to change it.
         $member = Member::currentUser();
         if ($this->order) {
             //first reason to set to null: it is already submitted
             if ($this->order->IsSubmitted()) {
                 $this->order = null;
             } elseif (!$this->order->canView()) {
                 $this->order = null;
             } elseif ($member && $member->exists()) {
                 if ($this->order->MemberID != $member->ID) {
                     $updateMember = false;
                     if (!$this->order->MemberID) {
                         $updateMember = true;
                     }
                     if (!$member->IsShopAdmin()) {
                         $updateMember = true;
                     }
                     if ($updateMember) {
                         $this->order->MemberID = $member->ID;
                         $this->order->write();
                     }
                 }
                 //current order has nothing in it AND the member already has an order: use the old one first
                 if ($this->order->StatusID) {
                     $firstStep = DataObject::get_one("OrderStep");
                     //we assume the first step always exists.
                     //TODO: what sort order?
                     $previousOrderFromMember = DataObject::get_one("Order", "\r\n\t\t\t\t\t\t\t\t\"MemberID\" = " . $member->ID . "\r\n\t\t\t\t\t\t\t\tAND (\"StatusID\" = " . $firstStep->ID . " OR \"StatusID\" = 0)\r\n\t\t\t\t\t\t\t\tAND \"Order\".\"ID\" <> " . $this->order->ID);
                     if ($previousOrderFromMember && $previousOrderFromMember->canView()) {
                         if ($previousOrderFromMember->StatusID) {
                             $this->order->delete();
                             $this->order = $previousOrderFromMember;
                         } else {
                             $previousOrderFromMember->delete();
                         }
                     }
                 }
             }
         }
         if (!$this->order) {
             if ($member) {
                 $firstStep = DataObject::get_one("OrderStep");
                 $previousOrderFromMember = DataObject::get_one("Order", "\"MemberID\" = " . $member->ID . " AND (\"StatusID\" = " . $firstStep->ID . " OR \"StatusID\" = 0)");
                 if ($previousOrderFromMember) {
                     if ($previousOrderFromMember->canView()) {
                         $this->order = $previousOrderFromMember;
                     }
                 }
             }
             if (!$this->order) {
                 //here we cleanup old orders, because they should be cleaned at the same rate that they are created...
                 $cleanUpEveryTime = EcommerceConfig::get("ShoppingCart", "cleanup_every_time");
                 if ($cleanUpEveryTime) {
                     $obj = new CartCleanupTask();
                     $obj->runSilently();
                 }
                 //create new order
                 $this->order = new Order();
                 if ($member) {
                     $this->order->MemberID = $member->ID;
                 }
                 $this->order->write();
             }
             Session::set($sessionVariableName, intval($this->order->ID));
         }
         //member just logged in and is not associated with order yet
         //if you are not logged in but the order belongs to a member then clear the cart.
         /***** THIS IS NOT CORRECT, BECAUSE YOU CAN CREATE AN ORDER FOR A USER AND NOT BE LOGGED IN!!! ***
         			elseif($this->order->MemberID && !$member) {
         				$this->clear();
         				return false;
         			}
         			*/
         if ($this->order && $this->order->exists() && $this->order->StatusID) {
             $this->order->calculateOrderAttributes();
         }
     }
     return $this->order;
 }
コード例 #22
0
ファイル: AdminBasePresenter.php プロジェクト: soundake/pd
 public function handleRemove($id)
 {
     $this->items->delete($id);
     $this->flashMessage('Item was deleted forever.', 'ok');
     $this->redirect('this');
 }