Your IP : 216.73.216.41


Current Path : /home/purehotels/public_html/administrator/components/com_uniform/controllers/
Upload File :
Current File : /home/purehotels/public_html/administrator/components/com_uniform/controllers/form.php

<?php

/**
 * @version     $Id: form.php 19013 2012-11-28 04:48:47Z thailv $
 * @package     JSNUniform
 * @subpackage  Controller
 * @author      JoomlaShine Team <support@joomlashine.com>
 * @copyright   Copyright (C) 2016 JoomlaShine.com. All Rights Reserved.
 * @license     GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Websites: http://www.joomlashine.com
 * Technical Support:  Feedback - http://www.joomlashine.com/contact-us/get-support.html
 */
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.controllerform');

/**
 * Form controllers of JControllerForm
 *
 * @package     Controllers
 * @subpackage  Form
 * @since       1.6
 */
class JSNUniformControllerForm extends JControllerForm
{

	protected $option = JSN_UNIFORM;

	/**
	 * Method to save a record.
	 *
	 * @param   string  $key     The name of the primary key of the URL variable.
	 * @param   string  $urlVar  The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
	 *
	 * @return  boolean  True if successful, false otherwise.
	 *
	 * @since   11.1
	 */
	public function save($key = null, $urlVar = null)
	{
		JSession::checkToken('post') or die( 'Invalid Token' );
		$input = JFactory::getApplication()->input;
		$redirectUrl = $input->getVar('redirect_url', '');
		$redirectUrlForm = $input->getVar('redirect_url_form', '');
		$openArticle = $input->getVar('open_article', '');
		$formId = $input->getInt('form_id', '');
		//$redirectUrlToPreview = $input->getVar('redirect_url_to_preview', '');
		parent::save();

		$redirect = $this->redirect;

		if ($redirectUrl)
		{
			$this->setRedirect(JRoute::_($redirectUrl, false), JText::_('JLIB_APPLICATION_SAVE_SUCCESS'));
		}
		if ($openArticle)
		{
			$this->setRedirect($redirect . '&opentarticle=open');
		}
// 		if ($redirectUrlToPreview)
// 		{
// 			$this->setRedirect($redirect . '&redirecturltopreview=open');
// 		}
		if ($redirectUrlForm)
		{
			$this->setRedirect($redirectUrlForm . '&form_id=' . $formId);
		}
		$session = JFactory::getSession();
		$sessionQueue = $session->get('registry');
		$sessionQueue->set('com_jsnuniform', null);
	}

	/**
	 * Save page form to session
	 *
	 * @return void
	 */
	public function savePage()
	{
		JSession::checkToken('get') or die( 'Invalid Token' );
		$input = JFactory::getApplication()->input;
		$postData = $input->getArray($_POST);

		if ($postData['form_content'] != '')
		{
			$form_content = $input->post->get('form_content', array(), 'array');
			$form_content = array('form_content' => $form_content[0]);
			$postData = array_merge($postData, $form_content);

		}
		$session = JFactory::getSession();
		$formId = isset($postData['form_id']) ? $postData['form_id'] : 0;

		/*$postDataFormContent 	= json_decode($postData['form_content']);
		$pageTitle 				= $this->elementPageTitle();
		array_push($postDataFormContent, $pageTitle);

		$postData['form_content'] = json_encode($postDataFormContent);*/

		if (!empty($postData['form_list_container']))
		{
			$formPageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($postData['form_page_name']) : $postData['form_page_name'];
			$session->set('form_container_page_' . $formPageName, $postData['form_list_container'], 'form-design-' . $formId);
		}
		if (!empty($postData['form_page_name']))
		{
			$tmpIdentify = array();
			$formContent = '';
			if (isset($postData['form_content']))
			{
				$formContent = is_array($postData['form_content']) ? json_encode($postData['form_content']) : $postData['form_content'];
				$formContent = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($formContent) : $formContent;
			}
			$formPageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($postData['form_page_name']) : $postData['form_page_name'];
			$session->set('form_page_' . $formPageName, $formContent, 'form-design-' . $formId);
		}
		if (!empty($postData['form_list_page']))
		{
			$count = 0;
			foreach ($postData['form_list_page'] as $listPage)
			{
				$dataField = "";
				$pageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($listPage[0]) : $listPage[0];
				if (isset($pageName) && isset($postData['form_page_name']))
				{
					$dataField = $session->get('form_page_' . $pageName, '', 'form-design-' . $formId);
					if (!empty($dataField))
					{
						if (!is_array($dataField))
						{
							$dataField = json_decode($dataField);
						}
						foreach ($dataField as $index => $field)
						{
							$count++;
							if (!empty($field->identify))
							{
								while (in_array($field->identify, $tmpIdentify))
								{
									$field->identify = $field->identify . '_' . ($count + 1);
								}
								$tmpIdentify[] = $field->identify;
								$dataField[$index]->identify = preg_replace('/[^a-z0-9-._]/i', "", $field->identify);
							}
						}
						$session->set('form_page_' . $pageName, json_encode($dataField), 'form-design-' . $formId);
					}
				}
			}
			$formListPage = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes(json_encode($postData['form_list_page'])) : json_encode($postData['form_list_page']);
			$session->set('form_list_page', $formListPage, 'form-design-' . $formId);
		}
		jexit();

	}

