Example #1
0
 function _save_form_wizard()
 {
     //generate XML code for the form
     $chronoform = array();
     $formdata = array();
     if (!empty($_POST['chronofield'])) {
         foreach ($_POST['chronofield'] as $key => $fielddata) {
             $formdata['field_' . $key] = array();
             foreach ($fielddata as $fieldname => $fieldvalue) {
                 $formdata['field_' . $key][$fieldname] = $fieldvalue;
             }
         }
     }
     //if easy mode, load the preset events actions
     if (isset($_POST['wizard_mode']) && $_POST['wizard_mode'] == 'easy') {
         $_POST['chronoaction'][3] = array('type' => 'show_html');
         $_POST['chronoaction'][5] = array('type' => 'event_loop');
         $_POST['chronoaction'][7] = array('type' => 'event_loop');
         $_POST['chronoaction'][16] = array('type' => 'handle_arrays');
     }
     //prepare the actions details for the model
     $formactionsdata = array();
     $action_count = 0;
     if (!empty($_POST['chronoaction'])) {
         foreach ($_POST['chronoaction'] as $key => $actiondata) {
             $type = $_data['ChronoformAction'][$action_count]['type'] = $actiondata['type'];
             $_data['ChronoformAction'][$action_count]['order'] = $key;
             if (isset($actiondata['action_' . $actiondata['type'] . '_' . $key . '_enabled'])) {
                 $_data['ChronoformAction'][$action_count]['enabled'] = $actiondata['action_' . $actiondata['type'] . '_' . $key . '_enabled'];
                 unset($actiondata['action_' . $actiondata['type'] . '_' . $key . '_enabled']);
             } else {
                 $_data['ChronoformAction'][$action_count]['enabled'] = 1;
             }
             //$_data['ChronoformAction'][$action_count]['event'] = $actiondata['action_'.$actiondata['type'].'_'.$key.'_event'];
             //unset($actiondata['action_'.$actiondata['type'].'_'.$key.'_event']);
             if (isset($actiondata['action_' . $actiondata['type'] . '_' . $key . '_content1'])) {
                 $_data['ChronoformAction'][$action_count]['content1'] = $actiondata['action_' . $actiondata['type'] . '_' . $key . '_content1'];
                 unset($actiondata['action_' . $actiondata['type'] . '_' . $key . '_content1']);
             }
             unset($actiondata['type']);
             foreach ($actiondata as $actionname => $actionvalue) {
                 $actiondata[str_replace('action_' . $type . '_' . $key . '_', '', $actionname)] = $actionvalue;
                 unset($actiondata[$actionname]);
             }
             $_data['ChronoformAction'][$action_count]['params'] = $actiondata;
             $action_count++;
         }
     }
     $chronoform['formcode'] = $formdata;
     /*print_r2($_data);
     		die();
     		/*echo '<pre>';
     		print_r($formdata);
     		print_r($_data);
     		print_r($_POST['_form_actions_events_map']);
     		echo '</pre>';*/
     //save form
     $mainframe =& JFactory::getApplication();
     $database =& JFactory::getDBO();
     $row = JTable::getInstance('chronoforms', 'Table');
     if (isset($_POST['data']['Chronoform']['id']) && !empty($_POST['data']['Chronoform']['id'])) {
         $_data['Chronoform']['id'] = $_POST['data']['Chronoform']['id'];
         if (isset($_POST['wizard_mode'])) {
             // && $_POST['wizard_mode'] == 'easy'){
             //load the form
             $database =& JFactory::getDBO();
             $database->setQuery("SELECT * FROM #__chronoforms WHERE id='" . $_data['Chronoform']['id'] . "'");
             $form = $database->loadObject();
             //$_data['Chronoform']['params'] = 'form_mode='.$_POST['wizard_mode'].''."\n".trim($form->params)."\n".'form_mode='.$_POST['wizard_mode'];
             $form_params = new JParameter($form->params);
             $form_params->set('form_mode', $_POST['wizard_mode']);
             $form_params->set('tight_layout', $_POST['params']['tight_layout']);
             $_data['Chronoform']['params'] = $form_params->toString();
         }
     } else {
         $_data['Chronoform']['form_type'] = 1;
         //this is a new form, set it as WIZARD form
         if (isset($_POST['wizard_mode'])) {
             // && $_POST['wizard_mode'] == 'easy'){
             //$_data['Chronoform']['params'] = 'form_mode='.$_POST['wizard_mode'];
             $form_params = new JParameter('');
             $form_params->set('form_mode', $_POST['wizard_mode']);
             $form_params->set('tight_layout', $_POST['params']['tight_layout']);
             $_data['Chronoform']['params'] = $form_params->toString();
         }
     }
     $_POST['data']['Chronoform']['name'] = $_data['Chronoform']['name'] = $_POST['chronoform_name'];
     $_data['Chronoform']['published'] = $_POST['chronoform_published'];
     $_data['Chronoform']['app'] = $_POST['data']['Chronoform']['app'];
     if (isset($_POST['form_type']) && (int) $_POST['form_type'] != 0) {
         $_data['Chronoform']['content'] = ChronoFormsAdmin::_processWizardCode($formdata);
         $_data['Chronoform']['wizardcode'] = var_export($formdata, true);
         /*if(strpos($form->form_details->content, 'validate[') !== false){
         			
         		}*/
     }
     //get the actions events map
     $_data['Chronoform']['events_actions_map'] = base64_encode(serialize($_POST['_form_actions_events_map']['myform']));
     //if easy mode, load the preset events map
     if (isset($_POST['wizard_mode']) && $_POST['wizard_mode'] == 'easy') {
         $_data['Chronoform']['events_actions_map'] = "YToxOntzOjY6ImV2ZW50cyI7YToyOntzOjQ6ImxvYWQiO2E6MTp7czo3OiJhY3Rpb25zIjthOjQ6e3M6MTg6ImNmYWN0aW9uX2xvYWRfanNfMCI7czowOiIiO3M6MTk6ImNmYWN0aW9uX2xvYWRfY3NzXzEiO3M6MDoiIjtzOjIzOiJjZmFjdGlvbl9sb2FkX2NhcHRjaGFfMiI7czowOiIiO3M6MjA6ImNmYWN0aW9uX3Nob3dfaHRtbF8zIjtzOjA6IiI7fX1zOjY6InN1Ym1pdCI7YToxOntzOjc6ImFjdGlvbnMiO2E6MTI6e3M6MjQ6ImNmYWN0aW9uX2NoZWNrX2NhcHRjaGFfNCI7YToxOntzOjY6ImV2ZW50cyI7YToyOntzOjM3OiJjZmFjdGlvbmV2ZW50X2NoZWNrX2NhcHRjaGFfNF9zdWNjZXNzIjtzOjA6IiI7czozNDoiY2ZhY3Rpb25ldmVudF9jaGVja19jYXB0Y2hhXzRfZmFpbCI7YToxOntzOjc6ImFjdGlvbnMiO2E6MTp7czoyMToiY2ZhY3Rpb25fZXZlbnRfbG9vcF81IjtzOjA6IiI7fX19fXM6MjM6ImNmYWN0aW9uX3VwbG9hZF9maWxlc182IjthOjE6e3M6NjoiZXZlbnRzIjthOjI6e3M6MzY6ImNmYWN0aW9uZXZlbnRfdXBsb2FkX2ZpbGVzXzZfc3VjY2VzcyI7czowOiIiO3M6MzM6ImNmYWN0aW9uZXZlbnRfdXBsb2FkX2ZpbGVzXzZfZmFpbCI7YToxOntzOjc6ImFjdGlvbnMiO2E6MTp7czoyMToiY2ZhY3Rpb25fZXZlbnRfbG9vcF83IjtzOjA6IiI7fX19fXM6MjI6ImNmYWN0aW9uX2N1c3RvbV9jb2RlXzgiO3M6MDoiIjtzOjI1OiJjZmFjdGlvbl9oYW5kbGVfYXJyYXlzXzE2IjtzOjA6IiI7czoxODoiY2ZhY3Rpb25fZGJfc2F2ZV85IjtzOjA6IiI7czoxNzoiY2ZhY3Rpb25fZW1haWxfMTAiO3M6MDoiIjtzOjE3OiJjZmFjdGlvbl9lbWFpbF8xMSI7czowOiIiO3M6MTc6ImNmYWN0aW9uX2VtYWlsXzEyIjtzOjA6IiI7czoyMzoiY2ZhY3Rpb25fY3VzdG9tX2NvZGVfMTMiO3M6MDoiIjtzOjMxOiJjZmFjdGlvbl9zaG93X3RoYW5rc19tZXNzYWdlXzE0IjtzOjA6IiI7czoyNToiY2ZhY3Rpb25fcmVkaXJlY3RfdXNlcl8yMCI7czowOiIiO3M6MjA6ImNmYWN0aW9uX2RlYnVnZ2VyXzE4IjtzOjA6IiI7fX19fQ==";
     }
     if (!$row->bind($_data['Chronoform'])) {
         JError::raiseWarning(100, $row->getError());
         $mainframe->redirect("index.php?option=com_chronoforms");
     }
     if (!$row->store()) {
         JError::raiseWarning(100, $row->getError());
         $mainframe->redirect("index.php?option=com_chronoforms");
     }
     $chronoform_id = $row->id;
     //save actions
     if (isset($_data['ChronoformAction']) && !empty($_data['ChronoformAction'])) {
         //delete previous actions to save new ones
         if (isset($_POST['data']['Chronoform']['id']) && !empty($_POST['data']['Chronoform']['id'])) {
             $database->setQuery("DELETE FROM #__chronoform_actions WHERE chronoform_id='" . $_POST['data']['Chronoform']['id'] . "'");
             if (!$database->query()) {
                 JError::raiseWarning(100, $row->getError());
                 $mainframe->redirect("index.php?option=com_chronoforms");
             }
         }
         //save all new actions
         foreach ($_data['ChronoformAction'] as $action) {
             $row = JTable::getInstance('chronoformactions', 'Table');
             $action['chronoform_id'] = $chronoform_id;
             $params = new JParameter('');
             if (isset($action['params']) && is_array($action['params'])) {
                 foreach ($action['params'] as $k => $param) {
                     $params->set($k, $param);
                 }
                 $action['params'] = $params->toString();
             }
             if (!$row->bind($action)) {
                 JError::raiseWarning(100, $row->getError());
                 $mainframe->redirect("index.php?option=com_chronoforms");
             }
             if (!$row->store()) {
                 JError::raiseWarning(100, $row->getError());
                 $mainframe->redirect("index.php?option=com_chronoforms");
             }
         }
     }
     return $chronoform_id;
 }
        ChronoFormsAdmin::install_action();
        break;
    case "updates":
        ChronoFormsAdmin::updates();
        break;
    case "action_task":
        ChronoFormsAdmin::action_task();
        break;
    case "admin_form":
        ChronoFormsAdmin::admin_form();
        break;
    default:
        if (strpos($task, ":") !== false) {
            $details = explode(":", $task);
            JRequest::setVar('task', $details[0]);
            JRequest::setVar('event', $details[1]);
            ChronoFormsAdmin::admin_form();
            break;
        }
        ChronoFormsAdmin::index();
        //delete any temp forms
        //ChronoFormsAdmin::delete_temp();
        break;
}
//define the print_r2 function
function print_r2($array = array())
{
    echo '<pre>';
    print_r($array);
    echo '</pre>';
}
Example #3
0
 function validatelicensedata()
 {
     global $mainframe;
     preg_match('/http(s)*:\\/\\/(.*?)\\//i', $mainframe->getSiteURL(), $matches);
     $database = JFactory::getDBO();
     $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
     $database->setQuery($query);
     $result = $database->loadObject();
     //$configs = JComponentHelper::getParams('com_chronoforms');
     $configs = new JParameter($result->params);
     $postfields = array();
     if (isset($_POST['licensecode']) && !empty($_POST['licensecode'])) {
         $configs->set('licensecode', $_POST['licensecode']);
     }
     $postfields['license_key'] = $configs->get('licensecode', '');
     $postfields['domain_name'] = $matches[2];
     $postfields['pid'] = $_POST['pid'];
     $validstatus = false;
     if (empty($postfields['license_key'])) {
         $mainframe->redirect("index.php?option=com_chronoforms&task=validatelicense", 'You didn\'t enter your validation key.');
     }
     if (trim(JRequest::getVar('instantcode')) && $configs->get('licensecode', '')) {
         $step1 = base64_decode(trim(JRequest::getVar('instantcode')));
         $step2 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), 0, 7), '', $step1);
         $step3 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), -strlen(md5(str_replace('www.', '', strtolower($matches[2])))) + 7), '', $step2);
         $step4 = str_replace(substr($configs->get('licensecode', ''), 0, 10), '', $step3);
         $step5 = str_replace(substr($configs->get('licensecode', ''), -strlen($configs->get('licensecode', '')) + 10), '', $step4);
         //echo (int)$step5;return;
         //if((((int)$step5 + (24 * 60 * 60)) > strtotime(date('d-m-Y H:i:s')))||(((int)$step5 - (24 * 60 * 60)) < strtotime(date('d-m-Y H:i:s')))){
         if ((int) $step5 < strtotime("now") + 24 * 60 * 60 && (int) $step5 > strtotime("now") - 24 * 60 * 60) {
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             $mainframe->redirect("index.php?option=com_chronoforms", 'Your key was validated successfully');
         } else {
             //$mainframe->redirect( "index.php?option=com_chronoforms", 'Invalid instant code' );
         }
     }
     if (function_exists('fsockopen')) {
         $validstatus = ChronoFormsAdmin::validationconnect('http', 'www.chronoengine.com', $port = '80', $path = '/index.php?option=com_chronocontact&task=extra&chronoformname=validateLicense', $postfields);
     }
     if (!$validstatus || $validstatus == 'error' || !function_exists('fsockopen')) {
         if (!function_exists('curl_init')) {
             $validstatus = false;
         } else {
             $fields = '';
             $ch = curl_init();
             //$postfields = array();
             foreach ($postfields as $key => $value) {
                 $fields .= "{$key}=" . urlencode($value) . "&";
             }
             curl_setopt($ch, CURLOPT_URL, 'http://www.chronoengine.com/index.php?option=com_chronocontact&task=extra&chronoformname=validateLicense');
             curl_setopt($ch, CURLOPT_HEADER, 0);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
             curl_setopt($ch, CURLOPT_TIMEOUT, 10);
             curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim($fields, "& "));
             if ($configs->get('curlproxy', '')) {
                 curl_setopt($ch, CURLOPT_PROXY, $configs->get('curlproxy'));
             }
             $output = curl_exec($ch);
             curl_close($ch);
             $validstatus = $output;
         }
     }
     //return $validstatus;
     if ($validstatus == 'valid') {
         if ($configs->get('licensecode', '')) {
             //if(!$configs->get('licensevalid', '')){
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             //}
         }
         $mainframe->redirect("index.php?option=com_chronoforms", 'Your Install was validated successfully');
     } else {
         if ($validstatus == 'invalid') {
             $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
             $database->setQuery($query);
             $result = $database->loadObject();
             $newline = "\n";
             if ($result) {
                 $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=0';
                 $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                 if (!$database->query()) {
                     JError::raiseWarning(100, $database->getErrorMsg());
                     $mainframe->redirect("index.php?option=com_chronoforms");
                 }
             }
             $mainframe->redirect("index.php?option=com_chronoforms", 'We couldn\'t validate your key because of some wrong data used');
         } else {
             if (trim(JRequest::getVar('instantcode'))) {
                 $step1 = base64_decode(trim(JRequest::getVar('instantcode')));
                 $step2 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), 0, 7), '', $step1);
                 $step3 = str_replace(substr(md5(str_replace('www.', '', strtolower($matches[2]))), -strlen(md5(str_replace('www.', '', strtolower($matches[2])))) + 7), '', $step2);
                 $step4 = str_replace(substr($configs->get('licensecode', ''), 0, 10), '', $step3);
                 $step5 = str_replace(substr($configs->get('licensecode', ''), -strlen($configs->get('licensecode', '')) + 10), '', $step4);
                 //echo (int)$step5;return;
                 //if((((int)$step5 + (24 * 60 * 60)) > strtotime(date('d-m-Y H:i:s')))||(((int)$step5 - (24 * 60 * 60)) < strtotime(date('d-m-Y H:i:s')))){
                 if ((int) $step5 < strtotime("now") + 24 * 60 * 60 && (int) $step5 > strtotime("now") - 24 * 60 * 60) {
                     $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
                     $database->setQuery($query);
                     $result = $database->loadObject();
                     $newline = "\n";
                     if ($result) {
                         $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=1';
                         $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                         if (!$database->query()) {
                             JError::raiseWarning(100, $database->getErrorMsg());
                             $mainframe->redirect("index.php?option=com_chronoforms");
                         }
                     }
                     $mainframe->redirect("index.php?option=com_chronoforms", 'Your key was validated successfully');
                 } else {
                     $mainframe->redirect("index.php?option=com_chronoforms", 'Invalid instant code');
                 }
             } else {
                 $query = "SELECT * FROM `#__components` WHERE `option` = 'com_chronoforms' AND parent='0' AND admin_menu_link='option=com_chronoforms'";
                 $database->setQuery($query);
                 $result = $database->loadObject();
                 $newline = "\n";
                 if ($result) {
                     $newparams = 'showtipoftheday=' . $configs->get('showtipoftheday', 1) . $newline . 'licensecode=' . $configs->get('licensecode', '') . $newline . 'licensevalid=0';
                     $database->setQuery("UPDATE `#__components` SET params='" . $newparams . "' WHERE id='" . $result->id . "'");
                     if (!$database->query()) {
                         JError::raiseWarning(100, $database->getErrorMsg());
                         $mainframe->redirect("index.php?option=com_chronoforms");
                     }
                 }
                 $mainframe->redirect("index.php?option=com_chronoforms", 'We couldn\'t validate your key because your hosting server doesn\'t have neither the CURL library nor the fsockopen functions or they may exist but don\'t function properly, please contact your host admin to fix them or contact us <a href="http://www.chronoengine.com/contactus.html">here</a> Or at this email address : webmaster@chronoengine.com');
             }
         }
     }
 }