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;
             }
         }
     }
 }
Exemple #3
0
 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'));
         }
     }
 }