示例#1
0
 function RSAdapter()
 {
     // Get Joomla! Configuration
     $this->jconfig = JFactory::getConfig();
     // Define tables
     $prefix = $this->jconfig->getValue('config.dbprefix');
     $this->tbl_rsform_config = $prefix . 'rsform_config';
     $this->tbl_rsform_components = $prefix . 'rsform_components';
     $this->tbl_rsform_component_types = $prefix . 'rsform_component_types';
     $this->tbl_rsform_component_type_fields = $prefix . 'rsform_component_type_fields';
     $this->tbl_rsform_forms = $prefix . 'rsform_forms';
     $this->tbl_rsform_mappings = $prefix . 'rsform_mappings';
     $this->tbl_rsform_properties = $prefix . 'rsform_properties';
     $this->tbl_rsform_submissions = $prefix . 'rsform_submissions';
     $this->tbl_rsform_submission_values = $prefix . 'rsform_submission_values';
     $this->tbl_users = $prefix . 'users';
     // Build old config
     $this->config = array();
     RSFormProHelper::readConfig();
     $config = RSFormProHelper::getConfig(null);
     foreach ($config as $item => $value) {
         $this->config[$item] = $value;
     }
     $this->config['list_limit'] = $this->jconfig->getValue('config.list_limit');
     $this->config['absolute_path'] = JPATH_SITE;
     $this->config['live_site'] = JURI::root();
     $this->config['mail_from'] = $this->jconfig->getValue('config.mailfrom');
     $this->config['sitename'] = $this->jconfig->getValue('config.sitename');
     $this->config['dbprefix'] = $prefix;
     $this->config['db'] = $this->jconfig->getValue('config.db');
     $this->config['component_ids'] = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
     $this->config['absolute_path'] = JPATH_SITE;
 }
示例#2
0
 public static function expression($calculation, $formId)
 {
     $return = '';
     $pattern = '#{(.*?):value}#is';
     $expression = $calculation->expression;
     $filter = JFilterInput::getInstance();
     preg_match_all($pattern, $calculation->expression, $matches);
     if ($matches) {
         foreach ($matches[0] as $i => $match) {
             $field = $filter->clean($matches[1][$i] . "_" . $formId, 'cmd');
             $return .= "\t total" . $field . " = 0;\n";
             $return .= "\t values" . $field . " = rsfp_getValue(" . $formId . ", '" . $matches[1][$i] . "');\n";
             $return .= "\t if (typeof values" . $field . " == 'object') { \n";
             $return .= "\t\t for(i=0;i<values" . $field . ".length;i++) {\n";
             $return .= "\t\t\t thevalue = values" . $field . "[i]; \n";
             $return .= "\t\t\t if (isset(RSFormProPrices['" . $formId . "_" . $matches[1][$i] . "'])) { \n";
             $return .= "\t\t\t\t total" . $field . " += isset(RSFormProPrices['" . $formId . "_" . $matches[1][$i] . "'][thevalue]) ? parseFloat(RSFormProPrices['" . $formId . "_" . $matches[1][$i] . "'][thevalue]) : 0; \n";
             $return .= "\t\t\t }\n";
             $return .= "\t\t }\n";
             $return .= "\t } else { \n";
             $return .= "\t\t total" . $field . " += (values" . $field . ".indexOf(',') == -1 && values" . $field . ".indexOf('.') == -1) ? parseFloat(values" . $field . ") :  parseFloat(rsfp_toNumber(values" . $field . ",'" . self::escape(RSFormProHelper::getConfig('calculations.decimal')) . "','" . self::escape(RSFormProHelper::getConfig('calculations.thousands')) . "')); \n";
             $return .= "\t } \n";
             $return .= "\t total" . $field . " = !isNaN(total" . $field . ") ? total" . $field . " : 0; \n\n";
             $expression = str_replace($match, 'total' . $field, $expression);
         }
         $return .= "\n\t grandTotal" . $calculation->id . $formId . " = " . $expression . ";\n";
         $return .= "\t document.getElementById('" . $calculation->total . "').value = number_format(grandTotal" . $calculation->id . $formId . "," . (int) RSFormProHelper::getConfig('calculations.nodecimals') . ",'" . self::escape(RSFormProHelper::getConfig('calculations.decimal')) . "','" . self::escape(RSFormProHelper::getConfig('calculations.thousands')) . "'); \n\n";
     }
     return $return;
 }
示例#3
0
 function display($tpl = null)
 {
     JToolBarHelper::title('RSForm! Pro', 'rsform');
     if (RSFormProHelper::isJ16()) {
         $lang =& JFactory::getLanguage();
         $lang->load('com_rsform.sys', JPATH_ADMINISTRATOR);
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_FORMS'), 'index.php?option=com_rsform&task=forms.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_SUBMISSIONS'), 'index.php?option=com_rsform&task=submissions.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_CONFIGURATION'), 'index.php?option=com_rsform&task=configuration.edit', true);
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_BACKUP_RESTORE'), 'index.php?option=com_rsform&task=backup.restore');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_UPDATES'), 'index.php?option=com_rsform&task=updates.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_PLUGINS'), 'index.php?option=com_rsform&task=goto.plugins');
     }
     JToolBarHelper::apply('configuration.apply');
     JToolBarHelper::save('configuration.save');
     JToolBarHelper::cancel('');
     $params = array('startOffset' => JRequest::getInt('tabposition', 0));
     $tabs =& JPane::getInstance('Tabs', $params, true);
     $this->assignRef('tabs', $tabs);
     $this->assign('code', RSFormProHelper::getConfig('global.register.code'));
     $lists['global.iis'] = JHTML::_('select.booleanlist', 'rsformConfig[global.iis]', 'class="inputbox"', RSFormProHelper::getConfig('global.iis'));
     $lists['global.editor'] = JHTML::_('select.booleanlist', 'rsformConfig[global.editor]', 'class="inputbox"', RSFormProHelper::getConfig('global.editor'));
     $lists['global.codemirror'] = JHTML::_('select.booleanlist', 'rsformConfig[global.codemirror]', 'class="inputbox"', RSFormProHelper::getConfig('global.codemirror'));
     $lists['auto_responsive'] = JHTML::_('select.booleanlist', 'rsformConfig[auto_responsive]', 'class="inputbox"', RSFormProHelper::getConfig('auto_responsive'));
     $this->assignRef('lists', $lists);
     parent::display($tpl);
 }
