function processData($received_data = array()) { $mainframe =& JFactory::getApplication(); $connection_name = $received_data['connection_name']; require_once JPATH_SITE . DS . 'components' . DS . 'com_chronoconnectivity' . DS . 'libraries' . DS . 'chronoconnection.php'; $MyConnection =& CFChronoConnection::getInstance($connection_name); /*$redirect = $MyConnection->connection_url; if($MyConnection->connection_area != 'admin'){ //$redirect = JRoute::_($MyConnection->connection_url, true); }*/ $mainframe->redirect(JRoute::_($MyConnection->connection_url, false)); }
function processData($form, $actiondata, $received_data = array()) { $params = $this->params; require_once JPATH_SITE . DS . 'components' . DS . 'com_chronoconnectivity' . DS . 'libraries' . DS . 'chronoconnection.php'; $task = $received_data['task']; $connection_name = $received_data['connection_name']; //get the data $data = array(); if (isset($received_data['data'])) { $data = $received_data['data']; } $return = true; //connection instance $MyConnection =& CFChronoConnection::getInstance($connection_name); //print_r2(array('task' => $task, 'name' => $connection_name, 'data' => $data)); switch ($task) { case 'delete_data': //check permissions $acl_result = $MyConnection->check_permissions('delete', $data); if ($acl_result === false) { $MyConnection->permission_deny(); $return = false; break; } else { if (is_array($acl_result)) { $data = $acl_result; } } //delete records code here $return = $MyConnection->delete_record_data($data); break; case 'save_data': //check permissions $r_id = null; if (is_array($data)) { $form->data = array_merge($form->data, $data); } if (strlen($MyConnection->connection_model_id) > 0) { if (isset($form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary]) && !empty($form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary])) { $r_id = $form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary]; } } else { if (isset($form->data[$MyConnection->connection_table_primary]) && !empty($form->data[$MyConnection->connection_table_primary])) { $r_id = $form->data[$MyConnection->connection_table_primary]; } } $acl_result = $MyConnection->check_permissions('save', $r_id); if ($acl_result === false) { $MyConnection->permission_deny(); $return = false; break; } else { if (is_array($acl_result)) { $r_id = $acl_result[0]; } } //save/update data $return = $MyConnection->save_action($data); break; case 'edit_data': //check permissions $acl_result = $MyConnection->check_permissions('edit', $data); if ($acl_result === false) { $MyConnection->permission_deny(); $return = false; break; } else { if (is_array($acl_result)) { $data = $acl_result[0]; } } //edit/load record here $row_data = $MyConnection->read_record_data($data); if (is_array($row_data)) { $form->data = array_merge($row_data, $form->data); } $form = $MyConnection->addFormExtension($form, 'edit'); break; /*case 'binary_data': //check permissions $acl_result = $MyConnection->check_permissions('binary', $data); if($acl_result === false){ $MyConnection->permission_deny(); $return = false; break; }else if(is_array($acl_result)){ $data = $acl_result; } //binary records code here $field_name = $received_data['field_name']; $return = $MyConnection->binary_record_data($field_name, $data); break;*/ /*case 'binary_data': //check permissions $acl_result = $MyConnection->check_permissions('binary', $data); if($acl_result === false){ $MyConnection->permission_deny(); $return = false; break; }else if(is_array($acl_result)){ $data = $acl_result; } //binary records code here $field_name = $received_data['field_name']; $return = $MyConnection->binary_record_data($field_name, $data); break;*/ case 'list_data': default: //check permissions if ($MyConnection->check_permissions('list', $data) === false) { $this->permission_deny(); $return = false; break; } //list records code here $actiondata->content1 = $MyConnection->get_list_output(); break; } //check events if ($return === true) { $this->events['success'] = 1; } else { $this->events['fail'] = 1; if (is_string($return)) { if ((bool) $params->get('show_returned_errors', 0) === true) { $form->validation_errors[] = $return; } else { $form->validation_errors[] = $params->get('error_message', ''); $form->debug['Chrono Connectivity Task'][$actiondata->order] = $return; } } } }
function getConnectionVar($var) { if (!empty($this->connection_name)) { $MyConnection = CFChronoConnection::getInstance($this->connection_name); if (isset($MyConnection->{$var})) { return $MyConnection->{$var}; } } return null; }
function run($form, $actiondata) { $mainframe =& JFactory::getApplication(); $params = new JParameter($actiondata->params); $session_token = $form->getSessionToken(); $session =& JFactory::getSession(); //$session->clear('chronoforms', md5('chrono')); if ($session->has('chronoforms', md5('chrono'))) { $session_data = $session->get('chronoforms', array(), md5('chrono')); //print_r2($session_data); if (isset($session_data['apps']['chrono_connectivity'][$session_token]['connection_name'][$actiondata->order])) { require_once JPATH_SITE . DS . 'components' . DS . 'com_chronoconnectivity' . DS . 'libraries' . DS . 'chronoconnection.php'; $task = $session_data['apps']['chrono_connectivity'][$session_token]['task'][$actiondata->order]; $connection_name = $session_data['apps']['chrono_connectivity'][$session_token]['connection_name'][$actiondata->order]; $data = $session_data['apps']['chrono_connectivity'][$session_token]['data'][$actiondata->order]; $return = true; $MyConnection =& CFChronoConnection::getInstance($connection_name); //print_r2(array('task' => $task, 'name' => $connection_name, 'data' => $data)); switch ($task) { case 'delete_data': //check permissions if ($MyConnection->check_permissions('delete', $data) === false) { $MyConnection->permission_deny(); $return = false; break; } //delete records code here $return = $MyConnection->delete_record_data($data); break; case 'save_data': //check permissions $r_id = null; $form->data = array_merge($form->data, $data); if (strlen($MyConnection->connection_model_id) > 0) { if (isset($form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary]) && !empty($form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary])) { $r_id = $form->data[$MyConnection->connection_model_id][$MyConnection->connection_table_primary]; } } else { if (isset($form->data[$MyConnection->connection_table_primary]) && !empty($form->data[$MyConnection->connection_table_primary])) { $r_id = $form->data[$MyConnection->connection_table_primary]; } } if ($MyConnection->check_permissions('save', $r_id) === false) { $MyConnection->permission_deny(); $return = false; break; } //save/update data $return = $MyConnection->save_action($data); break; case 'edit_data': //check permissions if ($MyConnection->check_permissions('edit', $data) === false) { $MyConnection->permission_deny(); $return = false; break; } //edit/load record here $row_data = $MyConnection->read_record_data($data); $form->data = array_merge($row_data, $form->data); //update the form code $form = $MyConnection->updateChronoForm($form); break; case 'binary_data': //check permissions if ($MyConnection->check_permissions('binary', $data) === false) { $this->permission_deny(); $return = false; break; } //binary records code here $field_name = $session_data['apps']['chrono_connectivity'][$session_token]['field_name'][$actiondata->order]; $return = $MyConnection->binary_record_data($field_name, $data); break; case 'list_data': default: //check permissions if ($MyConnection->check_permissions('list', $data) === false) { $this->permission_deny(); $return = false; break; } //list records code here $actiondata->content1 = $MyConnection->get_list_output(); break; } //check events if ($return === true) { $this->events['success'] = 1; } else { $this->events['fail'] = 1; if (is_string($return)) { if ((bool) $params->get('show_returned_errors', 0) === true) { $form->validation_errors[] = $return; } else { $form->validation_errors[] = $params->get('error_message', ''); $form->debug['Chrono Connectivity Task'][$actiondata->order] = $return; } } } } else { $this->events['fail'] = 1; if ((bool) $params->get('show_returned_errors', 0) === true) { $form->validation_errors[] = "Error occurred, session data couldn't be found."; } else { $form->validation_errors[] = $params->get('error_message', ''); $form->debug['Chrono Connectivity Task'][$actiondata->order] = "Error occurred, session data couldn't be found."; } } //purge old session data if ((bool) $params->get('purge_old_data', 1) === true) { $session_lifetime = (int) $params->get('purge_data_lifetime', 15) * 60; foreach ($session_data['apps']['chrono_connectivity'] as $token => $form_data) { if (isset($form_data['started'][$actiondata->order])) { $data_expiry = $form_data['started'][$actiondata->order] + $session_lifetime; if ($data_expiry <= time()) { unset($session_data['apps']['chrono_connectivity'][$token]); } } } $session->set('chronoforms', $session_data, md5('chrono')); } } }