Example #1
0
    /**
     * Get recent versions of an object, or of objects of a specific
     * class. If `$limit` is set to `true` (boolean), it will return
     * a count of the history.
     */
    public static function history($obj, $limit = 10, $offset = 0)
    {
        if ($limit === true) {
            // return a count instead of the results
            if (is_string($obj)) {
                // return for a class type
                return count(Versions::query()->where('class', $obj)->group('pkey')->fetch_field('pkey'));
            }
            // return for an individual object
            return count(Versions::query()->where('class', get_class($obj))->where('pkey', $obj->{$obj->key})->fetch_field('pkey'));
        }
        if (is_string($obj)) {
            // return for a class type
            if (!is_numeric($limit)) {
                return array();
            }
            if (!is_numeric($offset)) {
                return array();
            }
            return DB::fetch('select * from `#prefix#versions` 
				 where `id` in
				 	(select max(`id`) from `#prefix#versions`
				 	 where `class` = ?
				 	 group by `pkey`)
				 order by `ts` desc
				 limit ' . $limit . ' offset ' . $offset, $obj);
        }
        // return for an individual object
        return Versions::query()->where('class', get_class($obj))->where('pkey', $obj->{$obj->key})->order('ts desc')->fetch_orig($limit, $offset);
    }
Example #2
0
 /**
  * Get recent versions of an object, or of objects of a specific
  * class. If `$limit` is set to `true` (boolean), it will return
  * a count of the history.
  */
 public static function history($obj, $limit = 10, $offset = 0)
 {
     if ($limit === true) {
         if (is_string($obj)) {
             return count(Versions::query()->where('class', $obj)->group('pkey')->fetch_field('pkey'));
         }
         return count(Versions::query()->where('class', get_class($obj))->where('pkey', $obj->{$obj->key})->fetch_field('pkey'));
     }
     if (is_string($obj)) {
         return Versions::query()->where('class', $obj)->order('ts desc')->group('pkey')->fetch_orig($limit, $offset);
     }
     return Versions::query()->where('class', get_class($obj))->where('pkey', $obj->{$obj->key})->order('ts desc')->fetch_orig($limit, $offset);
 }