Esempio n. 1
0
    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));
        }
    }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 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);
 }
Esempio n. 6
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']));
 }
Esempio n. 7
0
 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);
 }