	/**
	 * load data field on session
	 *
	 * @return json code
	 */
	public function loadSessionField()
	{
		JSession::checkToken('get') or die( 'Invalid Token' );
		$input = JFactory::getApplication()->input;
		$postData = $input->getArray($_POST);

		if ($postData['form_content'] != '')
		{
			$form_content = $input->post->get('form_content', array(), 'array');
			$form_content = array('form_content' => $form_content[0]);
			$postData = array_merge($postData, $form_content);
		}

		/*$postDataFormContent 	= json_decode($postData['form_content']);
		$pageTitle 				= $this->elementPageTitle();
		array_push($postDataFormContent, $pageTitle);

		$postData['form_content'] = json_encode($postDataFormContent);*/

		$formId = isset($postData['form_id']) ? $postData['form_id'] : 0;
		$session = JFactory::getSession();
		$formPage = array();
		$tmpIdentify = array();

		if (isset($postData['form_page_name']) && isset($postData['form_content']))
		{
			$formContent = is_array($postData['form_content']) ? json_encode($postData['form_content']) : $postData['form_content'];
			$formContent = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($formContent) : $formContent;

			$formPageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($postData['form_page_name']) : $postData['form_page_name'];
			$session->set('form_page_' . $formPageName, $formContent, 'form-design-' . $formId);
		}
		if (!empty($postData['form_list_page']))
		{
			$count = 0;
			foreach ($postData['form_list_page'] as $listPage)
			{
				$dataField = "";
				$pageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($listPage[0]) : $listPage[0];
				if (isset($pageName) && isset($postData['form_page_name']))
				{
					$dataField = $session->get('form_page_' . $pageName, '', 'form-design-' . $formId);

					if (isset($dataField))
					{
						if (!is_array($dataField))
						{
							$dataField = json_decode($dataField);
						}
						if (is_array($dataField))
						{
							foreach ($dataField as $index => $field)
							{
								$count++;
								while (in_array($field->identify, $tmpIdentify))
								{
									$field->identify = $field->identify . '_' . ($count + 1);
								}
								$tmpIdentify[] = $field->identify;
								$dataField[$index]->identify = preg_replace('/[^a-z0-9-._]/i', "", $field->identify);
							}
							$session->set('form_page_' . $pageName, json_encode($dataField), 'form-design-' . $formId);
						}

						if (!empty($dataField) && $dataField != 'null')
						{
							$formPage = array_merge($formPage, $dataField);
						}
					}
				}
			}
			if (!empty($formPage))
			{
				echo json_encode($formPage);
			}
		}

		jexit();

	}

