| Current Path : /home/antonen/keliauk-uk.lt/modules/mod_qlform/ |
| Current File : /home/antonen/keliauk-uk.lt/modules/mod_qlform/mod_qlform.php |
<?php
/**
* @package mod_qlform
* @copyright Copyright (C) 2017 ql.de All rights reserved.
* @author Mareike Riegel mareike.riegel@ql.de
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
require_once(dirname(__FILE__).'/helper.php');
$input=JFactory::getApplication()->input;
$location=$params->get('location');
$obj_helper=new modQlformHelper($params,$module);
$showCaptcha=$obj_helper->captchaDefault();
$obj_helper->formControl=$params->get('formControl','jform');
$fieldModuleId=$params->get('fieldModuleId');
$moduleId=$module->id;
if(1==$params->get('bootstrap',0))JHtml::_('bootstrap.framework');
/*Xml: getting xml string from params*/
$obj_helper->addStyles();
$str_xml=$obj_helper->transformText($params->get('xml'));
simplexml_load_string($str_xml);
$obj_helper->createAdditionalFields();
if (isset($obj_helper->arrFields) AND is_array($obj_helper->arrFields)) $str_xml = $obj_helper->addFieldsToXml($str_xml,$obj_helper->arrFields,'additionalFields');
/*transform xml to form object*/
$form=$obj_helper->getForm($str_xml,$moduleId);
/*initiate captcha*/
if (1==$showCaptcha)$captcha=$obj_helper->getCaptcha();
if (1==$params->get('stylesLabelswithin','0'))$form=$obj_helper->addPlaceholder($form);
if (1==$params->get('todoDatabase'))
{
$checkDatabase=$obj_helper->connectToDatabase();
if(false!==$checkDatabase)$checkDatabase=$obj_helper->checkDatabase($obj_helper->obj_database,$params->get('databasetable'),$str_xml,$params->get('showDatabaseFormError'),$params->get('databaseaddcreated'));
}
if (1==$params->get('todoDatabaseExternal'))
{
$paramsDatabaseExternal=array('driver','host','user','password','database','prefix',);
foreach ($paramsDatabaseExternal as $k=>$v) $paramsDatabaseExternal[$v]=$params->get('databaseexternal'.$v);
$checkDatabaseExternal=$obj_helper->connectToDatabase($paramsDatabaseExternal);
//print_r($paramsDatabaseExternal);die;
if(false!==$checkDatabaseExternal)$checkDatabaseExternal=$obj_helper->checkDatabase($obj_helper->obj_databaseexternal,$params->get('databaseexternaltable'),$str_xml,$params->get('showDatabaseexternalFormError'),$params->get('databaseexternaladdcreated'));
}
/*validation server site*/
if
(
/*JabBerwOcky for anti spam*/
(
0==$params->get('honeypot',0)
OR
(1==$params->get('honeypot',0) AND isset($_POST['JabBerwOcky']) AND ''==$_POST['JabBerwOcky'])
)
AND
(
(1==$fieldModuleId AND isset($_POST['moduleId']) AND $_POST['moduleId']==$moduleId AND isset($_POST['formSent']) AND 1==$_POST['formSent'] AND is_object($form))
OR
(0==$fieldModuleId AND isset($_POST['formSent']) AND 1==$_POST['formSent'] AND is_object($form))
)
)
{
$data=$input->getData($obj_helper->formControl);
$obj_helper->processData=false;
if(1==$params->get('processData',0))$obj_helper->initPreprocessing($data,$module,$form);
if(true==$obj_helper->processData)$data=$obj_helper->processFor($data,'formDataBeforeValidation');
if (1==$params->get('captchaadded') AND 0!=$showCaptcha AND isset($_POST['captcha'])) $data['captcha']=$_POST['captcha'];
$dataToValidate=$data;
$dataFiles=$input->files->get($obj_helper->formControl);
if (is_array($dataFiles))$dataToValidate=array_merge($dataFiles,$dataToValidate);
if(true==$obj_helper->processData)$dataToValidate=$obj_helper->processFor($dataToValidate,'formAndFileDataBeforeValidation');
$validatedForm=$obj_helper->validate($dataToValidate);
$form=$obj_helper->form;
$validatedCaptcha=false;
if (1==$showCaptcha AND $captcha instanceof JCaptcha) $validatedCaptcha=$obj_helper->checkCaptcha($captcha,$data);
if (true==$validatedForm AND (0==$showCaptcha OR (1==$showCaptcha AND true==$validatedCaptcha))) $validated=true;
else
{
if(is_array($data) OR is_object($data)) foreach ($data as $k=>$v) if (is_string($v))$data[$k]=strip_tags(html_entity_decode($v));
if(true==$obj_helper->processData)$data=$obj_helper->processFor($data,'beforeBindToForm');
$success=$form->bind($data);
$validated=false;
}
}
if (1==$params->get('addPostToForm',0))
{
if (isset($_POST[$obj_helper->formControl])) $array_posts[$obj_helper->formControl]=$obj_helper->subarrayToJson($_POST[$obj_helper->formControl]);
if (isset($_POST['former'])) $array_posts['former']=$obj_helper->subarrayToJson($_POST['former']);
if (isset($array_posts))
{
$array_posts=$obj_helper->stripQuotesInArrayValue($array_posts);
$array_posts=$obj_helper->mergeSubarrays($array_posts,'former',$obj_helper->formControl);
}
if (isset($data) AND isset($array_posts) AND is_array($array_posts))
{
$data=array_merge($data,$array_posts);
}
}
if (isset($validated) AND 1==$validated)
{
/*FILE_UPLOAD START*/
$obj_helper->files=$input->files->get($obj_helper->formControl);
if((1==$params->get('fileupload_enabled',0) OR 1==$params->get('fileemail_enabled',0)) AND true==$obj_helper->checkPlgQlformuploaderExists() AND is_array($obj_helper->files) AND 0<count($obj_helper->files))
{
require_once(JPATH_BASE.'/plugins/system/qlformuploader/php/classes/plgQlformuploaderFiler.php');
foreach($obj_helper->files as $k=>$v)
{
$obj_helper->files[$k]['current']=$obj_helper->files[$k]['tmp_name'];
$obj_helper->files[$k]['fieldname']=$k;
}
$obj_helper->checkFiles();
if (1==$params->get('fileupload_enabled'))
{
$obj_helper->saveFiles();
$data['filesUploaded']=$obj_helper->getFilesUploadedData();
}
}
if (1==$params->get('server_data'))
{
$data['server']=$obj_helper->getServerData($params->get('server_data_ip_anonymize'));
if (1==$params->get('server_data_jsonify')) $data['server']=json_encode($data['server']);
}
if (1==$params->get('show_data_sent'))
{
$obj_helper->arrMessages[]=array('str'=>'<strong>'.JText::_('MOD_QLFORM_SHOWDATASENT_LABEL').'</strong><br />'.$obj_helper->dump($data));
}
$dataJsonified=$obj_helper->subarrayToJson($data);
if (1==$params->get('todoEmail'))
{
if(true==$obj_helper->processData)$dataJsonified=$obj_helper->processFor($dataJsonified,'email');
$recipient=preg_split("?\n?",$params->get('emailrecipient'));
$mailSent=array();
foreach ($recipient as $k=>$v)
{
$v=trim($v);
if(''==$v)
{
unset($recipient[$k]);
continue;
}
$mailSent[$k]=$obj_helper->mail($v,JText::_($params->get('emailsubject')),$dataJsonified,$form,'',$params->get('emaillabels',1));
}
while(list($k,$v)=each($mailSent)) if (1!=$v) unset($mailSent[$k]);
if (count($mailSent)==count($recipient))
{
if(1==$params->get('emailsentdisplay',0))$obj_helper->arrMessages[]=array('str'=>JText::_('MOD_QLFORM_MAIL_SENT'));
}
else
{
$successful=count($mailSent);
$failed=count($recipient)-count($mailSent);
$obj_helper->arrMessages[]=array('warning'=>1, 'str'=>sprintf(JText::_('MOD_QLFORM_MAIL_SENT_ERROR_COUNT'),$successful,$failed));
}
if(isset($obj_helper->files) AND 1==$params->get('fileemail_enabled',0))
{
foreach($obj_helper->files as $k=>$v)
{
$dataFileUpload[$v['name']]['savedTo']=$v['current'];
$dataFileUpload[$v['name']]['error']=$v['error'];
}
$data['filesSendViaEmail']=$dataFileUpload;
unset($obj_helper->files);
}
}
$dataJsonified=$obj_helper->subarrayToJson($data);
if (1==$params->get('todoDatabase') AND true==$checkDatabase)
{
if(true==$obj_helper->processData)$dataJsonified=$obj_helper->processFor($dataJsonified,'database');
if (1==$params->get('databaseaddcreated')) $dataJsonified['created']=date('Y-m-d H:i:s');
if (1==$params->get('showDataSavedToDatabase')) $obj_helper->arrMessages[]=array('str'=>'<strong>'.JText::_('MOD_QLFORM_SHOWDATASAVEDTODATABASE_LABEL').'</strong><br />'.$obj_helper->dump($dataJsonified,'foreachstring'));
$obj_helper->saveToDatabase($params->get('databasetable'),$dataJsonified);
}
if (1==$params->get('todoDatabaseExternal') AND true==$checkDatabaseExternal)
{
if(true==$obj_helper->processData)$dataJsonified=$obj_helper->processFor($dataJsonified,'databaseExternal');
if (1==$params->get('databaseexternaladdcreated')) $dataJsonified['created']=date('Y-m-d H:i:s');
if (1==$params->get('showDataSavedToDatabaseexternal')) $obj_helper->arrMessages[]=array('str'=>'<strong>'.JText::_('MOD_QLFORM_SHOWDATASAVEDTODATABASE_LABEL').'</strong><br />'.$obj_helper->dump($dataJsonified,'foreachstring'));
$obj_helper->saveToDatabase($params->get('databaseexternaltable'),$dataJsonified,$paramsDatabaseExternal);
}
if (1==$params->get('todoSomethingElse'))
{
if(true==$obj_helper->processData)$data=$obj_helper->processFor($data,'somethingElse');
$obj_helper->doSomethingElse($data,$module,$form);
}
if (1==$params->get('todoSomethingCompletelyDifferent'))
{
if(true==$obj_helper->processData)$data=$obj_helper->processFor($data,'completlyDifferent');
$obj_helper->doSomethingCompletelyDifferent($data,$module,$form);
}
if (1==$params->get('todoJmessage'))
{
if(true==$obj_helper->processData)$dataJsonified=$obj_helper->processFor($dataJsonified,'jmessage');
$obj_helper->sendJmessage($data);
}
if (1==$params->get('todoSendcopy') AND isset($_POST[$obj_helper->formControl]) AND isset($_POST[$obj_helper->formControl]['sendcopy']) AND 1==$_POST[$obj_helper->formControl]['sendcopy'] AND !empty($data[$params->get('sendcopyfieldname')]))
{
$dataWithoutServer=$data;
if (isset($dataWithoutServer['server'])) unset($dataWithoutServer['server']);
if(true==$obj_helper->processData)$dataWithoutServer=$obj_helper->processFor($dataWithoutServer,'sendcopy');
$dataWithoutServer=$obj_helper->subarrayToJson($dataWithoutServer);
$obj_helper->mail($data[$params->get('sendcopyfieldname')],JText::_('MOD_QLFORM_COPY').': '.JText::_($params->get('emailsubject')),$dataWithoutServer,$form,$params->get('sendcopypretext'),$params->get('sendcopylabels',1),1);
}
if (1==$params->get('locationbool') AND !empty($location))
{
header('HTTP/1.0 302 Found');
header('location:'.JText::_($location));
exit;
}
$obj_helper->arrMessages[]=array('str'=>$params->get('message'));
}
/*Display messages*/
if (isset($obj_helper->arrMessages) AND is_array($obj_helper->arrMessages)) $messages=$obj_helper->displayMessages($params->get('messageType'));
require JModuleHelper::getLayoutPath('mod_qlform', $params->get('layout', 'default'));