function execute(&$form, $action_id) { $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); $model_id = $config->get('model_id', 'Data'); $model_id = empty($model_id) ? 'Data' : $model_id; if ($config->get('enabled', 0)) { if ($config->get('ndb_enable', 0)) { \GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('ndb_table_name', ''), 'dbo_config' => array('type' => $config->get('ndb_driver', 'mysql'), 'host' => $config->get('ndb_host', 'localhost'), 'name' => $config->get('ndb_database', ''), 'user' => $config->get('ndb_user', ''), 'pass' => $config->get('ndb_password', ''), 'prefix' => $config->get('ndb_prefix', 'jos_')))); } else { if (!$config->get('tablename', '')) { return; } //\GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('tablename', ''))); $class_code = ' namespace GCore\\Models; if(!class_exists("\\GCore\\Models\\' . $model_id . '", false)){ class ' . $model_id . ' extends \\GCore\\Libs\\Model { var $tablename = "' . $config->get('tablename', '') . '"; function beforeSave(&$data, &$params, $mode){ if($mode == "create" AND empty($data["uniq_id"])){ $data["uniq_id"] = \\GCore\\Libs\\Str::rand(); } } } } '; eval($class_code); } $model_class = '\\GCore\\Models\\' . $model_id; if (!class_exists($model_class)) { $form->debug[$action_id][self::$title]['Queries'] = "Error creating the model class, please try a different model id."; return; } $data = $form->data; if ((bool) $config->get('save_under_modelid', 0) === true) { $data = $form->data[$model_id]; } $user = \GCore\Libs\Base::getUser(); $conditions = eval('?>' . $config->get('conditions', '')); $initial_queries = $model_class::getInstance()->dbo->log; if ((bool) $config->get('multi_save', 0) === true) { //$data['user_id'] = !empty($data['user_id']) ? $data['user_id'] : $user['id']; $model_class::getInstance()->saveAll($data, array('new' => (bool) $config->get('force_save', 0), 'conditions' => $conditions)); } else { $data['user_id'] = !empty($data['user_id']) ? $data['user_id'] : $user['id']; $model_class::getInstance()->save($data, array('new' => (bool) $config->get('force_save', 0), 'conditions' => $conditions)); } //insert the pkey value to data if ((bool) $config->get('save_under_modelid', 0) === true) { $form->data[$model_id][$model_class::getInstance()->pkey] = $model_class::getInstance()->id; } else { $form->data[$model_class::getInstance()->pkey] = $model_class::getInstance()->id; } $form->debug[$action_id][self::$title]['Queries'] = array_values(array_diff($model_class::getInstance()->dbo->log, $initial_queries)); } }
function execute(&$form, $action_id) { $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); if (!$config->get('enabled')) { return; } $tablename = $config->get('tablename', ''); if (!empty($tablename)) { \GCore\Libs\Model::generateModel('ListData', array('tablename' => $tablename)); $list_model = '\\GCore\\Models\\ListData'; if ($config->get('columns', '')) { $columns = array_map('trim', explode("\n", $config->get('columns', ''))); } else { $columns = $list_model::getInstance()->dbo->getTableColumns($tablename); } if ($config->get('titles', '')) { $titles = array_map('trim', explode("\n", $config->get('titles', ''))); } else { $titles = $columns; } if ($config->get('order_by', '')) { $order_by = array_map('trim', explode(',', $config->get('order_by', ''))); } else { $order_by = $list_model::getInstance()->pkey; } $file_name = 'csv_export_' . $tablename . '_' . date('YmdHi') . '.csv'; $rows = $list_model::getInstance()->find('all', array('fields' => $columns, 'order' => $order_by)); } else { if (!$config->get('data_path', '')) { return; } $rows = \GCore\Libs\Arr::getVal($form->data, explode('.', $config->get('data_path', '')), array()); $file_name = 'csv_export_' . date('YmdHi') . '.csv'; } header('Content-type: text/csv'); header('Content-Disposition: attachment; filename=' . $file_name); header('Pragma: no-cache'); header('Expires: 0'); $data = array($titles); if (!empty($rows)) { foreach ($rows as $row) { $data[] = $row['ListData']; } } @ob_end_clean(); self::outputCSV($data); exit; }
function execute(&$form, $action_id) { $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); $model_id = $config->get('model_id', 'Data'); $model_id = empty($model_id) ? 'Data' : $model_id; if ($config->get('tablename', '')) { \GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('tablename', ''))); $model_class = '\\GCore\\Models\\' . $model_id; //$data = $form->data; $find_type = 'first'; if ((bool) $config->get('multi_read', 0) === true) { $find_type = 'all'; } $find_params = array(); $conditions = eval('?>' . $config->get('conditions', '')); $model_class::getInstance()->conditions = is_array($conditions) ? $conditions : array(); if ($config->get('fields', '')) { $find_params['fields'] = array_map('trim', explode(',', $config->get('fields', ''))); } if ($config->get('order', '')) { $find_params['order'] = array_map('trim', explode(',', $config->get('order', ''))); } if ($config->get('group', '')) { $find_params['group'] = array_map('trim', explode(',', $config->get('group', ''))); } $initial_queries = $model_class::getInstance()->dbo->log; //run query $rows = $model_class::getInstance()->find($find_type, $find_params); $form->debug[$action_id][self::$title]['Queries'] = array_values(array_diff($model_class::getInstance()->dbo->log, $initial_queries)); $data = array(); if ((bool) $config->get('multi_read', 0) === true) { foreach ($rows as $k => $row) { $data[$k] = $row[$model_id]; } } else { $data = $rows[$model_id]; } if ((bool) $config->get('load_under_modelid', 0) === true) { $form->data[$model_id] = $data; } else { $form->data = array_merge($form->data, $data); } } //pr($form->data); }
function execute(&$form, $action_id) { $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); $model_id = $config->get('model_id', 'Data'); $model_id = empty($model_id) ? 'Data' : $model_id; if ($config->get('tablename', '')) { \GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('tablename', ''))); $model_class = '\\GCore\\Models\\' . $model_id; $data = $form->data; if ((bool) $config->get('save_under_modelid', 0) === true) { $data = $form->data[$model_id]; } $user = \GCore\Libs\Base::getUser(); $data['user_id'] = $user['id']; $initial_queries = $model_class::getInstance()->dbo->log; if ((bool) $config->get('multi_save', 0) === true) { $model_class::getInstance()->saveAll($data); } else { $model_class::getInstance()->save($data); } $form->debug[$action_id][self::$title]['Queries'] = array_values(array_diff($model_class::getInstance()->dbo->log, $initial_queries)); } }
function backup_records() { if (empty($this->data['table'])) { $session = \GCore\Libs\Base::getSession(); $session->setFlash('error', l_('CF_NO_TABLES_SELECTED')); $this->redirect(r_('index.php?ext=chronoforms')); } \GCore\Libs\Model::generateModel('ListData', array('tablename' => $this->data['table'])); $list_model = '\\GCore\\Models\\ListData'; $list = $list_model::getInstance()->find('all', array('conditions' => array($list_model::getInstance()->pkey => $this->data['gcb']))); $rows = array(); foreach ($list as $i) { $rows[] = $i['ListData']; } $form = new \stdClass(); $form->actions_config[0] = array('data_path' => 'ListData', 'enabled' => 1); $form->data['ListData'] = $rows; $exporter = new \GCore\Admin\Extensions\Chronoforms\Actions\CsvExport\CsvExport(); $exporter->execute($form, 0); }
function delete_data() { if (empty($this->data['table'])) { $session = \GCore\Libs\Base::getSession(); $session->setFlash('error', l_('CF_NO_TABLES_SELECTED')); $this->redirect(r_('index.php?ext=chronoforms')); } \GCore\Libs\Model::generateModel('ListData', array('tablename' => $this->data['table'])); $list_model = '\\GCore\\Models\\ListData'; $this->delete_model = $list_model::getInstance(); parent::_delete(); $this->redirect(r_('index.php?ext=chronoforms&act=list_data&table=' . $this->data['table'])); }
function execute(&$form, $action_id) { $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); $model_id = $config->get('model_id', 'Data'); $model_id = empty($model_id) ? 'Data' : $model_id; if (!$config->get('enabled', 1)) { return; } if ($config->get('tablename', '') or $config->get('ndb_enable', 0)) { if ($config->get('ndb_enable', 0)) { \GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('ndb_table_name', ''), 'dbo_config' => array('type' => $config->get('ndb_driver', 'mysql'), 'host' => $config->get('ndb_host', 'localhost'), 'name' => $config->get('ndb_database', ''), 'user' => $config->get('ndb_user', ''), 'pass' => $config->get('ndb_password', ''), 'prefix' => $config->get('ndb_prefix', 'jos_')))); } else { \GCore\Libs\Model::generateModel($model_id, array('tablename' => $config->get('tablename', ''))); } $model_class = '\\GCore\\Models\\' . $model_id; $model_class = $model_class::getInstance(); if ($config->get('enable_relations', 0)) { $relations = $config->get('relations', array()); foreach ($relations as $relation) { \GCore\Libs\Model::generateModel($relation['model'], array('tablename' => $relation['tablename'])); $join_conditions = !empty($relation['join_conditions']) ? eval('?>' . $relation['join_conditions']) : array(); $model_class->bindModels($relation['type'], array($relation['model'] => array('className' => '\\GCore\\Models\\' . $relation['model'], 'foreignKey' => $relation['fkey'], 'join_conditions' => is_array($join_conditions) ? $join_conditions : array()))); } } //$data = $form->data; $find_type = 'first'; if ((bool) $config->get('multi_read', 0) === true) { $find_type = 'all'; } $find_params = array(); $conditions = eval('?>' . $config->get('conditions', '')); $model_class->conditions = is_array($conditions) ? $conditions : array(); if ($config->get('fields', '')) { $find_params['fields'] = array_map('trim', explode(',', $config->get('fields', ''))); } if ($config->get('order', '')) { $find_params['order'] = array_map('trim', explode(',', $config->get('order', ''))); } if ($config->get('group', '')) { $find_params['group'] = array_map('trim', explode(',', $config->get('group', ''))); } $initial_queries = $model_class->dbo->log; //run query $rows = $model_class->find($find_type, $find_params); if (!empty($rows)) { $this->events['found'] = 1; } else { $this->events['not_found'] = 1; } $form->debug[$action_id][self::$title]['Queries'] = array_values(array_diff($model_class->dbo->log, $initial_queries)); if ($config->get('enable_relations', 0)) { $form->data = array_merge($form->data, $rows); } else { $data = array(); if ((bool) $config->get('multi_read', 0) === true) { foreach ($rows as $k => $row) { $data[$k] = $row[$model_id]; } } else { $data = !empty($rows[$model_id]) ? $rows[$model_id] : array(); } if ((bool) $config->get('load_under_modelid', 0) === true) { $form->data[$model_id] = $data; } else { $form->data = array_merge($form->data, $data); } } } //pr($form->data); }