public static function parseArguments($serialized, $class, $method) { $unserialized = unserialize($serialized); $method = new ReflectionMethod($class, $method); $params = $method->getParameters(); $args = array(); foreach ($params as $param) { $name = $param->getName(); $args[$name] = $unserialized[$name]; } $args = Control::unSerializeAll($args); if ($class == 'Record') { $args['record_id'] = $_REQUEST['id']; } return $args; }
public static function serializeMultiples($fields_array, $table = false) { global $CFG; if ($table) { $table_fields = self::getTableFields($table); } if (is_array($fields_array)) { foreach ($fields_array as $key => $value) { if ($key == 'argument_insert_array') { continue; } $new_array = array(); if (stristr($value, 'array:')) { $value = str_ireplace('array:', '', $value); if (stristr($value, '|')) { if (stristr($value, '|||')) { $array = explode('|||', $value); if (is_array($array)) { foreach ($array as $v) { $array1 = explode('|', $v); if (!empty($array1[0])) { $i = $array1[0]; $new_array[$i] = $array1[1]; } } } } else { $array1 = explode('|', $value); if (!empty($array1[0])) { $i = $array1[0]; $new_array[$i] = $array1[1]; } } } else { $c_array = self::serializeCommas($value); $new_array = array_merge($new_array, $c_array); } $fields_array[$key] = serialize($new_array); } elseif ($table_fields[$key]['Type'] == 'datetime') { $fields_array[$key] = date('Y-m-d H:i:s', strtotime($value)); } } } if (!$CFG->bypass_unserialize) { if (is_array($fields_array)) { $fields_array = Control::unSerializeAll($fields_array); foreach ($fields_array as $name => $value) { if (stristr($name, 'argument')) { $arg_name = str_replace('argument_', '', $name); $arguments[$arg_name] = $value; unset($fields_array[$name]); } } if ($arguments) { $fields_array['arguments'] = serialize($arguments); } } } return $fields_array; }
function serializeMultiples($fields_array) { global $CFG; if (is_array($fields_array)) { $new_array = array(); foreach ($fields_array as $key => $value) { if (stristr($value, 'array:')) { $value = str_ireplace('array:', '', $value); if (stristr($value, '|')) { if (stristr($value, '|||')) { $array = explode('|||', $value); if (is_array($array)) { foreach ($array as $v) { $array1 = explode('|', $v); if (!empty($array1[0])) { $i = $array1[0]; $new_array[$i] = $array1[1]; } } } } else { $array1 = explode('|', $value); if (!empty($array1[0])) { $i = $array1[0]; $new_array[$i] = $array1[1]; } } } else { $c_array = FormDB::serializeCommas($value); $new_array = array_merge($new_array, $c_array); } $fields_array[$key] = serialize($new_array); } elseif (stristr($key, 'date')) { $fields_array[$key] = date('Y-m-d H:i:s', strtotime($value)); } } } if (!$CFG->bypass_unserialize) { if (is_array($fields_array)) { $fields_array = Control::unSerializeAll($fields_array); foreach ($fields_array as $name => $value) { if (stristr($name, 'argument')) { $arg_name = str_replace('argument_', '', $name); $arguments[$arg_name] = $value; unset($fields_array[$name]); } } if ($arguments) { $fields_array['arguments'] = serialize($arguments); } } } return $fields_array; }