public function get($params = false)
{
$table = $this->tables['modules'];
if (is_string($params)) {
$params = parse_str($params, $params2);
$params = $options = $params2;
}
$params['table'] = $table;
$params['group_by'] = 'module';
$params['order_by'] = 'position asc';
$params['cache_group'] = 'modules/global';
if (isset($params['id'])) {
$params['limit'] = 1;
} else {
$params['limit'] = 1000;
}
if (isset($params['module'])) {
$params['module'] = str_replace('/admin', '', $params['module']);
}
if (isset($params['keyword'])) {
$params['search_in_fields'] = array('name', 'module', 'description', 'author', 'website', 'version', 'help');
}
if (!isset($params['ui'])) {
// $params['ui'] = 1;
//
}
if (isset($params['ui']) and $params['ui'] == 'any') {
unset($params['ui']);
}
$data = $this->app->database_manager->get($params);
if (is_array($data) and !empty($data)) {
if (isset($data['settings']) and !is_array($data['settings'])) {
$data['settings'] = json_decode($data['settings']);
} else {
foreach ($data as $k => $v) {
if (isset($v['settings']) and !is_array($v['settings'])) {
$v['settings'] = json_decode($v['settings']);
$data[$k] = $v;
}
}
}
}
return $data;
}