示例#4
0
 function display($tpl = null)
 {
     JToolBarHelper::title('RSForm! Pro', 'rsform');
     if (RSFormProHelper::isJ16()) {
         $lang =& JFactory::getLanguage();
         $lang->load('com_rsform.sys', JPATH_ADMINISTRATOR);
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_FORMS'), 'index.php?option=com_rsform&task=forms.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_SUBMISSIONS'), 'index.php?option=com_rsform&task=submissions.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_CONFIGURATION'), 'index.php?option=com_rsform&task=configuration.edit');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_BACKUP_RESTORE'), 'index.php?option=com_rsform&task=backup.restore');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_UPDATES'), 'index.php?option=com_rsform&task=updates.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_PLUGINS'), 'index.php?option=com_rsform&task=goto.plugins');
     }
     $this->assign('code', RSFormProHelper::getConfig('global.register.code'));
     parent::display($tpl);
 }
示例#5
0
 function display($tpl = null)
 {
     $mainframe =& JFactory::getApplication();
     $document =& JFactory::getDocument();
     $document->addCustomTag('<!--[if IE 7]><link href="' . JURI::root() . 'administrator/components/com_rsform/assets/css/styleie.css" rel="stylesheet" type="text/css" /><![endif]-->');
     if (RSFormProHelper::getConfig('global.codemirror')) {
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/lib/codemirror.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/css/css.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/htmlmixed/htmlmixed.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/javascript/javascript.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/php/php.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/clike/clike.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/xml/xml.js');
         $document->addStyleSheet(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/lib/codemirror.css');
         $document->addStyleSheet(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/theme/default.css');
     }
     JToolBarHelper::title('RSForm! Pro', 'rsform');
     if (RSFormProHelper::isJ16()) {
         $lang =& JFactory::getLanguage();
         $lang->load('com_rsform.sys', JPATH_ADMINISTRATOR);
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_FORMS'), 'index.php?option=com_rsform&task=forms.manage', true);
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_MANAGE_SUBMISSIONS'), 'index.php?option=com_rsform&task=submissions.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_CONFIGURATION'), 'index.php?option=com_rsform&task=configuration.edit');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_BACKUP_RESTORE'), 'index.php?option=com_rsform&task=backup.restore');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_UPDATES'), 'index.php?option=com_rsform&task=updates.manage');
         JSubMenuHelper::addEntry(JText::_('COM_RSFORM_PLUGINS'), 'index.php?option=com_rsform&task=goto.plugins');
     }
     $layout = $this->getLayout();
     $this->assign('isComponent', JRequest::getVar('tmpl') == 'component');
     if ($layout == 'edit') {
         JToolBarHelper::apply('forms.apply');
         JToolBarHelper::save('forms.save');
         JToolBarHelper::spacer();
         JToolBarHelper::custom('forms.preview', 'preview', 'preview', RSFormProHelper::isJ16() ? JText::_('JGLOBAL_PREVIEW') : JText::_('PREVIEW'), false);
         JToolBarHelper::custom('submissions.manage', 'forward', 'forward', JText::_('RSFP_SUBMISSIONS'), false);
         JToolBarHelper::custom('components.copy', 'copy', 'copy', JText::_('RSFP_COPY_TO_FORM'), false);
         JToolBarHelper::custom('components.duplicate', 'copy', 'copy', JText::_('RSFP_DUPLICATE'), false);
         JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'), 'components.remove', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_DELETE') : JText::_('DELETE'));
         JToolBarHelper::publishList('components.publish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_PUBLISH') : JText::_('Publish'));
         JToolBarHelper::unpublishList('components.unpublish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_UNPUBLISH') : JText::_('Unpublish'));
         JToolBarHelper::spacer();
         JToolBarHelper::cancel('forms.cancel');
         $this->assignRef('tabposition', JRequest::getInt('tabposition', 0));
         $this->assignRef('tab', JRequest::getInt('tab', 0));
         $this->assignRef('form', $this->get('form'));
         $this->assignRef('form_post', $this->get('formPost'));
         $this->assign('hasSubmitButton', $this->get('hasSubmitButton'));
         JToolBarHelper::title('RSForm! Pro <small>[' . JText::sprintf('RSFP_EDITING_FORM', $this->form->FormTitle) . ']</small>', 'rsform');
         $this->assignRef('fields', $this->get('fields'));
         $this->assignRef('quickfields', $this->get('quickfields'));
         $this->assignRef('pagination', $this->get('fieldspagination'));
         $lists['Published'] = JHTML::_('select.booleanlist', 'Published', 'class="inputbox"', $this->form->Published);
         $lists['keepdata'] = JHTML::_('select.booleanlist', 'Keepdata', 'class="inputbox"', $this->form->Keepdata);
         $lists['confirmsubmission'] = JHTML::_('select.booleanlist', 'ConfirmSubmission', 'class="inputbox"', $this->form->ConfirmSubmission);
         $lists['ShowThankyou'] = JHTML::_('select.booleanlist', 'ShowThankyou', 'class="inputbox" onclick="enableThankyou(this.value);"', $this->form->ShowThankyou);
         $lists['ShowContinue'] = JHTML::_('select.booleanlist', 'ShowContinue', 'class="inputbox"' . (!$this->form->ShowThankyou ? 'disabled="disabled"' : ''), $this->form->ShowContinue);
         $lists['UserEmailMode'] = JHTML::_('select.booleanlist', 'UserEmailMode', 'class="inputbox" onclick="enableEmailMode(\'User\', this.value)"', $this->form->UserEmailMode, JText::_('HTML'), JText::_('RSFP_COMP_FIELD_TEXT'));
         $lists['UserEmailAttach'] = JHTML::_('select.booleanlist', 'UserEmailAttach', 'class="inputbox" onclick="enableAttachFile(this.value)"', $this->form->UserEmailAttach);
         $lists['AdminEmailMode'] = JHTML::_('select.booleanlist', 'AdminEmailMode', 'class="inputbox" onclick="enableEmailMode(\'Admin\', this.value)"', $this->form->AdminEmailMode, JText::_('HTML'), JText::_('RSFP_COMP_FIELD_TEXT'));
         $lists['MetaTitle'] = JHTML::_('select.booleanlist', 'MetaTitle', 'class="inputbox"', $this->form->MetaTitle);
         $lists['TextareaNewLines'] = JHTML::_('select.booleanlist', 'TextareaNewLines', 'class="inputbox"', $this->form->TextareaNewLines);
         $lists['AjaxValidation'] = JHTML::_('select.booleanlist', 'AjaxValidation', 'class="inputbox"', $this->form->AjaxValidation);
         $lists['post_enabled'] = JHTML::_('select.booleanlist', 'form_post[enabled]', 'class="inputbox"', $this->form_post->enabled);
         $lists['post_method'] = JHTML::_('select.booleanlist', 'form_post[method]', 'class="inputbox"', $this->form_post->method, JText::_('RSFP_POST_METHOD_POST'), JText::_('RSFP_POST_METHOD_GET'));
         $lists['post_silent'] = JHTML::_('select.booleanlist', 'form_post[silent]', 'class="inputbox"', $this->form_post->silent);
         $this->assignRef('themes', $this->get('themes'));
         $this->assignRef('lang', $this->get('lang'));
         $lists['Languages'] = JHTML::_('select.genericlist', $this->get('languages'), 'Language', 'onchange="submitbutton(\'changeLanguage\')"', 'value', 'text', $this->lang);
         $this->assignRef('mappings', $this->get('mappings'));
         $this->assignRef('mpagination', $this->get('mpagination'));
         $this->assignRef('conditions', $this->get('conditions'));
         $this->assignRef('formId', $this->form->FormId);
         $this->assignRef('emails', $this->get('emails'));
         $this->assignRef('lists', $lists);
     } elseif ($layout == 'new') {
         JToolBarHelper::custom('forms.new.steptwo', 'forward', 'forward', RSFormProHelper::isJ16() ? JText::_('JNEXT') : JText::_('Next'), false);
         JToolBarHelper::cancel('forms.cancel');
     } elseif ($layout == 'new2') {
         JToolBarHelper::custom('forms.new.stepthree', 'forward', 'forward', RSFormProHelper::isJ16() ? JText::_('JNEXT') : JText::_('Next'), false);
         JToolBarHelper::cancel('forms.cancel');
         $lists['AdminEmail'] = JHTML::_('select.booleanlist', 'AdminEmail', 'class="inputbox" onclick="changeAdminEmail(this.value)"', 1);
         $lists['UserEmail'] = JHTML::_('select.booleanlist', 'UserEmail', 'class="inputbox"', 1);
         $actions = array(JHTML::_('select.option', 'refresh', JText::_('RSFP_SUBMISSION_REFRESH_PAGE')), JHTML::_('select.option', 'thankyou', JText::_('RSFP_SUBMISSION_THANKYOU')), JHTML::_('select.option', 'redirect', JText::_('RSFP_SUBMISSION_REDIRECT_TO')));
         $lists['SubmissionAction'] = JHTML::_('select.genericlist', $actions, 'SubmissionAction', 'onclick="changeSubmissionAction(this.value)"');
         $this->assignRef('adminEmail', $this->get('adminEmail'));
         $this->assignRef('lists', $lists);
         $this->assignRef('editor', JFactory::getEditor());
     } elseif ($layout == 'new3') {
         JToolBarHelper::custom('forms.new.stepfinal', 'forward', 'forward', JText::_('Finish'), false);
         JToolBarHelper::cancel('forms.cancel');
         $lists['predefinedForms'] = JHTML::_('select.genericlist', $this->get('predefinedforms'), 'predefinedForm', '');
         $this->assignRef('lists', $lists);
     } elseif ($layout == 'component_copy') {
         JToolBarHelper::custom('components.copy.process', 'copy', 'copy', 'Copy', false);
         JToolBarHelper::cancel('components.copy.cancel');
         $formlist = $this->get('formlist');
         $lists['forms'] = JHTML::_('select.genericlist', $formlist, 'toFormId', '', 'value', 'text');
         $this->assign('formId', JRequest::getInt('formId'));
         $this->assign('cids', JRequest::getVar('cid', array()));
         $this->assignRef('lists', $lists);
     } elseif ($layout == 'richtext') {
         $this->assignRef('editor', JFactory::getEditor());
         $this->assign('noEditor', JRequest::getInt('noEditor'));
         $this->assign('formId', JRequest::getInt('formId'));
         $this->assign('editorName', JRequest::getCmd('opener'));
         $this->assign('editorText', $this->get('editorText'));
     } elseif ($layout == 'edit_mappings') {
         $formId = JRequest::getInt('formId');
         $this->assignRef('mappings', $this->get('mappings'));
         $this->assignRef('mpagination', $this->get('mpagination'));
         $this->assignRef('formId', $formId);
     } elseif ($layout == 'edit_conditions') {
         $formId = JRequest::getInt('formId');
         $this->assignRef('conditions', $this->get('conditions'));
         $this->assignRef('formId', $formId);
     } elseif ($layout == 'edit_emails') {
         $this->assignRef('emails', $this->get('emails'));
     } elseif ($layout == 'show') {
         $db =& JFactory::getDBO();
         $lang =& JFactory::getLanguage();
         $lang->load('com_rsform', JPATH_SITE);
         $formId = JRequest::getInt('formId');
         $db->setQuery("SELECT FormTitle FROM #__rsform_forms WHERE FormId = " . $formId . " ");
         JToolBarHelper::title($db->loadResult(), 'rsform');
         $this->assignRef('formId', $formId);
     } elseif ($layout == 'emails') {
         $this->assignRef('row', $this->get('email'));
         $lists['mode'] = JHTML::_('select.booleanlist', 'mode', 'class="inputbox" onclick="showMode(this.value);"', $this->row->mode, JText::_('HTML'), JText::_('Text'));
         $this->assignRef('lists', $lists);
         $this->assignRef('editor', JFactory::getEditor());
         $this->assignRef('quickfields', $this->get('quickfields'));
         $this->assignRef('lang', $this->get('emaillang'));
         $lists['Languages'] = JHTML::_('select.genericlist', $this->get('languages'), 'ELanguage', 'onchange="submitbutton(\'changeEmailLanguage\')"', 'value', 'text', $this->lang);
     } else {
         JToolBarHelper::addNewX('forms.add', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_NEW') : JText::_('New'));
         JToolBarHelper::spacer();
         JToolBarHelper::custom('forms.copy', 'copy.png', 'copy_f2.png', JText::_('RSFP_DUPLICATE'), false);
         JToolBarHelper::spacer();
         JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'), 'forms.delete', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_DELETE') : JText::_('DELETE'));
         JToolBarHelper::spacer();
         JToolBarHelper::publishList('forms.publish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_PUBLISH') : JText::_('Publish'));
         JToolBarHelper::unpublishList('forms.unpublish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_UNPUBLISH') : JText::_('Unpublish'));
         $this->assignRef('forms', $this->get('forms'));
         $this->assignRef('pagination', $this->get('pagination'));
         $this->assignRef('sortColumn', $this->get('sortColumn'));
         $this->assignRef('sortOrder', $this->get('sortOrder'));
     }
     parent::display($tpl);
 }
 function display($tpl = null)
 {
     $mainframe = JFactory::getApplication();
     $document = JFactory::getDocument();
     $document->addCustomTag('<!--[if IE 7]><link href="' . JURI::root() . 'administrator/components/com_rsform/assets/css/styleie.css" rel="stylesheet" type="text/css" /><![endif]-->');
     if (RSFormProHelper::getConfig('global.codemirror')) {
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/lib/codemirror.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/css/css.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/htmlmixed/htmlmixed.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/javascript/javascript.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/php/php.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/clike/clike.js');
         $document->addScript(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/mode/xml/xml.js');
         $document->addStyleSheet(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/lib/codemirror.css');
         $document->addStyleSheet(JURI::root(true) . '/administrator/components/com_rsform/assets/codemirror/theme/default.css');
     }
     JToolBarHelper::title('RSForm! Pro', 'rsform');
     // adding the toolbar on 2.5
     if (!RSFormProHelper::isJ('3.0')) {
         $this->addToolbar();
     }
     $layout = $this->getLayout();
     $this->isComponent = JRequest::getVar('tmpl') == 'component';
     if ($layout == 'edit') {
         $submissionsIcon = RSFormProHelper::isJ('3.0') ? 'database' : 'forward';
         $previewIcon = RSFormProHelper::isJ('3.0') ? 'new tab' : 'preview';
         JToolBarHelper::apply('forms.apply');
         JToolBarHelper::save('forms.save');
         JToolBarHelper::spacer();
         JToolBarHelper::custom('forms.preview', $previewIcon, $previewIcon, JText::_('JGLOBAL_PREVIEW'), false);
         JToolBarHelper::custom('submissions.back', $submissionsIcon, $submissionsIcon, JText::_('RSFP_SUBMISSIONS'), false);
         JToolBarHelper::custom('components.copy', 'copy', 'copy', JText::_('RSFP_COPY_TO_FORM'), false);
         JToolBarHelper::custom('components.duplicate', 'copy', 'copy', JText::_('RSFP_DUPLICATE'), false);
         JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'), 'components.remove', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_DELETE') : JText::_('DELETE'));
         JToolBarHelper::publishList('components.publish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_PUBLISH') : JText::_('Publish'));
         JToolBarHelper::unpublishList('components.unpublish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_UNPUBLISH') : JText::_('Unpublish'));
         JToolBarHelper::spacer();
         JToolBarHelper::cancel('forms.cancel');
         $this->tabposition = JRequest::getInt('tabposition', 0);
         $this->tab = JRequest::getInt('tab', 0);
         $this->form = $this->get('form');
         $this->form_post = $this->get('formPost');
         $this->hasSubmitButton = $this->get('hasSubmitButton');
         JToolBarHelper::title('RSForm! Pro <small>[' . JText::sprintf('RSFP_EDITING_FORM', $this->form->FormTitle) . ']</small>', 'rsform');
         $this->fields = $this->get('fields');
         $this->quickfields = $this->get('quickfields');
         $this->pagination = $this->get('fieldspagination');
         $lists['Published'] = $this->renderHTML('select.booleanlist', 'Published', '', $this->form->Published);
         $lists['ShowFormTitle'] = $this->renderHTML('select.booleanlist', 'ShowFormTitle', '', $this->form->ShowFormTitle);
         $lists['keepdata'] = $this->renderHTML('select.booleanlist', 'Keepdata', '', $this->form->Keepdata);
         $lists['confirmsubmission'] = $this->renderHTML('select.booleanlist', 'ConfirmSubmission', '', $this->form->ConfirmSubmission);
         $lists['ShowThankyou'] = $this->renderHTML('select.booleanlist', 'ShowThankyou', 'onclick="enableThankyou(this.value);"', $this->form->ShowThankyou);
         $lists['ShowContinue'] = $this->renderHTML('select.booleanlist', 'ShowContinue', !$this->form->ShowThankyou ? 'disabled="true"' : '', $this->form->ShowContinue);
         $lists['UserEmailMode'] = $this->renderHTML('select.booleanlist', 'UserEmailMode', 'onclick="enableEmailMode(\'User\', this.value)"', $this->form->UserEmailMode, JText::_('HTML'), JText::_('RSFP_COMP_FIELD_TEXT'));
         $lists['UserEmailAttach'] = $this->renderHTML('select.booleanlist', 'UserEmailAttach', 'onclick="enableAttachFile(this.value)"', $this->form->UserEmailAttach);
         $lists['AdminEmailMode'] = $this->renderHTML('select.booleanlist', 'AdminEmailMode', 'onclick="enableEmailMode(\'Admin\', this.value)"', $this->form->AdminEmailMode, JText::_('HTML'), JText::_('RSFP_COMP_FIELD_TEXT'));
         $lists['MetaTitle'] = $this->renderHTML('select.booleanlist', 'MetaTitle', '', $this->form->MetaTitle);
         $lists['TextareaNewLines'] = $this->renderHTML('select.booleanlist', 'TextareaNewLines', '', $this->form->TextareaNewLines);
         $lists['AjaxValidation'] = $this->renderHTML('select.booleanlist', 'AjaxValidation', '', $this->form->AjaxValidation);
         $lists['FormLayoutAutogenerate'] = $this->renderHTML('select.booleanlist', 'FormLayoutAutogenerate', 'onclick="changeFormAutoGenerateLayout(' . $this->form->FormId . ', this.value);"', $this->form->FormLayoutAutogenerate);
         $lists['post_enabled'] = $this->renderHTML('select.booleanlist', 'form_post[enabled]', '', $this->form_post->enabled);
         $lists['post_method'] = $this->renderHTML('select.booleanlist', 'form_post[method]', '', $this->form_post->method, JText::_('RSFP_POST_METHOD_POST'), JText::_('RSFP_POST_METHOD_GET'));
         $lists['post_silent'] = $this->renderHTML('select.booleanlist', 'form_post[silent]', '', $this->form_post->silent);
         $this->themes = $this->get('themes');
         $this->lang = $this->get('lang');
         // workaround for first time visit
         $session = JFactory::getSession();
         $session->set('com_rsform.form.' . $this->form->FormId . '.lang', $this->lang);
         $lists['Languages'] = JHTML::_('select.genericlist', $this->get('languages'), 'Language', 'onchange="submitbutton(\'changeLanguage\')"', 'value', 'text', $this->lang);
         $this->mappings = $this->get('mappings');
         $this->mpagination = $this->get('mpagination');
         $this->conditions = $this->get('conditions');
         $this->formId = $this->form->FormId;
         $this->emails = $this->get('emails');
         $this->lists = $lists;
     } elseif ($layout == 'new') {
         $nextIcon = RSFormProHelper::isJ('3.0') ? 'next' : 'forward';
         JToolBarHelper::custom('forms.new.steptwo', $nextIcon, $nextIcon, JText::_('JNEXT'), false);
         JToolBarHelper::cancel('forms.cancel');
     } elseif ($layout == 'new2') {
         $nextIcon = RSFormProHelper::isJ('3.0') ? 'next' : 'forward';
         JToolBarHelper::custom('forms.new.stepthree', $nextIcon, $nextIcon, JText::_('JNEXT'), false);
         JToolBarHelper::cancel('forms.cancel');
         $lists['AdminEmail'] = $this->renderHTML('select.booleanlist', 'AdminEmail', 'onclick="changeAdminEmail(this.value)"', 1);
         $lists['UserEmail'] = $this->renderHTML('select.booleanlist', 'UserEmail', '', 1);
         $actions = array(JHTML::_('select.option', 'refresh', JText::_('RSFP_SUBMISSION_REFRESH_PAGE')), JHTML::_('select.option', 'thankyou', JText::_('RSFP_SUBMISSION_THANKYOU')), JHTML::_('select.option', 'redirect', JText::_('RSFP_SUBMISSION_REDIRECT_TO')));
         $lists['SubmissionAction'] = JHTML::_('select.genericlist', $actions, 'SubmissionAction', 'onclick="changeSubmissionAction(this.value)"');
         $this->adminEmail = $this->get('adminEmail');
         $this->lists = $lists;
         $this->editor = JFactory::getEditor();
     } elseif ($layout == 'new3') {
         $nextIcon = RSFormProHelper::isJ('3.0') ? 'next' : 'forward';
         JToolBarHelper::custom('forms.new.stepfinal', $nextIcon, $nextIcon, JText::_('Finish'), false);
         JToolBarHelper::cancel('forms.cancel');
         $lists['predefinedForms'] = JHTML::_('select.genericlist', $this->get('predefinedforms'), 'predefinedForm', '');
         $this->lists = $lists;
     } elseif ($layout == 'component_copy') {
         JToolBarHelper::custom('components.copy.process', 'copy', 'copy', 'Copy', false);
         JToolBarHelper::cancel('components.copy.cancel');
         $formlist = $this->get('formlist');
         $lists['forms'] = JHTML::_('select.genericlist', $formlist, 'toFormId', '', 'value', 'text');
         $this->formId = JRequest::getInt('formId');
         $this->cids = JRequest::getVar('cid', array());
         $this->lists = $lists;
     } elseif ($layout == 'richtext') {
         $this->editor = JFactory::getEditor();
         $this->noEditor = JRequest::getInt('noEditor');
         $this->formId = JRequest::getInt('formId');
         $this->editorName = JRequest::getCmd('opener');
         $this->editorText = $this->get('editorText');
     } elseif ($layout == 'edit_mappings') {
         $formId = JRequest::getInt('formId');
         $this->mappings = $this->get('mappings');
         $this->mpagination = $this->get('mpagination');
         $this->formId = $formId;
     } elseif ($layout == 'edit_conditions') {
         $formId = JRequest::getInt('formId');
         $this->conditions = $this->get('conditions');
         $this->formId = $formId;
     } elseif ($layout == 'edit_emails') {
         $this->emails = $this->get('emails');
     } elseif ($layout == 'show') {
         $db = JFactory::getDBO();
         $lang = JFactory::getLanguage();
         $lang->load('com_rsform', JPATH_SITE);
         $formId = JRequest::getInt('formId');
         $db->setQuery("SELECT FormTitle FROM #__rsform_forms WHERE FormId = " . $formId . " ");
         JToolBarHelper::title($db->loadResult(), 'rsform');
         $this->formId = $formId;
     } elseif ($layout == 'emails') {
         $this->row = $this->get('email');
         $this->lang = $this->get('emaillang');
         $lists['mode'] = $this->renderHTML('select.booleanlist', 'mode', 'onclick="showMode(this.value);"', $this->row->mode, JText::_('HTML'), JText::_('Text'));
         $lists['Languages'] = JHTML::_('select.genericlist', $this->get('languages'), 'ELanguage', 'onchange="submitbutton(\'changeEmailLanguage\')"', 'value', 'text', $this->lang);
         $this->lists = $lists;
         $this->editor = JFactory::getEditor();
         $this->quickfields = $this->get('quickfields');
     } else {
         $this->addToolbar();
         $this->sidebar = $this->get('Sidebar');
         JToolbarHelper::addNew('forms.add', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_NEW') : JText::_('New'));
         JToolBarHelper::spacer();
         JToolBarHelper::custom('forms.copy', 'copy.png', 'copy_f2.png', JText::_('RSFP_DUPLICATE'), false);
         JToolBarHelper::spacer();
         JToolBarHelper::deleteList(JText::_('VALIDDELETEITEMS'), 'forms.delete', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_DELETE') : JText::_('DELETE'));
         JToolBarHelper::spacer();
         JToolBarHelper::publishList('forms.publish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_PUBLISH') : JText::_('Publish'));
         JToolBarHelper::unpublishList('forms.unpublish', RSFormProHelper::isJ16() ? JText::_('JTOOLBAR_UNPUBLISH') : JText::_('Unpublish'));
         $this->forms = $this->get('forms');
         $this->pagination = $this->get('pagination');
         $this->sortColumn = $this->get('sortColumn');
         $this->sortOrder = $this->get('sortOrder');
     }
     parent::display($tpl);
 }
 public static function getComponentPrice($property, $submission)
 {
     $price = 0;
     $pattern = '#\\[p(.*?)\\]#is';
     if (isset($property['ITEMS'])) {
         $products = array();
         $special = array('[c]', '[g]', '[d]');
         if ($items = RSFormProHelper::explode(RSFormProHelper::isCode($property['ITEMS']))) {
             foreach ($items as $item) {
                 $item = str_replace($special, '', $item);
                 @(list($item_val, $item_text) = explode("|", $item, 2));
                 if (preg_match($pattern, $item, $match)) {
                     $item_val = preg_replace($pattern, '', $item_val);
                     $products[$item_val] = $match[1];
                 }
             }
         }
         if (isset($submission->values[$property['NAME']])) {
             $value = $submission->values[$property['NAME']];
             $all_values = explode("\n", $value);
             foreach ($all_values as $val) {
                 $price += isset($products[$val]) ? (double) $products[$val] : 0;
             }
         }
     }
     return number_format($price, RSFormProHelper::getConfig('calculations.nodecimals'), RSFormProHelper::getConfig('calculations.decimal'), RSFormProHelper::getConfig('calculations.thousands'));
 }