	/**
	 * load page on session
	 *
	 * @return json code
	 */
	public function loadPage()
	{
		JSession::checkToken('get') or die( 'Invalid Token' );
		$input = JFactory::getApplication()->input;
		$post = $input->getArray($_POST);
		$form_page_old_content = $input->post->get('form_page_old_content', array(), 'array');
		$form_page_old_content = array('form_page_old_content' => $form_page_old_content[0]);
		$post = array_merge($post, $form_page_old_content);
		$form_page_old_container = $input->post->get('form_page_old_container', array(), 'array');
		$form_page_old_container = array('form_page_old_container' => $form_page_old_container[0]);
		$post = array_merge($post, $form_page_old_container);

		$formId = isset($post['form_id']) ? $post['form_id'] : 0;
		$dataPage = "";
		$pageDefault = isset($post['join_page']) ? $post['join_page'] : '';

		if (!empty($post['form_page_name']))
		{
			$session = JFactory::getSession();
			$formPageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($post['form_page_name']) : $post['form_page_name'];
			$formPage = $session->get('form_page_' . $formPageName, '', 'form-design-' . $formId);

			if (isset($post['form_page_old_name']) && $post['form_page_old_name'] != $formPageName)
			{

				if (!empty($post['form_page_old_content']))
				{

					$formContentOld = is_array($post['form_page_old_content']) ? json_encode($post['form_page_old_content']) : $post['form_page_old_content'];
					$formOldContent = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($formContentOld) : $formContentOld;
					$session->set('form_page_' . $post['form_page_old_name'], $formOldContent, 'form-design-' . $formId);
				}
				if (!empty($post['form_page_old_container']))
				{

					$formContainerOld = is_array($post['form_page_old_container']) ? json_encode($post['form_page_old_container']) : $post['form_page_old_container'];
					$formContainerOld = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($formContainerOld) : $formContainerOld;
					$session->set('form_container_page_' . $post['form_page_old_name'], $formContainerOld, 'form-design-' . $formId);
				}
			}

			if (isset($formPage) && $pageDefault != 'defaultPage')
			{
				if (is_array($formPage))
				{
					$dataPage = json_encode($formPage);
				}
				else
				{
					$dataPage = $formPage;
				}
			}
			else
			{
				if (!empty($post['form_id']))
				{
					$formId = (int) $post['form_id'];
					$model = $this->getModel('form');
					$items = $model->getItem($formId);
					if (!empty($items->form_content))
					{
						foreach ($items->form_content as $formContent)
						{
							$session->set('form_page_' . $formContent->page_id, $formContent->page_content, 'form-design-' . $formId);
						}
						$dataPage = $session->get('form_page_' . $formPageName, '', 'form-design-' . $formId);
					}
				}
				else
				{
					$dataPage = $session->get('form_page_' . $formPageName, '', 'form-design-' . $formId);
				}
			}
		}
		$containerPage = $session->get('form_container_page_' . $formPageName, '', 'form-design-' . $formId);
		$containerPage = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($containerPage) : $containerPage;
		if (!empty($post['join_page']) && $post['join_page'] == "join" && isset($post['form_list_page']) && count($post['form_list_page']) > 1)
		{
			$dataListPage = array();
			$listPage = $session->get('form_list_page');
			$formPageIndex = array();
			$countPosition = 0;
			$listPageContainer = array();
			foreach ($post['form_list_page'] as $index => $listPage)
			{
				$pageName = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($listPage[0]) : $listPage[0];
				if (!empty($pageName) && !empty($post['form_page_name']))
				{
					$positionContainer = array();
					$pageContent = $session->get('form_page_' . $pageName, '', 'form-design-' . $formId);
					$pageContainer = $session->get('form_container_page_' . $pageName, '', 'form-design-' . $formId);
					$pageContainer = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($pageContainer) : $pageContainer;
					$pageContainer = json_decode($pageContainer);

					foreach ($pageContainer as $containerDetail)
					{
						$countPosition++;
						foreach ($containerDetail as $cd)
						{

								$position = explode("_", $cd->columnName);
								$positionContainer[$cd->columnName] = $position[0] . "_" . ($countPosition);
								$cd->columnName = $position[0] . "_" . ($countPosition);


							$listPageContainer[$countPosition-1][] = $cd;
						}
					}
					if (!empty($pageContent) && $pageContent != 'null')
					{
						$pContent = array();
						$pageContent = json_decode($pageContent);
						foreach ($pageContent as $pct)
						{

								$pct->position = $positionContainer[$pct->position];

							$pContent[] = $pct;
						}
						$dataListPage = array_merge($dataListPage, $pContent);
					}
				}
				if ($index == 0)
				{
					$formPageIndex[] = $pageName;
					$pageName1 = (get_magic_quotes_gpc() == true || get_magic_quotes_runtime() == true) ? stripslashes($listPage[1]) : $listPage[1];
					$formPageIndex[] = $pageName1;
				}
				else
				{
					$session->clear('form_page_' . $pageName, 'form-design-' . $formId);
				}
			}
			$dataListPageEncode = json_encode($dataListPage);
			$session->clear('form_list_page', 'form-design-' . $formId);
			$session->set('form_page_' . $formPageIndex[0], $dataListPageEncode, 'form-design-' . $formId);
			$session->set('form_list_page', json_encode($formPageIndex), 'form-design-' . $formId);
			$session->set('form_container_page_' . $formPageIndex[0], json_encode($listPageContainer), 'form-design-' . $formId);
			echo json_encode(array('dataField' => $dataListPageEncode, 'containerPage' => json_encode($listPageContainer)));
		}
		else
		{
			echo json_encode(array('dataField' => $dataPage, 'containerPage' => $containerPage));
		}
		jexit();

	}

