/**
  * Delete the object. 
  * If we're using logical deletion, mark it deleted and save it, otherwise, delete as usual
  * 
  * @see active_record::delete()
  */
 public function delete()
 {
     if ($this->use_logical_deletion()) {
         db_update($this->get_table_name())->fields(array('deleted' => 'Yes'))->condition($this->get_table_primary_key(), $this->get_id())->execute();
         return TRUE;
     } else {
         return parent::delete();
     }
 }
Esempio n. 2
0
 public static function multiple($fields = array("*"), $where = array(), $sort = array(), $order = "DESC", $offset = 0, $limit = 0)
 {
     $return = array();
     $sql = "SELECT %s FROM %s%s%s%s;";
     $fields_str = "";
     if (empty($fields) || self::$settings['class'] != "") {
         $fields_str = "*";
     } else {
         if (str_replace("`", "", $fields[0]) == "*") {
             $fields_str = "*";
         } else {
             foreach ($fields as $field) {
                 if ($field != "*") {
                     $fields_str .= sprintf("%s, ", self::filter_field($field));
                 }
             }
             $fields_str = substr($fields_str, 0, -2);
         }
     }
     $sql = sprintf($sql, $fields_str, self::filter_table(self::$settings['table']), self::where_str($where), self::order_str($sort, $order), self::limit_str($offset, $limit));
     debug::set('sql', self::$settings['class'] . '::' . __FUNCTION__, $sql);
     $rows = parent::rows($sql);
     foreach ($rows as $row) {
         $return[] = $row;
     }
     if (self::$settings['class'] != "") {
         $return_objs = array();
         foreach ($return as $r) {
             self::instance();
             utils::array_to_object($r, self::$_instance);
             $return_objs[] = self::$_instance;
             self::$_instance = null;
         }
         return $return_objs;
     }
     return $return;
 }