示例#8
0
    public function paypalConfigurationScreen()
    {
        ob_start();
        ?>
		<div id="page-paypal" class="com-rsform-css-fix">
			<table  class="admintable">
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="currency"><?php 
        echo JText::_('RSFP_PAYPAL_EMAIL');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[paypal.email]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.email'));
        ?>
" size="100" maxlength="64"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="return"><?php 
        echo JText::_('RSFP_PAYPAL_RETURN');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[paypal.return]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.return'));
        ?>
" size="100"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="cancel"><?php 
        echo JText::_('RSFP_PAYPAL_CANCEL');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[paypal.cancel]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.cancel'));
        ?>
" size="100"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="currency"><?php 
        echo JText::_('RSFP_PAYPAL_TEST');
        ?>
</label></td>
					<td><?php 
        echo JHTML::_('select.booleanlist', 'rsformConfig[paypal.test]', '', RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.test')));
        ?>
</td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="tax.type"><?php 
        echo JText::_('RSFP_PAYPAL_TAX_TYPE');
        ?>
</label></td>
					<td><?php 
        echo JHTML::_('select.booleanlist', 'rsformConfig[paypal.tax.type]', '', RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.tax.type')), JText::_('RSFP_PAYPAL_TAX_TYPE_FIXED'), JText::_('RSFP_PAYPAL_TAX_TYPE_PERCENT'));
        ?>
</td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="tax.value"><?php 
        echo JText::_('RSFP_PAYPAL_TAX_VALUE');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[paypal.tax.value]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.tax.value'));
        ?>
" size="4" maxlength="5"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="language"><?php 
        echo JText::_('RSFP_PAYPAL_LANGUAGE');
        ?>
</label></td>
					<td>
						<input type="text" name="rsformConfig[paypal.language]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('paypal.language'));
        ?>
" size="4" maxlength="2">
						<?php 
        echo JText::_('PAYPAL_LANGUAGES_CODES');
        ?>
					</td>
				</tr>
			</table>
		</div>
		<?php 
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }
示例#9
0
    function recaptchaConfigurationScreen()
    {
        ob_start();
        $themes[] = JHTML::_('select.option', 'red', JText::_('RSFP_RED_THEME'));
        $themes[] = JHTML::_('select.option', 'white', JText::_('RSFP_WHITE_THEME'));
        $themes[] = JHTML::_('select.option', 'clean', JText::_('RSFP_CLEAN_THEME'));
        $themes[] = JHTML::_('select.option', 'blackglass', JText::_('RSFP_BLACKGLASS_THEME'));
        $theme = JHTML::_('select.genericlist', $themes, 'rsformConfig[recaptcha.theme]', 'size="1" class="inputbox"', 'value', 'text', RSFormProHelper::getConfig('recaptcha.theme'));
        ?>
		<div id="page-recaptcha">
			<table class="admintable">
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="public"><?php 
        echo JText::_('RSFP_RECAPTCHA_PBKEY');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[recaptcha.public.key]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('recaptcha.public.key'));
        ?>
" size="100" maxlength="100"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="private"><?php 
        echo JText::_('RSFP_RECAPTCHA_PRKEY');
        ?>
</label></td>
					<td><input type="text" name="rsformConfig[recaptcha.private.key]" value="<?php 
        echo RSFormProHelper::htmlEscape(RSFormProHelper::getConfig('recaptcha.private.key'));
        ?>
" size="100" maxlength="100"></td>
				</tr>
				<tr>
					<td width="200" style="width: 200px;" align="right" class="key"><label for="theme"><?php 
        echo JText::_('RSFP_RECAPTCHA_THEME');
        ?>
</label></td>
					<td><?php 
        echo $theme;
        ?>
</td>
				</tr>
			</table>
		</div>
		<?php 
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }
 public static function stripJava($val)
 {
     $filtering = RSFormProHelper::getConfig('global.filtering');
     switch ($filtering) {
         default:
         case 'joomla':
             static $filter;
             if (is_null($filter)) {
                 jimport('joomla.filter.filterinput');
                 $filter = JFilterInput::getInstance(array('form', 'input', 'select', 'textarea'), array('style'), 1, 1);
             }
             $val = preg_replace('/([\\x00-\\x08][\\x0b-\\x0c][\\x0e-\\x20])/', "", $val);
             $val = str_replace("", "", $val);
             return $filter->clean($val);
             break;
         case 'rsform':
             // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
             // this prevents some character re-spacing such as <java\0script>
             // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
             $val = preg_replace('/([\\x00-\\x08][\\x0b-\\x0c][\\x0e-\\x20])/', '', $val);
             // straight replacements, the user should never need these since they're normal characters
             // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
             $search = 'abcdefghijklmnopqrstuvwxyz';
             $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
             $search .= '1234567890!@#$%^&*()';
             $search .= '~`";:?+/={}[]-_|\'\\';
             for ($i = 0; $i < strlen($search); $i++) {
                 // ;? matches the ;, which is optional
                 // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
                 // &#x0040 @ search for the hex values
                 $val = preg_replace('/(&#[x|X]0{0,8}' . dechex(ord($search[$i])) . ';?)/i', $search[$i], $val);
                 // with a ;
                 // &#00064 @ 0{0,7} matches '0' zero to seven times
                 $val = preg_replace('/(&#0{0,8}' . ord($search[$i]) . ';?)/', $search[$i], $val);
                 // with a ;
             }
             // now the only remaining whitespace attacks are \t, \n, and \r
             // ([ \t\r\n]+)?
             $ra1 = array('\\/([ \\t\\r\\n]+)?javascript', '\\/([ \\t\\r\\n]+)?vbscript', ':([ \\t\\r\\n]+)?expression', '<([ \\t\\r\\n]+)?applet', '<([ \\t\\r\\n]+)?meta', '<([ \\t\\r\\n]+)?xml', '<([ \\t\\r\\n]+)?blink', '<([ \\t\\r\\n]+)?link', '<([ \\t\\r\\n]+)?style', '<([ \\t\\r\\n]+)?script', '<([ \\t\\r\\n]+)?embed', '<([ \\t\\r\\n]+)?object', '<([ \\t\\r\\n]+)?iframe', '<([ \\t\\r\\n]+)?frame', '<([ \\t\\r\\n]+)?frameset', '<([ \\t\\r\\n]+)?ilayer', '<([ \\t\\r\\n]+)?layer', '<([ \\t\\r\\n]+)?bgsound', '<([ \\t\\r\\n]+)?title', '<([ \\t\\r\\n]+)?base');
             $ra2 = array('onabort([ \\t\\r\\n]+)?=', 'onactivate([ \\t\\r\\n]+)?=', 'onafterprint([ \\t\\r\\n]+)?=', 'onafterupdate([ \\t\\r\\n]+)?=', 'onbeforeactivate([ \\t\\r\\n]+)?=', 'onbeforecopy([ \\t\\r\\n]+)?=', 'onbeforecut([ \\t\\r\\n]+)?=', 'onbeforedeactivate([ \\t\\r\\n]+)?=', 'onbeforeeditfocus([ \\t\\r\\n]+)?=', 'onbeforepaste([ \\t\\r\\n]+)?=', 'onbeforeprint([ \\t\\r\\n]+)?=', 'onbeforeunload([ \\t\\r\\n]+)?=', 'onbeforeupdate([ \\t\\r\\n]+)?=', 'onblur([ \\t\\r\\n]+)?=', 'onbounce([ \\t\\r\\n]+)?=', 'oncellchange([ \\t\\r\\n]+)?=', 'onchange([ \\t\\r\\n]+)?=', 'onclick([ \\t\\r\\n]+)?=', 'oncontextmenu([ \\t\\r\\n]+)?=', 'oncontrolselect([ \\t\\r\\n]+)?=', 'oncopy([ \\t\\r\\n]+)?=', 'oncut([ \\t\\r\\n]+)?=', 'ondataavailable([ \\t\\r\\n]+)?=', 'ondatasetchanged([ \\t\\r\\n]+)?=', 'ondatasetcomplete([ \\t\\r\\n]+)?=', 'ondblclick([ \\t\\r\\n]+)?=', 'ondeactivate([ \\t\\r\\n]+)?=', 'ondrag([ \\t\\r\\n]+)?=', 'ondragend([ \\t\\r\\n]+)?=', 'ondragenter([ \\t\\r\\n]+)?=', 'ondragleave([ \\t\\r\\n]+)?=', 'ondragover([ \\t\\r\\n]+)?=', 'ondragstart([ \\t\\r\\n]+)?=', 'ondrop([ \\t\\r\\n]+)?=', 'onerror([ \\t\\r\\n]+)?=', 'onerrorupdate([ \\t\\r\\n]+)?=', 'onfilterchange([ \\t\\r\\n]+)?=', 'onfinish([ \\t\\r\\n]+)?=', 'onfocus([ \\t\\r\\n]+)?=', 'onfocusin([ \\t\\r\\n]+)?=', 'onfocusout([ \\t\\r\\n]+)?=', 'onhelp([ \\t\\r\\n]+)?=', 'onkeydown([ \\t\\r\\n]+)?=', 'onkeypress([ \\t\\r\\n]+)?=', 'onkeyup([ \\t\\r\\n]+)?=', 'onlayoutcomplete([ \\t\\r\\n]+)?=', 'onload([ \\t\\r\\n]+)?=', 'onlosecapture([ \\t\\r\\n]+)?=', 'onmousedown([ \\t\\r\\n]+)?=', 'onmouseenter([ \\t\\r\\n]+)?=', 'onmouseleave([ \\t\\r\\n]+)?=', 'onmousemove([ \\t\\r\\n]+)?=', 'onmouseout([ \\t\\r\\n]+)?=', 'onmouseover([ \\t\\r\\n]+)?=', 'onmouseup([ \\t\\r\\n]+)?=', 'onmousewheel([ \\t\\r\\n]+)?=', 'onmove([ \\t\\r\\n]+)?=', 'onmoveend([ \\t\\r\\n]+)?=', 'onmovestart([ \\t\\r\\n]+)?=', 'onpaste([ \\t\\r\\n]+)?=', 'onpropertychange([ \\t\\r\\n]+)?=', 'onreadystatechange([ \\t\\r\\n]+)?=', 'onreset([ \\t\\r\\n]+)?=', 'onresize([ \\t\\r\\n]+)?=', 'onresizeend([ \\t\\r\\n]+)?=', 'onresizestart([ \\t\\r\\n]+)?=', 'onrowenter([ \\t\\r\\n]+)?=', 'onrowexit([ \\t\\r\\n]+)?=', 'onrowsdelete([ \\t\\r\\n]+)?=', 'onrowsinserted([ \\t\\r\\n]+)?=', 'onscroll([ \\t\\r\\n]+)?=', 'onselect([ \\t\\r\\n]+)?=', 'onselectionchange([ \\t\\r\\n]+)?=', 'onselectstart([ \\t\\r\\n]+)?=', 'onstart([ \\t\\r\\n]+)?=', 'onstop([ \\t\\r\\n]+)?=', 'onsubmit([ \\t\\r\\n]+)?=', 'onunload([ \\t\\r\\n]+)?=', 'style([ \\t\\r\\n]+)?=');
             $ra = array_merge($ra1, $ra2);
             foreach ($ra as $tag) {
                 $pattern = '#' . $tag . '#i';
                 preg_match_all($pattern, $val, $matches);
                 foreach ($matches[0] as $match) {
                     $val = str_replace($match, substr($match, 0, 2) . '<x>' . substr($match, 2), $val);
                 }
             }
             return $val;
             break;
         case 'none':
             return $val;
             break;
     }
 }
示例#11
0
 function rsfp_f_onBeforeFormValidation($args)
 {
     $formId = $args['formId'];
     $invalid =& $args['invalid'];
     $post =& $args['post'];
     $secretKey = RSFormProHelper::getConfig('recaptchav2.secret.key');
     // validation:
     // if there's no session token
     // validate based on challenge & response codes
     // if valid, set the session token
     // session token gets cleared after form processes
     // session token gets cleared on page refresh as well
     if (($componentId = RSFormProHelper::componentExists($formId, 2424)) && $secretKey) {
         $input = JFactory::getApplication()->input;
         $response = $input->get('g-recaptcha-response', '', 'raw');
         $ip = $input->server->get('REMOTE_ADDR');
         $task = strtolower($input->get('task'));
         $option = strtolower($input->get('option'));
         $session = JFactory::getSession();
         // already validated, move on
         if ($session->get('com_rsform.recaptchav2Token' . $formId)) {
             return true;
         }
         try {
             jimport('joomla.http.factory');
             $http = JHttpFactory::getHttp();
             if ($request = $http->get('https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) . '&response=' . urlencode($response) . '&remoteip=' . urlencode($ip))) {
                 $json = json_decode($request->body);
             }
         } catch (Exception $e) {
             JFactory::getApplication()->enqueueMessage($e->getMessage(), 'error');
             $invalid[] = $componentId[0];
             return false;
         }
         if (empty($json->success) || !$json->success) {
             $invalid[] = $componentId[0];
             if (!empty($json) && isset($json->{'error-codes'}) && is_array($json->{'error-codes'})) {
                 foreach ($json->{'error-codes'} as $code) {
                     JFactory::getApplication()->enqueueMessage(JText::_('RSFP_RECAPTCHAV2_' . str_replace('-', '_', $code)), 'error');
                 }
             }
         } elseif ($option == 'com_rsform' && $task == 'ajaxvalidate') {
             $session->set('com_rsform.recaptchav2Token' . $formId, md5(uniqid($response)));
         }
     }
 }
示例#12
0
 function getURL()
 {
     // IIS hack
     if (RSFormProHelper::getConfig('global.iis') && !empty($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'IIS') !== false && !empty($_SERVER['QUERY_STRING'])) {
         $u = JRoute::_('index.php?' . $_SERVER['QUERY_STRING'], false);
     } else {
         $u = JFactory::getURI();
         if (RSFormProHelper::isJ16()) {
             // 1.6
             $u = JFactory::getURI($u->get('_uri'));
             $u = $u->toString($parts = array('scheme', 'user', 'pass', 'host', 'port', 'path', 'query', 'fragment'));
         } else {
             // 1.5
             $u = $u->toString();
             // Joom!Fish workarounds...
             if (file_exists(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_joomfish' . DS . 'joomfish.php')) {
                 $u = JFactory::getURI();
                 $u = $u->_uri;
             }
             // sh404SEF workarounds... as usual...
             if (class_exists('shRouter')) {
                 $shConfig = shRouter::shGetConfig();
                 if ($shConfig->Enabled) {
                     $menus =& JApplication::getMenu('site', array());
                     $active = $menus->getActive();
                     if (!empty($active->home)) {
                         $db =& JFactory::getDBO();
                         $db->setQuery("SELECT `link` FROM #__menu WHERE `home`='1' LIMIT 1");
                         $u = JURI::root(true) . '/' . $active->link . '&Itemid=' . $active->id;
                     }
                 }
             }
         }
     }
     return $u;
 }
示例#13
0
 private function _getPriceMask($txt, $val)
 {
     static $init, $nodecimals, $decimal, $thousands, $currency, $mask;
     if (!$init) {
         $init = true;
         $nodecimals = RSFormProHelper::getConfig('payment.nodecimals');
         $decimal = RSFormProHelper::getConfig('payment.decimal');
         $thousands = RSFormProHelper::getConfig('payment.thousands');
         $currency = RSFormProHelper::getConfig('payment.currency');
         $mask = RSFormProHelper::getConfig('payment.mask');
     }
     $formattedPrice = number_format((double) $val, $nodecimals, $decimal, $thousands);
     $replacements = array('{product}' => $txt, '{price}' => $formattedPrice, '{currency}' => $currency);
     return str_replace(array_keys($replacements), array_values($replacements), $mask);
 }
示例#14
0
 public static function getURL()
 {
     // IIS hack
     if (RSFormProHelper::getConfig('global.iis') && !empty($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'IIS') !== false && !empty($_SERVER['QUERY_STRING'])) {
         $u = JRoute::_('index.php?' . $_SERVER['QUERY_STRING'], false);
     } else {
         $uri = JUri::getInstance();
         $u = $uri->toString();
     }
     return $u;
 }