AAAAacademiac/www/administrator/components/com_chronoforms/form_actions/show_html/cfaction_show_html.php0000604 00000052470 15146620716 0031460 0 ustar 00 home params);
$output = '';
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$document = JFactory::getDocument();
//set form's HTML name and ID
$form->html_form_name = isset($form->html_form_name) ? $form->html_form_name : $form->form_params->get('html_form_name', $form->form_name);
$form->html_form_id = isset($form->html_form_id) ? $form->html_form_id : $form->form_params->get('html_form_id', 'chronoform_'.$form->form_name);
//check the assets files to be loaded
if((int)$form->form_params->get('load_files', 1) > 0){
//load form css files
if((bool)$form->form_params->get('tight_layout', 0) === false){
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/frontforms.css');
}else{
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/frontforms_tight.css');
}
}
if(($form->form_params->get('enable_jsvalidation', 1) || (strpos($form->form_details->content, 'validate[') !== false && $form->form_params->get('auto_detect_settings', 1))) && (int)$form->form_params->get('load_files', 1) > 0){
//load js validation code
$this->_loadValidationScripts($form);
}
$datetime_picker_selector = $form->form_params->get('datepicker_config', '');
if((!empty($datetime_picker_selector) || strpos($form->form_details->content, 'cf_date_picker') !== false || strpos($form->form_details->content, 'cf_time_picker') !== false || strpos($form->form_details->content, 'cf_datetime_picker') !== false) && (int)$form->form_params->get('load_files', 1) > 0){
//load js for the date time picker
$jversion = new JVersion();
if(($jversion->RELEASE > 1.5) && $form->form_params->get('datepicker_type', 0) == 1){
$this->_loadDatePickerScripts_moo($form);
}else{
$this->_loadDatePickerScripts($form);
}
}
if((strpos($form->form_details->content, 'tooltipimg') !== false) && (int)$form->form_params->get('load_files', 1) > 0){
//load the tooltips files
$this->_loadToolTip($form);
}
if(!empty($form->validation_errors) && (int)$form->form_params->get('load_files', 1) > 0){
//add the validation style
$this->_loadSSValidation($form);
}
//check if form tags should be added or not
if($form->form_params->get('add_form_tags', 1)){
$output .= "
";
}
//check if the form should be inside a div container ?
if(strlen(trim($params->get('form_container', ''))) > 0){
$output = ''.$output.'
';
}
echo $output;
}
function _getURLSeparator($url = ''){
$separator = '';
$action_url = $url;
if(strpos($action_url, '?') !== false && substr($action_url, -1) != '?'){
$separator = '&';
}
if(strpos($action_url, '?') === false){
$separator = '?';
}
return $separator;
}
function _showErrors($form){
if(!empty($form->validation_errors) && $form->form_params->get('show_top_errors', 1)){
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$document = JFactory::getDocument();
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/error.css');
echo '- '.implode('
- ', $this->_normalize($form->validation_errors)).'
';
}
}
function _normalize($array = array()){
$return = array();
foreach($array as $k => $v){
if(is_array($v)){
$return = array_merge($this->_normalize($v), $return);
}else{
$return[] = $v;
}
}
return $return;
}
function _loadValidationScripts($form){
if($form->loaded_validation === false){
$document = JFactory::getDocument();
JHTML::_('behavior.mootools');
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$form->html_form_name = isset($form->html_form_name) ? $form->html_form_name : $form->form_name;
$form->html_form_id = isset($form->html_form_id) ? $form->html_form_id : 'chronoform_'.$form->form_name;
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/formcheck/theme/'.$form->form_params->get('jsvalidation_theme', 'classic').'/formcheck.css');
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/formcheck_fix.css');
$document->addScript($uri->root().'components/com_chronoforms/js/formcheck/formcheck-yui.js');
$document->addScript($uri->root().'components/com_chronoforms/js/formcheck/formcheck-max.js');
$validationClass = "FormCheck";
//check for JPanes existance
if(strpos($form->form_details->content, 'jimport("joomla.html.pane");') !== false){
//load jpanes validation fix
$document->addScript($uri->root().'components/com_chronoforms/js/formcheck/formcheck-jpane.js');
$validationClass = "FormCheckJPane";
}
if(((bool)$form->form_params->get('jsvalidation_errors', 1) === true) && ($validationClass == "FormCheck")){
$validationClass = "FormCheckMax";
}
if(1){
$lang = JFactory::getLanguage();
$lang_tag = $lang->getTag();
$lang_pcs = explode('-', $lang_tag);
$lang_tag = file_exists(str_replace('/', DS, JPATH_SITE.DS.'components/com_chronoforms/js/formcheck/lang/'.$lang_pcs[0].'.js')) ? $lang_pcs[0] : $form->form_params->get('jsvalidation_lang', 'en');
}
$document->addScript($uri->root().'components/com_chronoforms/js/formcheck/lang/'.$lang_tag.'.js');
ob_start();
?>
window.addEvent('domready', function() {
document.id('html_form_id; ?>').addClass('hasValidation');
formCheck_html_form_name); ?> = new ('html_form_id; ?>', {
onValidateSuccess: form_params->get('jsvalidation_onValidateSuccess', "\$empty"); ?>,
display : {
showErrors : form_params->get('jsvalidation_showErrors', 0); ?>,
errorsLocation: form_params->get('jsvalidation_errorsLocation', 1); ?>
}
});
});
form_params->get('dynamic_files', 0) === false){
$document->addScriptDeclaration("//");
}else{
//load the action class
$form->loadActionHelper('load_js');
$CfactionLoadJsHelper = new CfactionLoadJsHelper();
$JSactiondata = new stdClass();
$JSactiondata->content1 = $script;
$JSParams = new JParameter('');
$JSParams->set('dynamic_file', $form->form_params->get('dynamic_files', 0));
$JSactiondata->params = $JSParams->toString();
$CfactionLoadJsHelper->load($form, $JSactiondata);
}
//set validation loaded
$form->loaded_validation = true;
}
}
function _loadDatePickerScripts($form){
$document = JFactory::getDocument();
JHTML::_('behavior.mootools');
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$document->addStyleSheet($uri->root().'components/com_chronoforms/css/datepicker/datepicker_dashboard.css');
$document->addScript($uri->root().'components/com_chronoforms/js/datepicker/datepicker.js');
$settings = array(
"'.cf_date_picker', {pickerClass: 'datepicker_dashboard', format: 'Y-m-d', inputOutputFormat: 'Y-m-d', allowEmpty: true",
"'.cf_datetime_picker', {pickerClass: 'datepicker_dashboard', inputOutputFormat: 'Y-m-d H:i:s', timePicker: true, allowEmpty: true, format: 'd-m-Y H:i:s'",
"'.cf_time_picker', {pickerClass: 'datepicker_dashboard', inputOutputFormat: 'H:i:s', timePickerOnly: true, allowEmpty: true, format: 'H:i:s'"
);
//$selector = 'dateTimePicker';
$datepicker_ext = $form->form_params->get('datepicker_config', '');
ob_start();
?>
window.addEvent('load', function() {
new DatePicker();
});
form_params->get('dynamic_files', 0) === false){
$document->addScriptDeclaration("//");
}else{
//load the action class
$form->loadActionHelper('load_js');
$CfactionLoadJsHelper = new CfactionLoadJsHelper();
$JSactiondata = new stdClass();
$JSactiondata->content1 = $script;
$JSParams = new JParameter('');
$JSParams->set('dynamic_file', $form->form_params->get('dynamic_files', 0));
$JSactiondata->params = $JSParams->toString();
$CfactionLoadJsHelper->load($form, $JSactiondata);
}
}
function _loadDatePickerScripts_moo($form){
$document = JFactory::getDocument();
JHTML::_('behavior.mootools');
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$cf_url = $uri->root();//($mainframe->isSite()) ? JURI::Base() : $uri->root();
$cf_url .= 'components/com_chronoforms/js/datepicker_moo/';
// you can change the uncommented line here to change the style
$datepicker_style = $form->form_params->get('datepicker_moo_style', 'datepicker_dashboard');
//$datepicker_style = 'datepicker_jqui';
//$datepicker_style = 'datepicker_vista';
$document->addStyleSheet($cf_url.$datepicker_style.'/'.$datepicker_style.'.css');
if(1){
$lang = JFactory::getLanguage();
$lang_tag = $lang->getTag();
$lang_tag = file_exists(str_replace('/', DS, JPATH_SITE.DS.'components/com_chronoforms/js/datepicker_moo/Locale.'.$lang_tag.'.DatePicker.js')) ? $lang_tag : 'en-US';
if($lang_tag != 'en-US'){
$document->addScriptDeclaration('Locale.use("'.$lang_tag.'");');
}
}
$document->addScript($cf_url.'Locale.'.$lang_tag.'.DatePicker.js');
$document->addScript($cf_url.'Picker.js');
$document->addScript($cf_url.'Picker.Attach.js');
$document->addScript($cf_url.'Picker.Date.js');
$settings = array();
// Settings for standard date picker
$settings[1]['class'] = '.cf_date_picker';
$settings[1]['options'] = array(
"pickerClass: '{$datepicker_style}'",
"format: '%Y-%m-%d'",
"allowEmpty: true",
"useFadeInOut: !Browser.ie"
);
// Settings for standard date + time picker
$settings[2]['class'] = '.cf_datetime_picker';
$settings[2]['options'] = array(
"pickerClass: '{$datepicker_style}'",
"format: '%d-%m-%Y %H:%M:%S'",
"timePicker: true",
"allowEmpty: true",
"useFadeInOut: !Browser.ie"
);
// Settings for standard time picker
$settings[3]['class'] = '.cf_time_picker';
$settings[3]['options'] = array(
"pickerClass: '{$datepicker_style}'",
"format: '%H:%M:%S'",
"pickOnly: 'time'",
"allowEmpty: true",
"useFadeInOut: !Browser.ie"
);
$datepicker_ext = $form->form_params->get('datepicker_config', '');
$script = "";
foreach($settings as $s){
$options = implode(', ', $s['options']);
if($datepicker_ext){
$options .= ', '.$datepicker_ext;
}
$script .= "
new Picker.Date($$('{$s['class']}'), {
{$options}
});
";
}
$script = "
window.addEvent('load', function() {
{$script}
});
";
if((bool)$form->form_params->get('dynamic_files', 0) === false){
$document->addScriptDeclaration($script);
}else{
//load the action class
$form->loadActionHelper('load_js');
$CfactionLoadJsHelper = new CfactionLoadJsHelper();
$JSactiondata = new stdClass();
$JSactiondata->content1 = $script;
$JSParams = new JParameter('');
$JSParams->set('dynamic_file', $form->form_params->get('dynamic_files', 0));
$JSactiondata->params = $JSParams->toString();
$CfactionLoadJsHelper->load($form, $JSactiondata);
}
}
function _loadSSValidation($form){
$document = JFactory::getDocument();
JHTML::_('behavior.mootools');
ob_start();
?>
window.addEvent('domready', function() {
$$('.error-message').each(function(element){
if($chk(element.getParent('.ccms_form_element'))){
element.getParent('.ccms_form_element').addClass('form-error');
}
});
});
form_params->get('dynamic_files', 0) === false){
$document->addScriptDeclaration("//");
}else{
//load the action class
$form->loadActionHelper('load_js');
$CfactionLoadJsHelper = new CfactionLoadJsHelper();
$JSactiondata = new stdClass();
$JSactiondata->content1 = $script;
$JSParams = new JParameter('');
$JSParams->set('dynamic_file', $form->form_params->get('dynamic_files', 0));
$JSactiondata->params = $JSParams->toString();
$CfactionLoadJsHelper->load($form, $JSactiondata);
}
}
function _loadToolTip($form){
$mainframe = JFactory::getApplication();
$uri = JFactory::getURI();
$document = JFactory::getDocument();
$cf_url = $uri->root();
$cf_url .= 'components/com_chronoforms/css/';
JHTML::_('behavior.mootools');
$document->addStyleSheet($cf_url.'/tooltip.css');
//echo '';
//JHTML::_('behavior.tooltip', '.tooltipimg');
ob_start();
?>
window.addEvent('domready', function(){
//create the tooltips
var tipz = new Tips($$('div.tooltipimg'),{
className: 'tooltipbox',
fixed: true,
hideDelay: 0,
showDelay: 0
});
});
form_params->get('dynamic_files', 0) === false){
$document->addScriptDeclaration("//");
}else{
//load the action class
$form->loadActionHelper('load_js');
$CfactionLoadJsHelper = new CfactionLoadJsHelper();
$JSactiondata = new stdClass();
$JSactiondata->content1 = $script;
$JSParams = new JParameter('');
$JSParams->set('dynamic_file', $form->form_params->get('dynamic_files', 0));
$JSactiondata->params = $JSParams->toString();
$CfactionLoadJsHelper->load($form, $JSactiondata);
}
}
function selfURL() {
$uri = JURI::getInstance();
$inbetween = '';
if($uri->getQuery())$inbetween = '?';
//php4
// Now we need to clean what we got since we can't trust the server var
$theURI = $uri->getQuery();
$theURI = urldecode($theURI);
$theURI = str_replace('"', '"',$theURI);
$theURI = str_replace('<', '<',$theURI);
$theURI = str_replace('>', '>',$theURI);
$theURI = preg_replace('/eval\((.*)\)/', '', $theURI);
$theURI = preg_replace('/[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']/', '""', $theURI);
//php5 for later
//$theURI = filter_var($uri->getQuery(), FILTER_SANITIZE_STRING);
return $uri->current().$inbetween.$theURI;
}
function generateURL($url = '', $addvars = array()){
if(empty($url)){
return $this->selfURL();
}else{
if(!empty($addvars)){
foreach($addvars as $addvar => $varval){
//strip the var name if exists
preg_match_all('/(&*)'.$addvar.'=([^&]+)/is', $url, $matches);
$url = str_replace($matches[0], '', $url);
$separator = $this->_getURLSeparator($url);
$url .= $separator.$addvar.'='.$varval;
}
}
return $url;
}
}
}
?>