public function extended_save($table_name_or_params, $params = null)
{
if ($params === null) {
$params = $table_name_or_params;
} else {
if ($params != false) {
$params = parse_params($params);
} else {
$params = array();
}
$params['table'] = $table_name_or_params;
}
if (is_string($params)) {
$params = parse_params($params);
}
if (!isset($params['table'])) {
return false;
}
$ext_params = $params;
$saved_id = $this->save($params);
if ($saved_id == false) {
return false;
}
if (!empty($ext_params)) {
// $data_str = 'attribute_';
// $data_str_l = strlen($data_str);
// foreach ($ext_params as $k => $v) {
// if (is_string($k)){
// if (strlen($k) > $data_str_l){
// $rest = substr($k, 0, $data_str_l);
// $left = substr($k, $data_str_l, strlen($k));
// if ($rest==$data_str){
// if (!isset($ext_params['attributes'])){
// $ext_params['attributes'] = array();
// }
// $ext_params['attributes'][ $left ] = $v;
// }
// }
// }
// }
}
if (!is_array($saved_id) and $saved_id != 0) {
$ext_params['id'] = $saved_id;
event_trigger('mw.database.extended_save', $ext_params);
if (isset($ext_params['attributes'])) {
$this->extended_save_attributes($ext_params);
}
if (isset($ext_params['categories'])) {
$this->extended_save_categories($ext_params);
}
if (isset($ext_params['tags'])) {
$this->extended_save_tags($ext_params);
}
if (isset($ext_params['data_fields'])) {
$this->extended_save_data_fields($ext_params);
}
if (isset($ext_params['images'])) {
$this->extended_save_images($ext_params);
}
if (isset($ext_params['custom_fields'])) {
$this->extended_save_custom_fields($ext_params);
}
return $saved_id;
} else {
return $params;
}
}