|
|
@ -10,22 +10,22 @@ |
|
|
|
* @package chamilo.library |
|
|
|
* @package chamilo.library |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
class Model { |
|
|
|
class Model { |
|
|
|
|
|
|
|
|
|
|
|
var $table; |
|
|
|
public $table; |
|
|
|
var $columns; |
|
|
|
public $columns; |
|
|
|
var $required; |
|
|
|
public $required; |
|
|
|
var $is_course_model =false; |
|
|
|
public $is_course_model =false; |
|
|
|
|
|
|
|
|
|
|
|
// var $pk; some day this will be implemented |
|
|
|
public function __construct() |
|
|
|
|
|
|
|
{ |
|
|
|
public function __construct() { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Useful finder - experimental akelos like only use in notification.lib.php send function |
|
|
|
* Useful finder - experimental akelos like only use in notification.lib.php send function |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function find($type, $options = null) { |
|
|
|
public function find($type, $options = null) |
|
|
|
switch($type) { |
|
|
|
{ |
|
|
|
|
|
|
|
switch ($type) { |
|
|
|
case 'all': |
|
|
|
case 'all': |
|
|
|
return self::get_all($options); |
|
|
|
return self::get_all($options); |
|
|
|
break; |
|
|
|
break; |
|
|
@ -33,49 +33,60 @@ class Model { |
|
|
|
return self::get($type); |
|
|
|
return self::get($type); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Delets an item |
|
|
|
* Deletes an item |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function delete($id) { |
|
|
|
public function delete($id) |
|
|
|
if (empty($id) or $id != strval(intval($id))) { return false; } |
|
|
|
{ |
|
|
|
$params = array('id = ?' => $id); |
|
|
|
if (empty($id) or $id != strval(intval($id))) { |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$params = array('id = ?' => $id); |
|
|
|
if ($this->is_course_model) { |
|
|
|
if ($this->is_course_model) { |
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
$params = array('id = ? AND c_id = ?' => array($id, $course_id)); |
|
|
|
$params = array('id = ? AND c_id = ?' => array($id, $course_id)); |
|
|
|
} |
|
|
|
} |
|
|
|
// Database table definition |
|
|
|
// Database table definition |
|
|
|
$result = Database :: delete($this->table,$params ); |
|
|
|
$result = Database::delete($this->table, $params); |
|
|
|
if ($result != 1){ |
|
|
|
if ($result != 1) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private function clean_parameters($params){ |
|
|
|
/** |
|
|
|
|
|
|
|
* @param array $params |
|
|
|
|
|
|
|
* @return array |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private function clean_parameters($params) |
|
|
|
|
|
|
|
{ |
|
|
|
$clean_params = array(); |
|
|
|
$clean_params = array(); |
|
|
|
if (!empty($params)) { |
|
|
|
if (!empty($params)) { |
|
|
|
foreach($params as $key=>$value) { |
|
|
|
foreach ($params as $key=>$value) { |
|
|
|
if (in_array($key, $this->columns)) { |
|
|
|
if (in_array($key, $this->columns)) { |
|
|
|
$clean_params[$key] = $value; |
|
|
|
$clean_params[$key] = $value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return $clean_params; |
|
|
|
return $clean_params; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Displays the title + grid |
|
|
|
* Displays the title + grid |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function display() { |
|
|
|
public function display() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Gets an element |
|
|
|
* Gets an element |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function get($id) { |
|
|
|
public function get($id) |
|
|
|
if (empty($id)) { return array(); } |
|
|
|
{ |
|
|
|
|
|
|
|
if (empty($id)) { |
|
|
|
|
|
|
|
return array(); |
|
|
|
|
|
|
|
} |
|
|
|
$params = array('id = ?'=>intval($id)); |
|
|
|
$params = array('id = ?'=>intval($id)); |
|
|
|
if ($this->is_course_model) { |
|
|
|
if ($this->is_course_model) { |
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
$course_id = api_get_course_int_id(); |
|
|
@ -84,27 +95,39 @@ class Model { |
|
|
|
$result = Database::select('*',$this->table, array('where' => $params),'first'); |
|
|
|
$result = Database::select('*',$this->table, array('where' => $params),'first'); |
|
|
|
return $result; |
|
|
|
return $result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function get_all($options = null) { |
|
|
|
/** |
|
|
|
|
|
|
|
* @param array $options |
|
|
|
|
|
|
|
* @return array |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public function get_all($options = null) |
|
|
|
|
|
|
|
{ |
|
|
|
return Database::select('*', $this->table, $options); |
|
|
|
return Database::select('*', $this->table, $options); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function get_all_for_export($options = null) { |
|
|
|
/** |
|
|
|
|
|
|
|
* @param array $options |
|
|
|
|
|
|
|
* @return array |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public function get_all_for_export($options = null) |
|
|
|
|
|
|
|
{ |
|
|
|
return Database::select('name, description', $this->table, $options); |
|
|
|
return Database::select('name, description', $this->table, $options); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Get the count of elements |
|
|
|
* Get the count of elements |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function get_count() { |
|
|
|
public function get_count() |
|
|
|
|
|
|
|
{ |
|
|
|
$row = Database::select('count(*) as count', $this->table, array('where' => array('parent_id = ?' => '0')),'first'); |
|
|
|
$row = Database::select('count(*) as count', $this->table, array('where' => array('parent_id = ?' => '0')),'first'); |
|
|
|
return $row['count']; |
|
|
|
return $row['count']; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* a little bit of javascript to display |
|
|
|
* a little bit of javascript to display |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function javascript() { |
|
|
|
public function javascript() |
|
|
|
|
|
|
|
{ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -116,15 +139,15 @@ class Model { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function save($params, $show_query = false) { |
|
|
|
public function save($params, $show_query = false) { |
|
|
|
$params = $this->clean_parameters($params); |
|
|
|
$params = $this->clean_parameters($params); |
|
|
|
|
|
|
|
|
|
|
|
if ($this->is_course_model) { |
|
|
|
if ($this->is_course_model) { |
|
|
|
if (!isset($params['c_id']) || empty($params['c_id'])) { |
|
|
|
if (!isset($params['c_id']) || empty($params['c_id'])) { |
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!empty($this->required)) { |
|
|
|
if (!empty($this->required)) { |
|
|
|
$require_ok = true; |
|
|
|
$require_ok = true; |
|
|
|
$kay_params = array_keys($params); |
|
|
|
$kay_params = array_keys($params); |
|
|
|
foreach ($this->required as $field) { |
|
|
|
foreach ($this->required as $field) { |
|
|
|
if (!in_array($field, $kay_params)) { |
|
|
|
if (!in_array($field, $kay_params)) { |
|
|
@ -132,56 +155,57 @@ class Model { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!$require_ok) { |
|
|
|
if (!$require_ok) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (in_array('created_at', $this->columns)) { |
|
|
|
if (in_array('created_at', $this->columns)) { |
|
|
|
$params['created_at'] = api_get_utc_datetime(); |
|
|
|
$params['created_at'] = api_get_utc_datetime(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!empty($params)) { |
|
|
|
if (!empty($params)) { |
|
|
|
$id = Database::insert($this->table, $params, $show_query); |
|
|
|
$id = Database::insert($this->table, $params, $show_query); |
|
|
|
if (is_numeric($id)){ |
|
|
|
if (is_numeric($id)) { |
|
|
|
return $id; |
|
|
|
return $id; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Updates the obj in the database. The $params['id'] must exist in order to update a record |
|
|
|
* Updates the obj in the database. The $params['id'] must exist in order to update a record |
|
|
|
* |
|
|
|
|
|
|
|
* @param array $values |
|
|
|
* @param array $values |
|
|
|
|
|
|
|
* @return bool |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function update($params) { |
|
|
|
public function update($params) |
|
|
|
$params = $this->clean_parameters($params); |
|
|
|
{ |
|
|
|
|
|
|
|
$params = $this->clean_parameters($params); |
|
|
|
if ($this->is_course_model) { |
|
|
|
|
|
|
|
|
|
|
|
if ($this->is_course_model) { |
|
|
|
if (!isset($params['c_id']) || empty($params['c_id'])) { |
|
|
|
if (!isset($params['c_id']) || empty($params['c_id'])) { |
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//If the class has the updated_at field we update the date |
|
|
|
//If the class has the updated_at field we update the date |
|
|
|
if (in_array('updated_at', $this->columns)) { |
|
|
|
if (in_array('updated_at', $this->columns)) { |
|
|
|
$params['updated_at'] = api_get_utc_datetime(); |
|
|
|
$params['updated_at'] = api_get_utc_datetime(); |
|
|
|
} |
|
|
|
} |
|
|
|
//If the class has the created_at field then we remove it |
|
|
|
//If the class has the created_at field then we remove it |
|
|
|
if (in_array('created_at', $this->columns)) { |
|
|
|
if (in_array('created_at', $this->columns)) { |
|
|
|
unset($params['created_at']); |
|
|
|
unset($params['created_at']); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!empty($params) && !empty($params['id'])) { |
|
|
|
if (!empty($params) && !empty($params['id'])) { |
|
|
|
$id = intval($params['id']); |
|
|
|
$id = intval($params['id']); |
|
|
|
unset($params['id']); //To not overwrite the id |
|
|
|
unset($params['id']); //To not overwrite the id |
|
|
|
if (is_numeric($id)) { |
|
|
|
if (is_numeric($id)) { |
|
|
|
$result = Database::update($this->table, $params, array('id = ?'=>$id)); |
|
|
|
$result = Database::update($this->table, $params, array('id = ?'=>$id)); |
|
|
|
if ($result){ |
|
|
|
if ($result) { |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|