	/**
	 * get count field
	 *
	 * @return  void
	 */
	public static function getcountfield()
	{
		JSession::checkToken('get') or die( 'Invalid Token' );
		$input = JFactory::getApplication()->input;
		$postData = $input->getArray($_POST);
		$fieldId = isset($postData['field_id']) ? $postData['field_id'] : 0;
		$formId = isset($postData['form_id']) ? $postData['form_id'] : 0;
		if ($formId && $fieldId)
		{
			echo json_encode(JSNUniformHelper::getDataSumbissionByField($fieldId, $formId));
		}
		jexit();
	}
	/**
	 * Load ajax form all Plugin in uniform
	 * @return  void
	 */
	public static function do_ajax($func = '', $name = '', $param = array()){
		$input = JFactory::getApplication()->input;
		$postData = $input->getArray($_POST);
		if (JSession::checkToken('get') == false)
		{
			JSession::checkToken();
			if (JSession::checkToken() == false)
			{
				die( 'Invalid Token' );
			}

		}

		if(isset($postData['val'])){
			$param = (array) json_decode($postData['val']);
			JPluginHelper::importPlugin('uniform', $param['plgName']);
			$dispatcher = JEventDispatcher::getInstance();
			$results = $dispatcher->trigger($param['func'], array($param));
			echo json_encode($results[0]);
			jexit();
		}else{
			JPluginHelper::importPlugin('uniform', $name);
			$dispatcher = JEventDispatcher::getInstance();
			$dispatcher->trigger($func, array($param));
		}
	}

	public function getFormDataForPreview()
	{
		JSession::checkToken('get') or die( 'Invalid Token' );
		$input 		= JFactory::getApplication()->input;
		$postData 	= $input->getArray($_POST);
		$formId 	= $postData['jform']['form_id'];

		$model 		= $this->getModel();
		$formPages 	= $model->getFormPagePreview();
		$items 		= $model->getItemPreview();


		$result = array('items' => $items, 'formpages' => $formPages, 'formId' => $formId);
		echo json_encode($result);
		exit();
	}

	/*public function elementPageTitle()
	{
		$option 				= new stdClass();
		$option->label 			= JText::_('JSN_UNIFORM_ELEMENT_PAGE_TITLE');
		$option->instruction 	= '';
		$option->required 		= '';
		$option->limitation 	= '';
		$option->limitMin 		= '';
		$option->limitMax 		= '';
		$option->size 			= '';
		$option->value 			= '';
		$option->identify 		= 'page_title';
		$option->customClass 	= '';
		$option->decimal 		= '';

		$elementPageTitle 				= new stdClass();
		$elementPageTitle->id 			= '';
		$elementPageTitle->identify 	= 'page_title';
		$elementPageTitle->options 		= $option;
		$elementPageTitle->position 	= '';
		$elementPageTitle->type 		= 'page_title';
		$elementPageTitle->token 		= JSession::getFormToken();

		return $elementPageTitle;
	}*/
}