Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/public_html/css/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/public_html/css/controllers.tar

profile.php000064400000013641151165500450006724 0ustar00<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   (C) 2009 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

JLoader::register('UsersController', JPATH_COMPONENT .
'/controller.php');

/**
 * Profile controller class for Users.
 *
 * @since  1.6
 */
class UsersControllerProfile extends UsersController
{
	/**
	 * Method to check out a user for editing and redirect to the edit form.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function edit()
	{
		$app         = JFactory::getApplication();
		$user        = JFactory::getUser();
		$loginUserId = (int) $user->get('id');

		// Get the previous user id (if any) and the current user id.
		$previousId = (int)
$app->getUserState('com_users.edit.profile.id');
		$userId     = $this->input->getInt('user_id');

		// Check if the user is trying to edit another users profile.
		if ($userId != $loginUserId)
		{
			$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'error');
			$app->setHeader('status', 403, true);

			return false;
		}

		$cookieLogin = $user->get('cookieLogin');

		// Check if the user logged in with a cookie
		if (!empty($cookieLogin))
		{
			// If so, the user must login to edit the password and other data.
			$app->enqueueMessage(JText::_('JGLOBAL_REMEMBER_MUST_LOGIN'),
'message');
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));

			return false;
		}

		// Set the user id for the user to edit in the session.
		$app->setUserState('com_users.edit.profile.id', $userId);

		// Get the model.
		$model = $this->getModel('Profile', 'UsersModel');

		// Check out the user.
		if ($userId)
		{
			$model->checkout($userId);
		}

		// Check in the previous user.
		if ($previousId)
		{
			$model->checkin($previousId);
		}

		// Redirect to the edit screen.
		$this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit',
false));

		return true;
	}

	/**
	 * Method to save a user's profile data.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function save()
	{
		// Check for request forgeries.
		$this->checkToken();

		$app    = JFactory::getApplication();
		$model  = $this->getModel('Profile',
'UsersModel');
		$user   = JFactory::getUser();
		$userId = (int) $user->get('id');

		// Get the user data.
		$requestData = $app->input->post->get('jform',
array(), 'array');

		// Force the ID to this user.
		$requestData['id'] = $userId;

		// Validate the posted data.
		$form = $model->getForm();

		if (!$form)
		{
			JError::raiseError(500, $model->getError());

			return false;
		}

		// Send an object which can be modified through the plugin event
		$objData = (object) $requestData;
		$app->triggerEvent(
			'onContentNormaliseRequestData',
			array('com_users.user', $objData, $form)
		);
		$requestData = (array) $objData;

		// Validate the posted data.
		$data = $model->validate($form, $requestData);

		// Check for errors.
		if ($data === false)
		{
			// Get the validation messages.
			$errors = $model->getErrors();

			// Push up to three validation messages out to the user.
			for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++)
			{
				if ($errors[$i] instanceof Exception)
				{
					$app->enqueueMessage($errors[$i]->getMessage(),
'warning');
				}
				else
				{
					$app->enqueueMessage($errors[$i], 'warning');
				}
			}

			// Unset the passwords.
			unset($requestData['password1'],
$requestData['password2']);

			// Save the data in the session.
			$app->setUserState('com_users.edit.profile.data',
$requestData);

			// Redirect back to the edit screen.
			$userId = (int)
$app->getUserState('com_users.edit.profile.id');
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id='
. $userId, false));

			return false;
		}

		// Attempt to save the data.
		$return = $model->save($data);

		// Check for errors.
		if ($return === false)
		{
			// Save the data in the session.
			$app->setUserState('com_users.edit.profile.data', $data);

			// Redirect back to the edit screen.
			$userId = (int)
$app->getUserState('com_users.edit.profile.id');
			$this->setMessage(JText::sprintf('COM_USERS_PROFILE_SAVE_FAILED',
$model->getError()), 'warning');
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&user_id='
. $userId, false));

			return false;
		}

		// Redirect the user and adjust session state based on the chosen task.
		switch ($this->getTask())
		{
			case 'apply':
				// Check out the profile.
				$app->setUserState('com_users.edit.profile.id', $return);
				$model->checkout($return);

				// Redirect back to the edit screen.
				$this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS'));

				$redirect =
$app->getUserState('com_users.edit.profile.redirect');

				// Don't redirect to an external URL.
				if (!JUri::isInternal($redirect))
				{
					$redirect = null;
				}

				if (!$redirect)
				{
					$redirect =
'index.php?option=com_users&view=profile&layout=edit&hidemainmenu=1';
				}

				$this->setRedirect(JRoute::_($redirect, false));
				break;

			default:
				// Check in the profile.
				$userId = (int)
$app->getUserState('com_users.edit.profile.id');

				if ($userId)
				{
					$model->checkin($userId);
				}

				// Clear the profile id from the session.
				$app->setUserState('com_users.edit.profile.id', null);

				$redirect =
$app->getUserState('com_users.edit.profile.redirect');

				// Don't redirect to an external URL.
				if (!JUri::isInternal($redirect))
				{
					$redirect = null;
				}

				if (!$redirect)
				{
					$redirect =
'index.php?option=com_users&view=profile&user_id=' .
$return;
				}

				// Redirect to the list screen.
				$this->setMessage(JText::_('COM_USERS_PROFILE_SAVE_SUCCESS'));
				$this->setRedirect(JRoute::_($redirect, false));
				break;
		}

		// Flush the data from the session.
		$app->setUserState('com_users.edit.profile.data', null);
	}
}
registration.php000064400000015420151165500450007773 0ustar00<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   (C) 2009 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

JLoader::register('UsersController', JPATH_COMPONENT .
'/controller.php');

/**
 * Registration controller class for Users.
 *
 * @since  1.6
 */
class UsersControllerRegistration extends UsersController
{
	/**
	 * Method to activate a user.
	 *
	 * @return  boolean  True on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function activate()
	{
		$user  	 = JFactory::getUser();
		$input 	 = JFactory::getApplication()->input;
		$uParams = JComponentHelper::getParams('com_users');

		// Check for admin activation. Don't allow non-super-admin to delete
a super admin
		if ($uParams->get('useractivation') != 2 &&
$user->get('id'))
		{
			$this->setRedirect('index.php');

			return true;
		}

		// If user registration or account activation is disabled, throw a 403.
		if ($uParams->get('useractivation') == 0 ||
$uParams->get('allowUserRegistration') == 0)
		{
			JError::raiseError(403,
JText::_('JLIB_APPLICATION_ERROR_ACCESS_FORBIDDEN'));

			return false;
		}

		$model = $this->getModel('Registration',
'UsersModel');
		$token = $input->getAlnum('token');

		// Check that the token is in a valid format.
		if ($token === null || strlen($token) !== 32)
		{
			JError::raiseError(403, JText::_('JINVALID_TOKEN'));

			return false;
		}

		// Get the User ID
		$userIdToActivate = $model->getUserIdFromToken($token);

		if (!$userIdToActivate)
		{
			$this->setMessage(JText::_('COM_USERS_ACTIVATION_TOKEN_NOT_FOUND'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));

			return false;
		}

		// Get the user we want to activate
		$userToActivate = JFactory::getUser($userIdToActivate);

		// Admin activation is on and admin is activating the account
		if (($uParams->get('useractivation') == 2) &&
$userToActivate->getParam('activate', 0))
		{
			// If a user admin is not logged in, redirect them to the login page
with an error message
			if (!$user->authorise('core.create', 'com_users')
|| !$user->authorise('core.manage', 'com_users'))
			{
				$activationUrl =
'index.php?option=com_users&task=registration.activate&token='
. $token;
				$loginUrl      =
'index.php?option=com_users&view=login&return=' .
base64_encode($activationUrl);

				// In case we still run into this in the second step the user does not
have the right permissions
				$message =
JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION_PERMISSIONS');

				// When we are not logged in we should login
				if ($user->guest)
				{
					$message =
JText::_('COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION');
				}

				$this->setMessage($message);
				$this->setRedirect(JRoute::_($loginUrl, false));

				return false;
			}
		}

		// Attempt to activate the user.
		$return = $model->activate($token);

		// Check for errors.
		if ($return === false)
		{
			// Redirect back to the home page.
			$this->setMessage(JText::sprintf('COM_USERS_REGISTRATION_SAVE_FAILED',
$model->getError()), 'error');
			$this->setRedirect('index.php');

			return false;
		}

		$useractivation = $uParams->get('useractivation');

		// Redirect to the login screen.
		if ($useractivation == 0)
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));
		}
		elseif ($useractivation == 1)
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_ACTIVATE_SUCCESS'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));
		}
		elseif ($return->getParam('activate'))
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_VERIFY_SUCCESS'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete',
false));
		}
		else
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_ADMINACTIVATE_SUCCESS'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete',
false));
		}

		return true;
	}

	/**
	 * Method to register a user.
	 *
	 * @return  boolean  True on success, false on failure.
	 *
	 * @since   1.6
	 */
	public function register()
	{
		// Check for request forgeries.
		$this->checkToken();

		// If registration is disabled - Redirect to login page.
		if
(JComponentHelper::getParams('com_users')->get('allowUserRegistration')
== 0)
		{
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));

			return false;
		}

		$app   = JFactory::getApplication();
		$model = $this->getModel('Registration',
'UsersModel');

		// Get the user data.
		$requestData = $this->input->post->get('jform',
array(), 'array');

		// Validate the posted data.
		$form = $model->getForm();

		if (!$form)
		{
			JError::raiseError(500, $model->getError());

			return false;
		}

		$data = $model->validate($form, $requestData);

		// Check for validation errors.
		if ($data === false)
		{
			// Get the validation messages.
			$errors = $model->getErrors();

			// Push up to three validation messages out to the user.
			for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++)
			{
				if ($errors[$i] instanceof Exception)
				{
					$app->enqueueMessage($errors[$i]->getMessage(),
'error');
				}
				else
				{
					$app->enqueueMessage($errors[$i], 'error');
				}
			}

			// Save the data in the session.
			$app->setUserState('com_users.registration.data',
$requestData);

			// Redirect back to the registration screen.
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration',
false));

			return false;
		}

		// Attempt to save the data.
		$return = $model->register($data);

		// Check for errors.
		if ($return === false)
		{
			// Save the data in the session.
			$app->setUserState('com_users.registration.data', $data);

			// Redirect back to the edit screen.
			$this->setMessage($model->getError(), 'error');
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration',
false));

			return false;
		}

		// Flush the data from the session.
		$app->setUserState('com_users.registration.data', null);

		// Redirect to the profile screen.
		if ($return === 'adminactivate')
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_VERIFY'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete',
false));
		}
		elseif ($return === 'useractivate')
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_COMPLETE_ACTIVATE'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=registration&layout=complete',
false));
		}
		else
		{
			$this->setMessage(JText::_('COM_USERS_REGISTRATION_SAVE_SUCCESS'));
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false));
		}

		return true;
	}
}
remind.php000064400000002621151165500450006536 0ustar00<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   (C) 2010 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

JLoader::register('UsersController', JPATH_COMPONENT .
'/controller.php');

/**
 * Reset controller class for Users.
 *
 * @since  1.6
 */
class UsersControllerRemind extends UsersController
{
	/**
	 * Method to request a username reminder.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function remind()
	{
		// Check the request token.
		$this->checkToken('post');

		$model = $this->getModel('Remind', 'UsersModel');
		$data  = $this->input->post->get('jform', array(),
'array');

		// Submit the password reset request.
		$return	= $model->processRemindRequest($data);

		// Check for a hard error.
		if ($return == false && JDEBUG)
		{
			// The request failed.
			// Go back to the request form.
			$message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED',
$model->getError());
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=remind',
false), $message, 'notice');

			return false;
		}

		// To not expose if the user exists or not we send a generic message.
		$message = JText::_('COM_USERS_REMIND_REQUEST');
		$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false), $message, 'notice');

		return true;
	}
}
reset.php000064400000011203151165500450006376 0ustar00<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   (C) 2009 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

JLoader::register('UsersController', JPATH_COMPONENT .
'/controller.php');

/**
 * Reset controller class for Users.
 *
 * @since  1.6
 */
class UsersControllerReset extends UsersController
{
	/**
	 * Method to request a password reset.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function request()
	{
		// Check the request token.
		$this->checkToken('post');

		$app   = JFactory::getApplication();
		$model = $this->getModel('Reset', 'UsersModel');
		$data  = $this->input->post->get('jform', array(),
'array');

		// Submit the password reset request.
		$return	= $model->processResetRequest($data);

		// Check for a hard error.
		if ($return instanceof Exception && JDEBUG)
		{
			// Get the error message to display.
			if ($app->get('error_reporting'))
			{
				$message = $return->getMessage();
			}
			else
			{
				$message = JText::_('COM_USERS_RESET_REQUEST_ERROR');
			}

			// Go back to the request form.
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset',
false), $message, 'error');

			return false;
		}
		elseif ($return === false && JDEBUG)
		{
			// The request failed.
			// Go back to the request form.
			$message = JText::sprintf('COM_USERS_RESET_REQUEST_FAILED',
$model->getError());
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset',
false), $message, 'notice');

			return false;
		}

		// To not expose if the user exists or not we send a generic message.
		$message = JText::_('COM_USERS_RESET_REQUEST');
		$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm',
false), $message, 'notice');

		return true;
	}

	/**
	 * Method to confirm the password request.
	 *
	 * @return  boolean
	 *
	 * @access	public
	 * @since   1.6
	 */
	public function confirm()
	{
		// Check the request token.
		$this->checkToken('request');

		$app   = JFactory::getApplication();
		$model = $this->getModel('Reset', 'UsersModel');
		$data  = $this->input->get('jform', array(),
'array');

		// Confirm the password reset request.
		$return	= $model->processResetConfirm($data);

		// Check for a hard error.
		if ($return instanceof Exception)
		{
			// Get the error message to display.
			if ($app->get('error_reporting'))
			{
				$message = $return->getMessage();
			}
			else
			{
				$message = JText::_('COM_USERS_RESET_CONFIRM_ERROR');
			}

			// Go back to the confirm form.
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm',
false), $message, 'error');

			return false;
		}
		elseif ($return === false)
		{
			// Confirm failed.
			// Go back to the confirm form.
			$message = JText::sprintf('COM_USERS_RESET_CONFIRM_FAILED',
$model->getError());
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=confirm',
false), $message, 'notice');

			return false;
		}
		else
		{
			// Confirm succeeded.
			// Proceed to step three.
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete',
false));

			return true;
		}
	}

	/**
	 * Method to complete the password reset process.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function complete()
	{
		// Check for request forgeries
		$this->checkToken('post');

		$app   = JFactory::getApplication();
		$model = $this->getModel('Reset', 'UsersModel');
		$data  = $this->input->post->get('jform', array(),
'array');

		// Complete the password reset request.
		$return	= $model->processResetComplete($data);

		// Check for a hard error.
		if ($return instanceof Exception)
		{
			// Get the error message to display.
			if ($app->get('error_reporting'))
			{
				$message = $return->getMessage();
			}
			else
			{
				$message = JText::_('COM_USERS_RESET_COMPLETE_ERROR');
			}

			// Go back to the complete form.
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete',
false), $message, 'error');

			return false;
		}
		elseif ($return === false)
		{
			// Complete failed.
			// Go back to the complete form.
			$message = JText::sprintf('COM_USERS_RESET_COMPLETE_FAILED',
$model->getError());
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=reset&layout=complete',
false), $message, 'notice');

			return false;
		}
		else
		{
			// Complete succeeded.
			// Proceed to the login form.
			$message = JText::_('COM_USERS_RESET_COMPLETE_SUCCESS');
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login',
false), $message);

			return true;
		}
	}
}
user.php000064400000020634151165500450006242 0ustar00<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   (C) 2009 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

JLoader::register('UsersController', JPATH_COMPONENT .
'/controller.php');

/**
 * Registration controller class for Users.
 *
 * @since  1.6
 */
class UsersControllerUser extends UsersController
{
	/**
	 * Method to log in a user.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function login()
	{
		$this->checkToken('post');

		$app   = JFactory::getApplication();
		$input = $app->input->getInputForRequestMethod();

		// Populate the data array:
		$data = array();

		$data['return']    =
base64_decode($input->get('return', '',
'BASE64'));
		$data['username']  = $input->get('username',
'', 'USERNAME');
		$data['password']  = $input->get('password',
'', 'RAW');
		$data['secretkey'] = $input->get('secretkey',
'', 'RAW');

		// Check for a simple menu item id
		if (is_numeric($data['return']))
		{
			if (JLanguageMultilang::isEnabled())
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('language')
					->from($db->quoteName('#__menu'))
					->where('client_id = 0')
					->where('id =' . $data['return']);

				$db->setQuery($query);

				try
				{
					$language = $db->loadResult();
				}
				catch (RuntimeException $e)
				{
					return;
				}

				if ($language !== '*')
				{
					$lang = '&lang=' . $language;
				}
				else
				{
					$lang = '';
				}
			}
			else
			{
				$lang = '';
			}

			$data['return'] = 'index.php?Itemid=' .
$data['return'] . $lang;
		}
		else
		{
			// Don't redirect to an external URL.
			if (!JUri::isInternal($data['return']))
			{
				$data['return'] = '';
			}
		}

		// Set the return URL if empty.
		if (empty($data['return']))
		{
			$data['return'] =
'index.php?option=com_users&view=profile';
		}

		// Set the return URL in the user state to allow modification by plugins
		$app->setUserState('users.login.form.return',
$data['return']);

		// Get the log in options.
		$options = array();
		$options['remember'] =
$this->input->getBool('remember', false);
		$options['return']   = $data['return'];

		// Get the log in credentials.
		$credentials = array();
		$credentials['username']  = $data['username'];
		$credentials['password']  = $data['password'];
		$credentials['secretkey'] = $data['secretkey'];

		// Perform the log in.
		if (true !== $app->login($credentials, $options))
		{
			// Login failed !
			// Clear user name, password and secret key before sending the login
form back to the user.
			$data['remember'] = (int) $options['remember'];
			$data['username'] = '';
			$data['password'] = '';
			$data['secretkey'] = '';
			$app->setUserState('users.login.form.data', $data);
			$app->redirect(JRoute::_('index.php?option=com_users&view=login',
false));
		}

		// Success
		if ($options['remember'] == true)
		{
			$app->setUserState('rememberLogin', true);
		}

		$app->setUserState('users.login.form.data', array());
		$app->redirect(JRoute::_($app->getUserState('users.login.form.return'),
false));
	}

	/**
	 * Method to log out a user.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function logout()
	{
		$this->checkToken('request');

		$app = JFactory::getApplication();

		// Prepare the logout options.
		$options = array(
			'clientid' => $app->get('shared_session',
'0') ? null : 0,
		);

		// Perform the log out.
		$error = $app->logout(null, $options);
		$input = $app->input->getInputForRequestMethod();

		// Check if the log out succeeded.
		if ($error instanceof Exception)
		{
			$app->redirect(JRoute::_('index.php?option=com_users&view=login',
false));
		}

		// Get the return URL from the request and validate that it is internal.
		$return = $input->get('return', '',
'BASE64');
		$return = base64_decode($return);

		// Check for a simple menu item id
		if (is_numeric($return))
		{
			if (JLanguageMultilang::isEnabled())
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('language')
					->from($db->quoteName('#__menu'))
					->where('client_id = 0')
					->where('id =' . $return);

				$db->setQuery($query);

				try
				{
					$language = $db->loadResult();
				}
				catch (RuntimeException $e)
				{
					return;
				}

				if ($language !== '*')
				{
					$lang = '&lang=' . $language;
				}
				else
				{
					$lang = '';
				}
			}
			else
			{
				$lang = '';
			}

			$return = 'index.php?Itemid=' . $return . $lang;
		}
		else
		{
			// Don't redirect to an external URL.
			if (!JUri::isInternal($return))
			{
				$return = '';
			}
		}

		// In case redirect url is not set, redirect user to homepage
		if (empty($return))
		{
			$return = JUri::root();
		}

		// Redirect the user.
		$app->redirect(JRoute::_($return, false));
	}

	/**
	 * Method to logout directly and redirect to page.
	 *
	 * @return  void
	 *
	 * @since   3.5
	 */
	public function menulogout()
	{
		// Get the ItemID of the page to redirect after logout
		$app    = JFactory::getApplication();
		$active = $app->getMenu()->getActive();
		$itemid = $active ? $active->getParams()->get('logout') :
0;
		
		// Get the language of the page when multilang is on
		if (JLanguageMultilang::isEnabled())
		{
			if ($itemid)
			{
				$db = JFactory::getDbo();
				$query = $db->getQuery(true)
					->select('language')
					->from($db->quoteName('#__menu'))
					->where('client_id = 0')
					->where('id =' . $itemid);

				$db->setQuery($query);

				try
				{
					$language = $db->loadResult();
				}
				catch (RuntimeException $e)
				{
					return;
				}

				if ($language !== '*')
				{
					$lang = '&lang=' . $language;
				}
				else
				{
					$lang = '';
				}

				// URL to redirect after logout
				$url = 'index.php?Itemid=' . $itemid . $lang;
			}
			else
			{
				// Logout is set to default. Get the home page ItemID
				$lang_code =
$app->input->cookie->getString(JApplicationHelper::getHash('language'));
				$item      = $app->getMenu()->getDefault($lang_code);
				$itemid    = $item->id;

				// Redirect to Home page after logout
				$url = 'index.php?Itemid=' . $itemid;
			}
		}
		else
		{
			// URL to redirect after logout, default page if no ItemID is set
			$url = $itemid ? 'index.php?Itemid=' . $itemid : JUri::root();
		}

		// Logout and redirect
		$this->setRedirect('index.php?option=com_users&task=user.logout&'
. JSession::getFormToken() . '=1&return=' .
base64_encode($url));
	}

	/**
	 * Method to request a username reminder.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	public function remind()
	{
		// Check the request token.
		$this->checkToken('post');

		$app   = JFactory::getApplication();
		$model = $this->getModel('User', 'UsersModel');
		$data  = $this->input->post->get('jform', array(),
'array');

		// Submit the username remind request.
		$return = $model->processRemindRequest($data);

		// Check for a hard error.
		if ($return instanceof Exception)
		{
			// Get the error message to display.
			$message = $app->get('error_reporting')
				? $return->getMessage()
				: JText::_('COM_USERS_REMIND_REQUEST_ERROR');

			// Get the route to the next page.
			$itemid = UsersHelperRoute::getRemindRoute();
			$itemid = $itemid !== null ? '&Itemid=' . $itemid :
'';
			$route  = 'index.php?option=com_users&view=remind' .
$itemid;

			// Go back to the complete form.
			$this->setRedirect(JRoute::_($route, false), $message,
'error');

			return false;
		}

		if ($return === false)
		{
			// Complete failed.
			// Get the route to the next page.
			$itemid = UsersHelperRoute::getRemindRoute();
			$itemid = $itemid !== null ? '&Itemid=' . $itemid :
'';
			$route  = 'index.php?option=com_users&view=remind' .
$itemid;

			// Go back to the complete form.
			$message = JText::sprintf('COM_USERS_REMIND_REQUEST_FAILED',
$model->getError());
			$this->setRedirect(JRoute::_($route, false), $message,
'notice');

			return false;
		}

		// Complete succeeded.
		// Get the route to the next page.
		$itemid = UsersHelperRoute::getLoginRoute();
		$itemid = $itemid !== null ? '&Itemid=' . $itemid :
'';
		$route	= 'index.php?option=com_users&view=login' . $itemid;

		// Proceed to the login form.
		$message = JText::_('COM_USERS_REMIND_REQUEST_SUCCESS');
		$this->setRedirect(JRoute::_($route, false), $message);

		return true;
	}

	/**
	 * Method to resend a user.
	 *
	 * @return  void
	 *
	 * @since   1.6
	 */
	public function resend()
	{
		// Check for request forgeries
		// $this->checkToken('post');
	}
}
index.html000064400000000054151166022030006534 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>ajax.json.php000064400000022366151166174310007166
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		ajax.json.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Ajax Controller
 */
class ReservationControllerAjax extends JControllerLegacy
{
	public function __construct($config)
	{
		parent::__construct($config);
		// make sure all json stuff are set
		JFactory::getDocument()->setMimeEncoding( 'application/json'
);
		JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
		JResponse::setHeader("Access-Control-Allow-Origin",
"*");
		// load the tasks 
		$this->registerTask('saveChat', 'ajax');
		$this->registerTask('conversation', 'ajax');
		$this->registerTask('ajaxReadMessage', 'ajax');
		$this->registerTask('deleteChat', 'ajax');
		$this->registerTask('goToClass', 'ajax');
		$this->registerTask('getCatLevelOne', 'ajax');
		$this->registerTask('getCatLevelTwo', 'ajax');
	}

	public function ajax()
	{
		$user 		= JFactory::getUser();
		$jinput 	= JFactory::getApplication()->input;
		// Check Token!
		$token 		= JSession::getFormToken();
		$call_token	= $jinput->get('token', 0, 'ALNUM');
		if($jinput->get($token, 0, 'ALNUM') || $token ===
$call_token)
		{
			$task = $this->getTask();
			switch($task)
			{
				case 'saveChat':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$messageValue = $jinput->get('message', NULL,
'RAW');
						$fromValue = $jinput->get('from', NULL,
'STRING');
						$toValue = $jinput->get('to', NULL, 'STRING');
						$seidValue = $jinput->get('seid', NULL,
'INT');
						$pidValue = $jinput->get('pid', NULL, 'INT');
						$replyidValue = $jinput->get('replyid', 0,
'INT');
						$pmidValue = $jinput->get('pmid', 0, 'INT');
						if($messageValue && $user->id != 0 && $fromValue
&& $toValue && $seidValue && $pidValue)
						{
							$result =
$this->getModel('ajax')->saveChat($messageValue,
$fromValue, $toValue, $seidValue, $pidValue, $replyidValue, $pmidValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'conversation':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$user1Value = $jinput->get('user1', NULL,
'INT');
						$user2Value = $jinput->get('user2', NULL,
'INT');
						$seidValue = $jinput->get('seid', NULL,
'INT');
						$pidValue = $jinput->get('pid', NULL, 'INT');
						if($user1Value && $user->id != 0 && $user2Value
&& $seidValue && $pidValue)
						{
							$result =
$this->getModel('ajax')->conversation($user1Value,
$user2Value, $seidValue, $pidValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'ajaxReadMessage':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$midValue = $jinput->get('mid', NULL, 'INT');
						$seidValue = $jinput->get('seid', NULL,
'INT');
						if($midValue && $user->id != 0 && $seidValue)
						{
							$result =
$this->getModel('ajax')->ajaxReadMessage($midValue,
$seidValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'deleteChat':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$midValue = $jinput->get('mid', NULL, 'INT');
						if($midValue && $user->id != 0)
						{
							$result =
$this->getModel('ajax')->deleteChat($midValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'goToClass':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$user1Value = $jinput->get('user1', NULL,
'INT');
						$user2Value = $jinput->get('user2', NULL,
'INT');
						$seidValue = $jinput->get('seid', NULL,
'INT');
						$pidValue = $jinput->get('pid', NULL, 'INT');
						if($user1Value && $user->id != 0 && $user2Value
&& $seidValue && $pidValue)
						{
							$result =
$this->getModel('ajax')->goToClass($user1Value,
$user2Value, $seidValue, $pidValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'getCatLevelOne':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$extensionValue = $jinput->get('extension', NULL,
'STRING');
						if($extensionValue)
						{
							$result =
$this->getModel('ajax')->getCatLevelOne($extensionValue);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
				case 'getCatLevelTwo':
					try
					{
						$returnRaw = $jinput->get('raw', false,
'BOOLEAN');
						$catIdLevel1Value = $jinput->get('catIdLevel1', NULL,
'INT');
						if($catIdLevel1Value)
						{
							$result =
$this->getModel('ajax')->getCatLevelTwo($catIdLevel1Value);
						}
						else
						{
							$result = false;
						}
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback . "(".json_encode($result).");";
						}
						elseif($returnRaw)
						{
							echo json_encode($result);
						}
						else
						{
							echo "(".json_encode($result).");";
						}
					}
					catch(Exception $e)
					{
						if($callback = $jinput->get('callback', null,
'CMD'))
						{
							echo $callback."(".json_encode($e).");";
						}
						else
						{
							echo "(".json_encode($e).");";
						}
					}
				break;
			}
		}
		else
		{
			if($callback = $jinput->get('callback', null,
'CMD'))
			{
				echo $callback."(".json_encode(false).");";
			}
			else
  			{
				echo "(".json_encode(false).");";
			}
		}
	}
}
comment.php000064400000011243151166174310006725 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		comment.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Comment Controller
 */
class ReservationControllerComment extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.32.$$$$]***/
public function save($key = NULL, $urlVar = NULL)
{
    $app= JFactory::getApplication();
    $data=
$app->input->get('jform',array(),'array');
    $uid= $app->input->get('uid', 0);
    $userid= JFactory::getUser()->get('id', 0);
    $seid= $app->input->get('seid', 0);
    $currentUrl= (string)JUri::getInstance();


    \JPluginHelper::importPlugin('reservation');
    $dispatcher = \JEventDispatcher::getInstance();
    $result=
$dispatcher->trigger('onBeforeSaveComment',array($uid,$userid,$seid));


    $data['seid']= $seid;
    $data['sickid']= $result[0]['sickid'];
    $data['consultantid']= $result[0]['consultantid'];
    $data['token']= md5(uniqid(rand(), true));

   
JLoader::register('ReservationModelComment',JPATH_COMPONENT_ADMINISTRATOR.'/models/comment.php');
    $commentModel= new ReservationModelComment();
    \JForm::addFormPath(JPATH_COMPONENT_ADMINISTRATOR .
'/models/forms');
    $form= $commentModel->getForm($data,false);


    $filterData= $form->filter($data);
    $filterData['published']= 0;
    $validData= $commentModel->validate($form,$filterData);

    if ($validData === false)
    {
        $errors= $commentModel->getErrors();
        foreach ($errors as $error) {
           
$app->enqueueMessage($error->getMessage(),'warning');
        }
        $app->setUserState('comment.data',$filterData);
        $app->redirect($currentUrl);
    }

    if($commentModel->save($filterData))
    {
        $app->setUserState('status',1);
        $app->setUserState('comment.data','');
        $app->redirect($currentUrl);
    }


}/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
consultantsignup.php000064400000016352151166174310010711 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		consultantsignup.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Consultantsignup Controller
 */
class ReservationControllerConsultantsignup extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.31.$$$$]***/
public function signup()
{


    $app= JFactory::getApplication();

    if(!JFactory::getUser()->guest)
    {
        $app->enqueueMessage('برای ساخت حساب جدید
ابتدا از حساب فعلی خود خارج
شوید','warning');
        $app->redirect(JUri::root());
    }



    $uri = (string)JUri::getInstance();
    JLoader::register('ReservationModelConsultant',
JPATH_COMPONENT_ADMINISTRATOR.'/models/consultant.php');
    \JForm::addFormPath(JPATH_COMPONENT_ADMINISTRATOR .
'/models/forms');
    $data=
JFactory::getApplication()->input->get('jform',array(),'array');

    $consultantModel= new ReservationModelConsultant;
    $form = $consultantModel->getForm($data, false);

    $xml = new SimpleXMLElement('<field name="password"
validate="password"/>');
    $form->setField($xml);

//    $rule= JFormHelper::loadRuleType('password');
//    $res= $rule->test($xml,$data['password']);

//    $filteredData = $form->filter($data);

    $filter= JFilterInput::getInstance();


    $data['name']=  preg_replace('/[0-9]+/',
'', $data['name']);
    $data['capital']=  preg_replace('/[0-9]+/',
'', $data['capital']);
    $data['msn']= $filter->clean( $data['msn'],
'int');
    $data['nationalnumber']= $filter->clean(
$data['nationalnumber'], 'int');
    $data['experience']= $filter->clean(
$data['experience'], 'int');


    $model= $this->getModel();
    if($model->checkPhoneExist($data['phonenumber']))
    {
        $app->enqueueMessage('این شماره تلفن قبلا
در این سامانه ثبت شده است لطفا با شماره
تلفن دیگری ثبت نام کنید','warning');
        $app->setUserState('consultant.data',$data);
        $app->redirect($uri);
    }

    $validData = $consultantModel->validate($form, $data);
    if ($validData === false)
    {
        $errors = $consultantModel->getErrors();

        foreach ($errors as $error) {
           
$app->enqueueMessage($error->getMessage(),'warning');
        }
        $app->setUserState('consultant.data',$data);
        $app->redirect($uri);
    }
    else{

        $userdata = array(
            "name"=> $data['name'],
            "username"=> $data['phonenumber'],
            "password"=> $data['password'],
            "password2"=> $data['password'],
            "email"=>
'R_'.$data['phonenumber'].'@gmail.com',
            "block"=> 0,
        );


        jimport('joomla.user.helper');
        $params= $app->getparams('com_reservation');

        $userGroup= $params->get('consultantgroup');


        if(!isset($userGroup))
            $userGroup = 2;

        $userdata["groups"] = $userGroup;
        $user = new JUser;


        if(!$user->bind($userdata)) {
            $app->enqueueMessage($user->getError(),
'warning');
            $app->redirect($uri);
            return false;

        }

        if (!$user->save()) {
            $app->enqueueMessage($user->getError(),
'warning');
            $app->redirect($uri);
            return false;

        }

        $app->setUserState('consultant.data',$data);

        $userId= $user->id;

        $consultantInfo= array(
            'userid'=> $userId,
            'msn' => $data['msn'],
            'nationalnumber' =>
$data['nationalnumber'],
            'catid' => $data['catid'],
            'capital' => $data['capital'],
            'phonenumber' => $data['phonenumber'],
            'experience' => $data['experience']
        );

        if(!$consultantModel->save($consultantInfo))
        {
            $app->enqueueMessage('اطلاعات خود را
تصحیح کرده و سپس وارد نمایید',
'warning');
            $app->redirect($uri);
        }
        $app->setUserState('consultant.data','');




        echo 'user saved successfully';


    }

    $credentials = array();
    $credentials['username'] = $data['phonenumber'];
    $credentials['password'] = $data['password'];
    $login_site = JFactory::getApplication('site');
    $login_site->login($credentials, $options=array());
    $redirect = JUri::root();
    $login_site->redirect($redirect);
    
}/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
consultant_plan.php000064400000014344151166174310010474 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		consultant_plan.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Consultant_plan Controller
 */
class ReservationControllerConsultant_plan extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.37.$$$$]***/
  public function delete($key = NULL, $urlVar = NULL)
  {
    $app= JFactory::getApplication();
    $uri= (string)JUri::getInstance();
    $user= JFactory::getUser();
    $jform=
$app->input->get('jform',array(),'array');


    $consultant=
ReservationHelper::getConsultant($jform['consultantid']);

    if ($consultant->userid != $user->get('id', 0))
      $app->redirect(JUri::root());


    $filename = __DIR__ . '/delete.txt';


    $plans = array_keys($jform['plans']);
    $plans = array_map(function ($a) { return intval(substr($a, 5)); },
$plans);

    // file_put_contents($filename, 'plans = ' . print_r($plans,
true) . "\n" , FILE_APPEND);



    JLoader::register('ReservationModelPlan', JPATH_ADMINISTRATOR
. '/components/com_reservation/models/plan.php');
    JLoader::register('ReservationTablePlan', JPATH_ADMINISTRATOR
. '/components/com_reservation/tables/plan.php');
    JPluginHelper::importPlugin('reservation');
    $dispatcher = JEventDispatcher::getInstance();
    foreach($plans as $pid)
    {
      $db = JFactory::getDbo();
      $planmodel = new ReservationTablePlan($db);
      $pkco = array(
        'id' => $pid
      );
      $planmodel->publish($pkco, -2);
      $pks = array($pid);
      $dispatcher->trigger('onReservationPlanStateChanged',
array($pks, -2));
      $planmodel->delete($pkco);
    }




    $app->redirect($uri);
  }
  public function save($key = NULL, $urlVar = NULL)
  {
    $filename = __DIR__ . '/save.txt';
    // file_put_contents($filename, 'key = ' . print_r($key,
true) . "\n" , FILE_APPEND);


    $uri= (string)JUri::getInstance();
    $user= JFactory::getUser();
    $app= JFactory::getApplication();
    $jform=
$app->input->get('jform',array(),'array');


    $consultant=
ReservationHelper::getConsultant($jform['consultantid']);

    if ($consultant->userid != $user->get('id', 0))
      $app->redirect(JUri::root());

    JLoader::register('ReservationModelPlan',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/plan.php');
    if(isset($jform['planid']) &&
$jform['planid'])
    {
      $jform['id'] = $jform['planid'];
      $planmodel = new ReservationModelPlan();
      $planObj = $planmodel->getItem($jform['id']);
      $consultant=
ReservationHelper::getConsultant($planObj->consultantid);
      if ($consultant->userid != $user->get('id', 0))
        $app->redirect(JUri::root());
    }
    unset($jform['planid']);

    // file_put_contents($filename, 'jform = ' . print_r($jform,
true) . "\n" , FILE_APPEND);

    $planmodel= new ReservationModelPlan;
    if (!$planmodel->save($jform))
    {
     
$app->enqueueMessage(JText::_('COM_RESERVATION_FAILED_TO_SAVE_PLAN',
'danger')); // failed to save plan
      $app->redirect($uri);
    }

    $validData = (array)$planmodel->getItem();

    JPluginHelper::importPlugin('reservation');
    $dispatcher = JEventDispatcher::getInstance();
    $dispatcher->trigger('onReservationPlanCreated',
array($validData));


   
$app->enqueueMessage(JText::_('COM_RESERVATION_PLAN_SAVED_SUCCESSFULLY',
'success')); // plan saved successfully
    $app->redirect($uri);
  }
/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
doctors.php000064400000010162151166174310006737 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.22
	@build			1st March, 2021
	@created		17th December, 2020
	@package		Reservation
	@subpackage		doctors.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Doctors Controller
 */
class ReservationControllerDoctors extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'doctor'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.33.$$$$]***/
public function check()
{
    $app= JFactory::getApplication();
    $uid= $app->input->get('uid');
    $params= $app->getparams('com_reservation');
    $userGroups= !empty($params->get('doctorgroup'))?
$params->get('doctorgroup'): [0];
    
    $db= JFactory::getDbo();
    $query= $db->getQuery(true)
        ->select($db->quoteName('d.id'))
       
->from($db->quoteName('#__reservation_doctor','d'))
       
->join('inner',$db->quoteName('#__user_usergroup_map','uu').'on'.$db->quoteName('uu.user_id').'='.$db->quoteName('d.userid'))
       
->where($db->quoteName('d.userid').'='.$db->quote($uid))
       
->where($db->quoteName('uu.group_id').'IN('.implode(',',$userGroups).')');

    $db->setQuery($query);
    $result= $db->loadObject();

    if (empty($result))
        $app->redirect(JUri::root());

   
$app->redirect(JRoute::_('index.php?option=com_reservation&view=doctor&uid'.$uid,false));
   
}/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData =
array())
	{
	}
}
doctorsignup.php000064400000016121151166174310010003 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		doctorsignup.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Doctorsignup Controller
 */
class ReservationControllerDoctorsignup extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.34.$$$$]***/
    public function signup()
    {


        $app= JFactory::getApplication();

        if(!JFactory::getUser()->guest)
        {
            $app->enqueueMessage('برای ساخت حساب
جدید ابتدا از حساب فعلی خود خارج
شوید','warning');
            $app->redirect(JUri::root());
        }



        $uri = (string)JUri::getInstance();
        JLoader::register('ReservationModelDoctor',
JPATH_COMPONENT_ADMINISTRATOR.'/models/doctor.php');
        \JForm::addFormPath(JPATH_COMPONENT_ADMINISTRATOR .
'/models/forms');
        $data=
JFactory::getApplication()->input->get('jform',array(),'array');

        $doctorsModel= new ReservationModelDoctor;
        $form = $doctorsModel->getForm($data, false);

        $xml = new SimpleXMLElement('<field
name="password" validate="password"/>');
        $form->setField($xml);

//    $rule= JFormHelper::loadRuleType('password');
//    $res= $rule->test($xml,$data['password']);

//    $filteredData = $form->filter($data);

        $filter= JFilterInput::getInstance();


        $data['name']=  preg_replace('/[0-9]+/',
'', $data['name']);
        $data['msn']= $filter->clean( $data['msn'],
'int');


        $model= $this->getModel();
        if($model->checkPhoneExist($data['phonenumber']))
        {
            $app->enqueueMessage('این شماره تلفن
قبلا در این سامانه ثبت شده است لطفا با
شماره تلفن دیگری ثبت نام
کنید','warning');
            $app->setUserState('doctor.data',$data);
            $app->redirect($uri);
        }

        $validData = $doctorsModel->validate($form, $data);
        if ($validData === false)
        {
            $errors = $doctorsModel->getErrors();

            foreach ($errors as $error) {
               
$app->enqueueMessage($error->getMessage(),'warning');
            }
            $app->setUserState('doctor.data',$data);
            $app->redirect($uri);
        }
        else{

            $userdata = array(
                "name"=> $data['name'],
                "username"=> $data['phonenumber'],
                "password"=> $data['password'],
                "password2"=> $data['password'],
                "email"=>
'R_'.$data['phonenumber'].'@gmail.com',
                "block"=> 0,
            );


            $userGroup = 2;


            $userdata["groups"] = array($userGroup);
            $user = new JUser;


            if(!$user->bind($userdata)) {
                $app->enqueueMessage($user->getError(),
'warning');
                $app->redirect($uri);

            }

            if (!$user->save()) {
                $app->enqueueMessage($user->getError(),
'warning');
                $app->redirect($uri);

            }

            $app->setUserState('doctor.data',$data);

            $userId= $user->id;

            $doctorInfo= array(
                'userid'=> $userId,
                'msn' => $data['msn'],
                'catid' => $data['catid'],
                'capitalid' => $data['capitalid'],
                'cityid' => $data['cityid'],
                'phonenumber' =>
$data['phonenumber'],
                'officephone' =>
$data['officephone'],
                'address' => $data['address'],
            );

            if(!$doctorsModel->save($doctorInfo))
            {
                $app->enqueueMessage('اطلاعات خود را
تصحیح کرده و سپس وارد نمایید',
'warning');
                $app->redirect($uri);
            }
            $app->setUserState('doctor.data','');




            echo 'user saved successfully';


        }

        $credentials = array();
        $credentials['username'] =
$data['phonenumber'];
        $credentials['password'] = $data['password'];
        $login_site = JFactory::getApplication('site');
        $login_site->login($credentials, $options=array());
        $redirect = JUri::root();
        $login_site->redirect($redirect);

    }/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
fileupload.php000064400000005636151166174310007420 0ustar00<?php

define('_JEXEC', 1);

define('JPATH_BASE',
dirname(dirname(dirname(dirname(__FILE__)))));
require_once JPATH_BASE . '/includes/defines.php';
require_once JPATH_BASE . '/includes/framework.php';
$app = JFactory::getApplication('site');


use Joomla\CMS\Filesystem\File;


// var_dump(function_exists('gd_info')); // check GD extension
installed and enabled on php
// var_dump(function_exists('getimagesize'));
// die();

$filename = __DIR__ . '/log.txt';
// file_put_contents($filename, '$_FILES = ' . print_r($_FILES,
True) . "\n", FILE_APPEND);
// file_put_contents($filename, '$_POST = ' . print_r($_POST,
True) . "\n", FILE_APPEND);
// file_put_contents($filename, '$_req = ' . file_get_contents(
'php://input' ) . "\n", FILE_APPEND);
// file_put_contents($filename, 'input files = ' .
print_r($app->input->files->get('atachedfile'), True) .
"\n", FILE_APPEND);



function getName($n)
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $randomString = '';
    for ($i = 0; $i < $n; $i++)
    {
        $index = rand(0, strlen($characters) - 1);
        $randomString .= $characters[$index];
    }
    return $randomString;
}



$file = $app->input->files->get('atachedfile');


$info = pathinfo($file['name']);
if(isset($info['extension']))
{
    $ext = $info['extension']; // get the extension of the file
    $newname = getName(10) . ".$ext";
    $target = dirname(dirname(__FILE__)) . '/files/' . $newname;

    $allowUnsafe = false;

    // if (move_uploaded_file($file['tmp_name'], $target))
    if(JFile::upload($file['tmp_name'], $target, false,
$allowUnsafe))
    {
        if(function_exists('gd_info') &&
!function_exists('compress_image'))
        {
            function compress_image($src, $dest , $quality) 
            {
                $info = getimagesize($src);
             
                if ($info['mime'] == 'image/jpeg') 
                {
                    $image = imagecreatefromjpeg($src);
                }
                elseif ($info['mime'] == 'image/gif') 
                {
                    $image = imagecreatefromgif($src);
                }
                elseif ($info['mime'] == 'image/png') 
                {
                    $image = imagecreatefrompng($src);
                }
                else
                {
                    die('Unknown image file format');
                }
             
                //compress and save file to jpg
                imagejpeg($image, $dest, $quality);
             
                //return destination file
                return $dest;
            }
            compress_image($target, $target, 30);
        }
        echo $newname;
        // file_put_contents($filename, 'File is valid, and was
successfully uploaded'. "\n", FILE_APPEND);
    } 
    else
    {
        // file_put_contents($filename, 'Upload failed'.
"\n", FILE_APPEND);
    }
}

?>firstqst.php000064400000021213151166174310007140 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		firstqst.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Firstqst Controller
 */
class ReservationControllerFirstqst extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.30.$$$$]***/
  public function save($key = NULL, $urlVar = NULL){
    $app = JFactory::getApplication();
    $input = $app->input;
    $firsttext = $input->get('chatMessage', '',
'string');
    $pid = $input->get('pid', 0);
    //    $uid = $app->input->get('uid', 0);

    $app->setUserState('first_chatMessage', $firsttext);
    //    $app->setUserState('pid', $pid);
    //    $app->setUserState('uid', $uid);


    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('product_id');
    $query->from($db->quoteName('#__hikashop_product'));
    $query->where($db->quoteName('product_code') . '=
"reserve' . $pid.'"');

    $db->setQuery($query);
    $product_id = $db->loadResult();


    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select('id');
    $query->from($db->quoteName('#__reservation_sick'));
    $query->where($db->quoteName('userid') . '='
. $db->quote(JFactory::getUser()->id));
    $db->setQuery($query);
    $sick_id = $db->loadResult();



    JLoader::register('ReservationModelSession',
JPATH_ADMINISTRATOR.'/components/com_reservation/models/session.php');
    $data = array(
      'sickid'        => $sick_id,
      'planid'        => $pid,
      'firsttext'     => $firsttext,
      'channel_token' =>  JUserHelper::genRandomPassword(16)
    );

    $db = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query->select(array('id', 'channel_token'));
   
$query->from($db->quoteName('#__reservation_session'));
    $query->where($db->quoteName('planid') . '='
. $db->quote($pid));
    $query->where($db->quoteName('sickid') . '='
. $db->quote($sick_id));
    $query->where($db->quoteName('published') . '=
1');
    $db->setQuery($query);
    $session = $db->loadAssoc();
    if($session)
    {
      $data['id'] = $session['id'];
      $data['channel_token'] =
$session['channel_token'];
    }

    $session_model = new ReservationModelSession();
    $session_model->save($data);

    //           
$app->redirect(JRoute::_('index.php?option=com_reservation&view=payment&seid='.$sessionId));
   
$app->redirect(JRoute::_('index.php?option=com_hikashop&ctrl=product&task=show&cid='
. $product_id));




  }

  public function createSession($pid)
  {
    require_once
JPATH_SITE.'/components/com_reservation/helpers/reservation.php';
    $app= JFactory::getApplication();
    $firsttext=
$app->getUserState('first_chatMessage',0,'string');
    //        $pid= $app->getUserState('pid',0);
    //        $uid= $app->getUserState('uid',0);
    $user_id= JFactory::getUser()->get('id',0);
    //$consultantid=
ReservationHelper::exist('#__reservation_consultant',
'userid', JFactory::getUser()->get('id', 0));

    if (!$user_id)
    {
      $app->enqueueMessage('برای رزرو نوبت مشاوره
وارد حساب کاربری مخصوص کاربران عادی خود
شوید','warning');
      $app->redirect(JUri::root());
    }

    //        if (!$pid || !$uid)
    //        {
    //            $app->enqueueMessage('مراحل خرید به
درستی طی نشده است ، لطفا مراحل را مجدد
تکرار کنید','warning');
    //            $app->redirect(JUri::root());
    //        }


    $db = JFactory::getDbo();
    $query= $db->getQuery(true)
      ->select('s.id')
     
->from($db->quoteName('#__reservation_sick','s'))
     
->where($db->quoteName('s.userid').'='.$user_id);

    $db->setQuery($query);
    $res= $db->loadObject();


    //        $db = JFactory::getDbo();
    //        $query= $db->getQuery(true)
    //            ->select('c.id')
    //           
->from($db->quoteName('#__reservation_consultant','c'))
    //           
->where($db->quoteName('c.userid').'='.$uid)
    //           
->where('('.$db->quoteName('c.account').'='.$db->quote('consultant').'
or
'.$db->quoteName('c.account').'='.$db->quote('both').')');
    //
    //        $db->setQuery($query);
    //
    //        $res2= $db->loadObject();


    if(empty($res)) {
      $app->enqueueMessage('برای رزرو نوبت مشاوره
وارد حساب کاربری مخصوص کاربران عادی خود
شوید','warning');
      JFactory::getApplication()->redirect(JUri::root());
    }

    $sickid = (int)$res->id;
    //        $cid = (int)$res2->id;
    //
    //
    //        $db = JFactory::getDbo();
    //        $query= $db->getQuery(true)
    //            ->select('p.id')
    //           
->from($db->quoteName('#__reservation_plan','p'))
    //           
->where($db->quoteName('p.id').'='.$pid)
    //           
->where($db->quoteName('p.consultantid').'='.$db->quote($cid));
    //
    //        $db->setQuery($query);
    //        $res= $db->loadObject();
    //
    //        if (empty($res)) {
    //
    //            $app->enqueueMessage('از پارامتر های
معتبر استفاده کنید','warning');
    //            JFactory::getApplication()->redirect(JUri::root());
    //        }


    $data= [
      'firsttext'=> $firsttext,
      'planid'=> $pid,
      'sickid'=> $sickid,
      'pay' => 0,
      'finish' => 0
    ];

    require_once
JPATH_ADMINISTRATOR.'/components/com_reservation/models/session.php';

    $adminSessionModel= new ReservationModelSession;

    if (!$adminSessionModel->save($data))
    {
      $app->enqueueMessage('از پارامتر های معتبر
استفاده کنید','warning');
      JFactory::getApplication()->redirect(JUri::root());
    }

    $sessionId=$adminSessionModel->getState('session.id');
    return $sessionId;
  }/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
log23.txt000064400000131353151166174310006246 0ustar00messageValue =
fgdagfag
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 11:37:54
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = test
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = aaaaa
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = test
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = testes
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = tttt
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = yrtyrdeyr
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = kkkkkk
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 68
    [name] => komeil abasi
    [username] => komeil
    [email] => komeil@gmal.com
    [password] =>
$2y$10$u0BC/UQlWaxID7o.OY8PTOS72n6btXRLsFrrcf3ntOPVpkNnmqEh6
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:13
    [lastvisitDate] => 2023-02-22 11:41:01
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 68
toValue = 70
seidValue = 49
pidValue = 5
result = 23
messageValue = jjjj
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 68
seidValue = 49
pidValue = 5
result = 23
messageValue = testtttt
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = salam
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = 
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
messageValue = <img
src="/components/com_reservation/files/IMG_2058.JPG">
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = 
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
messageValue = <img
src="/components/com_reservation/files/irnicverif.jpg">
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = 
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
messageValue = <img
src="/components/com_reservation/files/laseronconvayer.jpg">
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = test
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = t
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:01:53
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = t
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = tt
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = ttt
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = ttttt
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = aaaaa
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = qqqq
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 70
    [name] => فرهاد پاشایی
    [username] => 09212428467
    [email] => fa@g.com
    [password] =>
$2y$10$hiXCMTOadhf3gDxYAtDo0ObemDVavHAYYG/PXpiTRgYosgIyMxfAm
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:55
    [lastvisitDate] => 2023-02-22 12:31:21
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 70
toValue = 78
seidValue = 50
pidValue = 1
result = 23
messageValue = تست
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = تست جدید
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 78
    [name] => mahdi
    [username] => mahdi
    [email] => mahdi@gmail.com
    [password] =>
$2y$10$5hti/TLYaz4pcqgqtBwFSOvpkaquJ93nPABi5jPNrebaLzXpLxjV2
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-06-20 05:23:52
    [lastvisitDate] => 2023-02-22 11:54:18
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 78
toValue = 70
seidValue = 50
pidValue = 1
result = 23
messageValue = تست
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 68
    [name] => komeil abasi
    [username] => komeil
    [email] => komeil@gmal.com
    [password] =>
$2y$10$u0BC/UQlWaxID7o.OY8PTOS72n6btXRLsFrrcf3ntOPVpkNnmqEh6
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:13
    [lastvisitDate] => 2023-02-22 11:41:01
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 68
toValue = 70
seidValue = 49
pidValue = 5
result = 23
messageValue = کلام جدید
user = Joomla\CMS\User\User Object
(
    [isRoot:protected] => 
    [id] => 68
    [name] => komeil abasi
    [username] => komeil
    [email] => komeil@gmal.com
    [password] =>
$2y$10$u0BC/UQlWaxID7o.OY8PTOS72n6btXRLsFrrcf3ntOPVpkNnmqEh6
    [password_clear] => 
    [block] => 0
    [sendEmail] => 0
    [registerDate] => 2021-02-23 04:37:13
    [lastvisitDate] => 2023-02-22 11:41:01
    [activation] => 
    [params] =>
{"admin_style":"","admin_language":"","language":"","editor":"","timezone":""}
    [groups] => Array
        (
            [2] => 2
        )

    [guest] => 0
    [lastResetTime] => 0000-00-00 00:00:00
    [resetCount] => 0
    [requireReset] => 0
    [_params:protected] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [admin_style] => 
                    [admin_language] => 
                    [language] => 
                    [editor] => 
                    [timezone] => 
                )

            [initialized:protected] => 1
            [separator] => .
        )

    [_authGroups:protected] => 
    [_authLevels:protected] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
        )

    [_authActions:protected] => 
    [_errorMsg:protected] => 
    [userHelper:protected] => Joomla\CMS\User\UserWrapper Object
        (
        )

    [_errors:protected] => Array
        (
        )

    [otpKey] => 
    [otep] => 
)

fromValue = 68
toValue = 70
seidValue = 49
pidValue = 5
result = 23
login.php000064400000033323151166174310006376 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		login.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Login Controller
 */
class ReservationControllerLogin extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.43.$$$$]***/
  public function loginRegister()
  {

    $app = JFactory::getApplication();
    $phoneNumber = $app->input->get('phonenumber', 0);
    $uri = (string)JUri::getInstance();

    $info= [
      'phonenumber' => $phoneNumber,
      'userExist' => false,
      'table' => false,
      'validate' => false
    ];
    $app->setUserState('info',$info );

   
Joomla\CMS\Form\Form::addRulePath('administrator/components/com_reservation/models/rules');
    $xml = new SimpleXMLElement('<field
name="phonenumber" validate="mobile"/>');
    $rule = JFormHelper::loadRuleType('mobile');
    $validate = $rule->test($xml, $phoneNumber);

    if (!$validate) {
      $app->enqueueMessage('شماره موبایل معتبر
وارد نمایید', 'warning');
      $app->redirect($uri);
    }




    //    $view = $this->getView('login', 'html');
    $model= $this->getModel();
    list($userExist, $table)= $model->userExist($phoneNumber);
    // $userExist= $model->userExist($phoneNumber)[0];
    // $table= $model->userExist($phoneNumber)[1];

    $info= [
      'phonenumber' => $phoneNumber,
      'userExist' => $userExist,
      'table' => $table,
      'validate' => $validate,
    ];
    $app->setUserState('info',$info );


    if(!$userExist)
    {
      ReservationHelper::setExpireTime();
      $verify= ReservationHelper::setVerifyCode();


      \JPluginHelper::importPlugin('ejra');
      $dispatcher = \JEventDispatcher::getInstance();
     
$dispatcher->trigger('onAfterMobileValidate',array($phoneNumber,
$verify));
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_register',false));
    }
    else
    {
      $app->setUserState('loginWith', 'password');
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));
    }


  }
  public function register()
  {
    $app= JFactory::getApplication();
    $data=
$app->input->get('jform',array(),'array');

    $info= $app->getUserState('info');
    if (!$info['phonenumber'] || !$info['validate'] ||
$info['userExist'] || !JFactory::getUser()->guest)
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login',false));

    $app->setUserState('owner.data',$data);

    $xml = new SimpleXMLElement('<field name="password"
type="text" required="true"
validate="password" minimum_length="4"
message="رمز عبور حداقل باید 4 کاراکتر
باشد" />');
    $rule = JFormHelper::loadRuleType('password');
    $validate = $rule->test($xml, $data['password']);



    if (empty($data['name']) || !$validate)
    {
      $app->enqueueMessage('اطلاعات خود را به
درستی وارد نمایید','warning');
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_register',false));
    }

    date_default_timezone_set('asia/tehran');
    $verify= $app->getUserState('verify');
    $expire= $app->getUserState('expire');


    if (strtotime($expire) < time())
    {
      $app->enqueueMessage('زمان کد تایید به
پایان رسیده لطفا بر روی ارسال مجدد کد
کلیک نمایید','warning');
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_register',false));
    }


    if ($data['verify'] != $verify)
    {
      $app->enqueueMessage('کد تایید را به درستی
وارد کنید','warning');
     
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_register',false));
    }




    $userdata = array(
      "name"=> $data['name'],
      "username"=> $info['phonenumber'],
      "password"=> $data['password'],
      "password2"=> $data['password'],
      "email"=>
'E_'.$info['phonenumber'].'@gmail.com',
      "block"=> 0,
    );


    jimport('joomla.user.helper');
    $params= $app->getparams('com_Reservation');

    //       $userGroup= $params->get('ownerrgroup');
    $userGroup= 2;



    // if(!isset($userGroup))
    // $userGroup = 2;

    // $userdata["groups"] = [$userGroup];
    // $user = new JUser;


    // if(!$user->bind($userdata)) {
    // $app->enqueueMessage($user->getError(), 'warning');
    //
$app->redirect(JRoute::_('index.php?option=com_Reservation&view=login',false));
    // }

    // if (!$user->save()) {
    // $app->enqueueMessage($user->getError(), 'warning');
    //
$app->redirect(JRoute::_('index.php?option=com_Reservation&view=login',false));
    // }



    if ( ( ! file_exists( JPATH_SITE .
'/libraries/CBLib/CBLib/Core/CBLib.php' ) ) || ( ! file_exists(
JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php' ) ) ) {
      echo 'CB not installed';
      return;
    }

    include_once( JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php' );
    cbimport( 'cb.html' );
    global $_CB_framework, $_PLUGINS, $ueConfig;
    $_PLUGINS->loadPluginGroup($data["username"]); // for
using cb trigering
    jimport('joomla.user.helper');
    $post = isset($data["post"]) ? $data["post"] :
$data;
    $post["name"] = $post["firstname"] . " "
. $post["lastname"];



    $_PLUGINS->loadPluginGroup( 'user' );

    $user					=	new \CB\Database\Table\UserTable();
    $user->set( 'username', $userdata['username']
);
    $user->set( 'email', $userdata["email"] );
    // /* $user->set( 'firstName',
$post["firstname"] );*/
    // /* $user->set( 'lastName', $post["lastname"]
);*/
    $user->set( 'name', $userdata['name'] );
    $user->set( 'gids', array($userGroup) );
    $user->set( 'sendEmail', 0 );
    $user->set( 'registerDate',
$_CB_framework->getUTCDate() );
    $user->set( 'password',
$user->hashAndSaltPassword($userdata["password"]) );
    $user->set( 'approved', 1 );
    $user->set( 'confirmed', 1 );
    $user->set( 'block', 0 );

    if ( $user->store() ) {
      if ( $user->get( 'confirmed' ) == 0 ) {
        $user->store();
      }
    }
    // dump($user, 'user');
    // dump($userdata, 'userdata');

    $userId= $user->id;

    $sickInfo= array(
      'userid'=> $userId,
      'phonenumber' => $info['phonenumber'],
    );


    JLoader::register('ReservationModelSick',
JPATH_COMPONENT_ADMINISTRATOR.'/models/sick.php');
    $sickModel= new ReservationModelSick();
    if(!$sickModel->save($sickInfo))
    {
      $app->enqueueMessage('اطلاعات خود را تصحیح
کرده و سپس وارد نمایید', 'warning');
     
$app->redirect(JRoute::_('index.php?option=com_Reservation&view=login',false));
    }
    $app->setUserState('info','');


    $credentials = array();
    $credentials['username'] = $info['phonenumber'];
    $credentials['password'] = $data['password'];
    $login_site = JFactory::getApplication('site');
    $login_site->login($credentials, $options=array());
    $redirect = JUri::root();
    $login_site->redirect($redirect);



  }

  public function resetExpireTime()
  {
    $app= JFactory::getApplication();
    $uri= (string)JUri::getInstance();
    $data=
$app->input->get('jform',array(),'array');
    $app->setUserState('owner.data',$data);

    date_default_timezone_set('asia/tehran');
    $expire= $app->getUserState('expire');

    if (strtotime($expire) < time())
    {
      ReservationHelper::setExpireTime();
      $verify= ReservationHelper::setVerifyCode();
      $phoneNumber=
$app->getUserState('info')['phonenumber'];


      \JPluginHelper::importPlugin('ejra');
      $dispatcher = \JEventDispatcher::getInstance();
     
$dispatcher->trigger('onAfterMobileValidate',array($phoneNumber,
$verify));
    }

    $app->redirect($uri);
  }
  public function login()
  {


    $app= JFactory::getApplication();
    $info= $app->getUserState('info');
    if (!$info['phonenumber'] || !$info['validate'] ||
!$info['userExist'] || !JFactory::getUser()->guest)
    {
     
$this->app->redirect(JRoute::_('index.php?option=com_reservation&view=login',false));
    }

    $loginWith= $app->getUserState('loginWith');

    $phoneNumber=
$app->getUserState('info')['phonenumber'];
    $data=
$app->input->get('jform',array(),'array');

    $credentials = array();
    if ($loginWith== 'password')
    {


      $credentials['username'] = $phoneNumber;
      $credentials['password'] = $data['password'];
      $credentials['loginWith'] = 'password';
      $login_site = JFactory::getApplication('site');

    }
    elseif($loginWith== 'verifyCode')
    {

      date_default_timezone_set('asia/tehran');
      $verify= $app->getUserState('verify');
      $expire= $app->getUserState('expire');


      if (strtotime($expire) < time())
      {
        $app->enqueueMessage('زمان کد تایید به
پایان رسیده لطفا بر روی ارسال مجدد کد
کلیک نمایید','warning');
       
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));
      }


      if ($data['password'] != $verify)
      {
        $app->enqueueMessage('کد تایید را به درستی
وارد کنید','warning');
       
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));
      }

      $model= $this->getModel();
      $table= $app->getUserState('info')['table'];
      $userid= $model->getUserId($table, $phoneNumber);

      $credentials['username'] = $phoneNumber;
      $credentials['password'] = $data['password'];
      $credentials['userid'] = $userid;
      $credentials['loginWith'] = 'verifyCode';
      $login_site = JFactory::getApplication('site');

    }

    $result= $login_site->login($credentials, $options=array());

    if(!$result)
     
$login_site->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));


    $redirect = JUri::root();
    $app->redirect($redirect);
  }

  public function verifyCode()
  {
    $app= JFactory::getApplication();
    $app->setUserState('loginWith', 'verifyCode');

    ReservationHelper::setExpireTime();
    $verify= ReservationHelper::setVerifyCode();
    $phoneNumber=
$app->getUserState('info')['phonenumber'];


    \JPluginHelper::importPlugin('ejra');
    $dispatcher = \JEventDispatcher::getInstance();
   
$dispatcher->trigger('onAfterMobileValidate',array($phoneNumber,
$verify));

   
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));
  }
  public function password()
  {
    $app= JFactory::getApplication();
    $app->setUserState('loginWith', 'password');
   
$app->redirect(JRoute::_('index.php?option=com_reservation&view=login&layout=default_password',false));
  }
/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
plan.php000064400000021111151166174310006210 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		plan.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Plan Controller
 */
class ReservationControllerPlan extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	/**
	 * Class constructor.
	 *
	 * @param   array  $config  A named array of configuration variables.
	 *
	 * @since   1.6
	 */
	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// Get user object.
		$user = JFactory::getUser();
		// Access check.
		$access = $user->authorise('plan.access',
'com_reservation');
		if (!$access)
		{
			return false;
		}

		// In the absense of better information, revert to the component
permissions.
		return parent::allowAdd($data);
	}

	/**
	 * Method override to check if you can edit an existing record.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// get user object.
		$user = JFactory::getUser();
		// get record id.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;


		if ($recordId)
		{
			// The record has been set. Check the record permissions.
			$permission = $user->authorise('core.edit',
'com_reservation.plan.' . (int) $recordId);
			if (!$permission)
			{
				if ($user->authorise('core.edit.own',
'com_reservation.plan.' . $recordId))
				{
					// Now test the owner is the user.
					$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;
					if (empty($ownerId))
					{
						// Need to do a lookup from the model.
						$record = $this->getModel()->getItem($recordId);

						if (empty($record))
						{
							return false;
						}
						$ownerId = $record->created_by;
					}

					// If the owner matches 'me' then allow.
					if ($ownerId == $user->id)
					{
						if ($user->authorise('core.edit.own',
'com_reservation'))
						{
							return true;
						}
					}
				}
				return false;
			}
		}
		// Since there is no permission, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Gets the URL arguments to append to an item redirect.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @since   1.6
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		// get the referral options (old method use return instead see parent)
		$ref = $this->input->get('ref', 0, 'string');
		$refid = $this->input->get('refid', 0, 'int');

		// get redirect info.
		$append = parent::getRedirectToItemAppend($recordId, $urlVar);

		// set the referral options
		if ($refid && $ref)
                {
			$append = '&ref=' . (string)$ref .
'&refid='. (int)$refid . $append;
		}
		elseif ($ref)
		{
			$append = '&ref='. (string)$ref . $append;
		}

		return $append;
	}

	/**
	 * Method to run batch operations.
	 *
	 * @param   object  $model  The model.
	 *
	 * @return  boolean   True if successful, false otherwise and internal
error is set.
	 *
	 * @since   2.5
	 */
	public function batch($model = null)
	{
		JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

		// Set the model
		$model = $this->getModel('Plan', '', array());

		// Preset the redirect
		$this->setRedirect(JRoute::_('index.php?option=com_reservation&view=plans'
. $this->getRedirectToListAppend(), false));

		return parent::batch($model);
	}

	/**
	 * Method to cancel an edit.
	 *
	 * @param   string  $key  The name of the primary key of the URL variable.
	 *
	 * @return  boolean  True if access level checks pass, false otherwise.
	 *
	 * @since   12.2
	 */
	public function cancel($key = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');

		$cancel = parent::cancel($key);

		if (!is_null($return) &&
JUri::isInternal(base64_decode($return)))
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $cancel;
	}

	/**
	 * 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   12.2
	 */
	public function save($key = null, $urlVar = null)
	{
		// get the referral options
		$this->ref = $this->input->get('ref', 0,
'word');
		$this->refid = $this->input->get('refid', 0,
'int');

		// Check if there is a return value
		$return = $this->input->get('return', null,
'base64');
		$canReturn = (!is_null($return) &&
JUri::isInternal(base64_decode($return)));

		if ($this->ref || $this->refid || $canReturn)
		{
			// to make sure the item is checkedin on redirect
			$this->task = 'save';
		}

		$saved = parent::save($key, $urlVar);

		// This is not needed since parent save already does this
		// Due to the ref and refid implementation we need to add this
		if ($canReturn)
		{
			$redirect = base64_decode($return);

			// Redirect to the return value.
			$this->setRedirect(
				JRoute::_(
					$redirect, false
				)
			);
		}
		elseif ($this->refid && $this->ref)
		{
			$redirect = '&view=' . (string)$this->ref .
'&layout=edit&id=' . (int)$this->refid;

			// Redirect to the item screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		elseif ($this->ref)
		{
			$redirect = '&view=' . (string)$this->ref;

			// Redirect to the list screen.
			$this->setRedirect(
				JRoute::_(
					'index.php?option=' . $this->option . $redirect, false
				)
			);
		}
		return $saved;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModel  &$model     The data model object.
	 * @param   array   $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   11.1
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{

/***[JCBGUI.admin_view.php_postsavehook.112.$$$$]***/
		$id = $model->getState()->{'plan.id'};
		$validData['id'] = $id;
		JPluginHelper::importPlugin('reservation');
		$dispatcher = JEventDispatcher::getInstance();
		$dispatcher->trigger('onReservationPlanCreated',
array($validData));/***[/JCBGUI$$$$]***/


		return;
	}

}
reserve.php000064400000013156151166174310006743 0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.32
	@build			14th June, 2021
	@created		17th December, 2020
	@package		Reservation
	@subpackage		reserve.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Reserve Controller
 */
class ReservationControllerReserve extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'reserve'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.36.$$$$]***/
public function default_personalinfo()
{
    $function_to_be_executed= $this->check(__FUNCTION__);
  echo '<pre>';
  var_dump($function_to_be_executed);
  echo '</pre>';
  exit();
}

public function check($funcname)
{
    JSession::checkToken('post') or die;

    $uri= (string)JUri::getInstance();
  
    $app= JFactory::getApplication();
    $params= JComponentHelper::getParams('com_reservation');
    $chekout= $params->get('checkout');
    $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
    $step= 'checkout'.$function_to_be_executed;
    $layout= $chekout->$step->reservetemplate;
    $layout= preg_replace('/\.php$/','',$layout);

    if ($layout != $funcname)
    {
        $app->setUserState('function_to_be_executed',0);
        $app->redirect($uri);
    }

    return ++$function_to_be_executed;
}

public function reserve()
{
    require
JPATH_SITE.'/components/com_reservation/helpers/reserve.php';
    $reserve= new reserve();

}
public function reordering($checkout)
    {
        $checkout= (array) $checkout;

        $reordering= [];
        foreach ($checkout as $item) {
            $reordering[]= $item;
        }

        return $reordering;
    }

    public function getLayout()
    {
        $app= JFactory::getApplication();
        $params= JComponentHelper::getParams('com_reservation');
        $chekout= $params->get('checkout');
        $chekout= $this->reordering($chekout);
        $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
        $layout= $chekout[$function_to_be_executed]->reservetemplate;
        $layout= preg_replace('/\.php$/','',$layout);
        return $layout;
    }
  public function back()
    {
        JSession::checkToken('post') or die;
        $app= JFactory::getApplication();
        $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
       
$app->setUserState('function_to_be_executed',--$function_to_be_executed);
        $app->redirect(JUri::getInstance());
    }/***[/JCBGUI$$$$]***/


    public function payment()
    {
        require_once
JPATH_SITE.'/components/com_reservation/helpers/payment.php';
        $obj= new strategy();
        $obj->do_request();
    }

    public function paymentverify()
    {
        require_once
JPATH_SITE.'/components/com_reservation/helpers/payment.php';
        $obj= new strategy();
        $obj->do_verify();
    }


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData =
array())
	{
	}
}
reserve_appointment.php000064400000012622151166174310011356
0ustar00<?php
/*----------------------------------------------------------------------------------|
 www.vdm.io  |----/
				fdsh 
/-------------------------------------------------------------------------------------------------------/

	@version		1.0.39
	@build			4th April, 2023
	@created		17th December, 2020
	@package		Reservation
	@subpackage		reserve_appointment.php
	@author			farhad shahbazi <http://farhad.com>	
	@copyright		Copyright (C) 2015. All Rights Reserved
	@license		GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
  ____  _____  _____  __  __  __      __       ___  _____  __  __  ____ 
_____  _  _  ____  _  _  ____ 
 (_  _)(  _  )(  _  )(  \/  )(  )    /__\     / __)(  _  )(  \/  )(  _ \( 
_  )( \( )( ___)( \( )(_  _)
.-_)(   )(_)(  )(_)(  )    (  )(__  /(__)\   ( (__  )(_)(  )    (  )___/
)(_)(  )  (  )__)  )  (   )(  
\____) (_____)(_____)(_/\/\_)(____)(__)(__)   \___)(_____)(_/\/\_)(__) 
(_____)(_)\_)(____)(_)\_) (__) 

/------------------------------------------------------------------------------------------------------*/

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

use Joomla\Utilities\ArrayHelper;

/**
 * Reservation Reserve_appointment Controller
 */
class ReservationControllerReserve_appointment extends JControllerForm
{
	/**
	 * Current or most recently performed task.
	 *
	 * @var    string
	 * @since  12.2
	 * @note   Replaces _task.
	 */
	protected $task;

	public function __construct($config = array())
	{
		$this->view_list = 'login'; // safeguard for setting the
return view listing to the default site view.
		parent::__construct($config);
	}


/***[JCBGUI.site_view.php_controller.36.$$$$]***/
public function default_personalinfo()
{
    $function_to_be_executed= $this->check(__FUNCTION__);
  echo '<pre>';
  var_dump($function_to_be_executed);
  echo '</pre>';
  exit();
}

public function check($funcname)
{
    JSession::checkToken('post') or die;

    $uri= (string)JUri::getInstance();
  
    $app= JFactory::getApplication();
    $params= JComponentHelper::getParams('com_reservation');
    $chekout= $params->get('checkout');
    $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
    $step= 'checkout'.$function_to_be_executed;
    $layout= $chekout->$step->reservetemplate;
    $layout= preg_replace('/\.php$/','',$layout);

    if ($layout != $funcname)
    {
        $app->setUserState('function_to_be_executed',0);
        $app->redirect($uri);
    }

    return ++$function_to_be_executed;
}

public function reserve()
{
    require
JPATH_SITE.'/components/com_reservation/helpers/reserve.php';
    $reserve= new reserve();

}
public function reordering($checkout)
    {
        $checkout= (array) $checkout;

        $reordering= [];
        foreach ($checkout as $item) {
            $reordering[]= $item;
        }

        return $reordering;
    }

    public function getLayout()
    {
        $app= JFactory::getApplication();
        $params= JComponentHelper::getParams('com_reservation');
        $chekout= $params->get('checkout');
        $chekout= $this->reordering($chekout);
        $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
        $layout= $chekout[$function_to_be_executed]->reservetemplate;
        $layout= preg_replace('/\.php$/','',$layout);
        return $layout;
    }
  public function back()
    {
        JSession::checkToken('post') or die;
        $app= JFactory::getApplication();
        $function_to_be_executed=
$app->getUserState('function_to_be_executed',0);
       
$app->setUserState('function_to_be_executed',--$function_to_be_executed);
        $app->redirect(JUri::getInstance());
    }
  public function reset()
    {

        $uri= JUri::getInstance();
        $app= JFactory::getApplication();
        $app->setUserState('function_to_be_executed',0);
        $uri->delVar('start');
        $app->redirect((string)$uri);
    }/***[/JCBGUI$$$$]***/


	/**
	 * Method to check if you can edit an existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

        /**
	 * Method override to check if you can add a new record.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @since   1.6
	 */
	protected function allowAdd($data = array())
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Method to check if you can save a new or existing record.
	 *
	 * Extended classes can override this if necessary.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key.
	 *
	 * @return  boolean
	 *
	 * @since   12.2
	 */
	protected function allowSave($data, $key = 'id')
	{
		// to insure no other tampering
		return false;
	}

	/**
	 * Function that allows child controller access to model data
	 * after the data has been saved.
	 *
	 * @param   JModelLegacy  $model      The data model object.
	 * @param   array         $validData  The validated data.
	 *
	 * @return  void
	 *
	 * @since   12.2
	 */
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
	}
}
thumbnail.php000064400000005447151166572340007264 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Image\Image;

/**
 * Thumbnail controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerThumbnail extends JControllerLegacy
{
	/**
	 * Create a thumbnail
	 *
	 * @return void
	 *
	 * @throws Exception
	 */
	public function create()
	{
		// @var JApplicationWeb  $application

		$application = JFactory::getApplication();
		$output      = '';
		$size        = $this->input->getCmd('size',
'');
		$image       = $_REQUEST['image'];
		$id          = $this->input->getInt('id', 0);
		$imagePath   = JPATH_ROOT . '/images/com_jea/images/' . $id .
'/' . $image;
		$thumbDir    = JPATH_ROOT . '/images/com_jea/thumb-' . $size;
		$thumbPath   = $thumbDir . '/' . $id . '-' . $image;

		if (empty($image))
		{
			throw new RuntimeException('Empty \'image\'
parameter', 500);
		}

		if (!in_array($size, array('min', 'medium')))
		{
			throw new RuntimeException('The image size is not recognized',
500);
		}

		if (file_exists($thumbPath))
		{
			$output = readfile($thumbPath);
		}
		elseif (file_exists($imagePath))
		{
			if (!Folder::exists($thumbPath))
			{
				Folder::create($thumbDir);
			}

			$params = JComponentHelper::getParams('com_jea');

			if ($size == 'medium')
			{
				$width = $params->get('thumb_medium_width', 400);
				$height = $params->get('thumb_medium_height', 300);
			}
			else
			{
				$width = $params->get('thumb_min_width', 120);
				$height = $params->get('thumb_min_height', 90);
			}

			$quality = (int) $params->get('jpg_quality', 90);
			$cropThumbnails = (bool) $params->get('crop_thumbnails',
0);
			$image = new Image($imagePath);

			if ($cropThumbnails)
			{
				$thumb = $image->resize($width, $height, true,
JImage::SCALE_OUTSIDE);
				$left = $thumb->getWidth() > $width ?
intval(($thumb->getWidth() - $width) / 2) : 0;
				$top = $thumb->getHeight() > $height ?
intval(($thumb->getHeight() - $height) / 2) : 0;
				$thumb->crop($width, $height, $left, $top, false);
			}
			else
			{
				$thumb = $image->resize($width, $height);
			}

			$thumb->toFile($thumbPath, IMAGETYPE_JPEG, array('quality'
=> $quality));

			$output = readfile($thumbPath);
		}
		else
		{
			throw new RuntimeException('The image ' . $image . ' was
not found', 500);
		}

		$application->setHeader('Content-Type',
'image/jpeg', true);
		$application->setHeader('Content-Transfer-Encoding',
'binary', true);
		$application->sendHeaders();

		echo $output;

		$application->close();
	}
}
properties.xml.php000064400000010012151166572340010254 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Properties xml controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerProperties extends JControllerLegacy
{
	/**
	 * Generate KML
	 *
	 * @return void
	 */
	public function kml()
	{
		$app = JFactory::getApplication();
		$Itemid = $app->input->getInt('Itemid', 0);

		$model = $this->getModel('Properties', 'JeaModel',
array('ignore_request' => true));

		$filters = array_keys($model->getFilters());

		// Set the Model state
		foreach ($filters as $filter)
		{
			$model->setState('filter.' . $filter,
$app->input->get('filter_' . $filter, null,
'default'));
		}

		// Deactivate pagination
		$model->setState('list.start', 0);
		$model->setState('list.limit', 0);

		// Set language state
		$model->setState('filter.language',
$app->getLanguageFilter());

		$items = $model->getItems();

		$doc = new DomDocument;

		$kmlNode = $doc->createElement('kml');
		$kmlNode->setAttribute('xmlns',
'http://www.opengis.net/kml/2.2');
		$documentNode = $doc->createElement('Document');

		foreach ($items as $row)
		{
			if (abs($row->latitude) > 0 && abs($row->longitude)
> 0)
			{
				$placemarkNode = $doc->createElement('Placemark');
				$nameNode = $doc->createElement('name');
				$descrNode = $doc->createElement('description');
				$pointNode = $doc->createElement('Point');

				/*
																 *
Http://code.google.com/intl/fr/apis/kml/documentation/kml_tut.html#placemarks
				 * (longitude, latitude, and optional altitude)
				 */

				$coordinates = $row->longitude . ',' . $row->latitude .
',0.000000';
				$coordsNode = $doc->createElement('coordinates',
$coordinates);

				$row->slug = $row->alias ? ($row->id . ':' .
$row->alias) : $row->id;

				$url =
JRoute::_('index.php?option=com_jea&view=property&id=' .
$row->slug . '&Itemid=' . $Itemid);

				if (empty($row->title))
				{
					$name =
ucfirst(JText::sprintf('COM_JEA_PROPERTY_TYPE_IN_TOWN',
$row->type, $row->town));
				}
				else
				{
					$name = $row->title;
				}

				$description = '<div
style="clear:both"></div>';

				$images = json_decode($row->images);
				$image = null;

				if (! empty($images) && is_array($images))
				{
					$image = array_shift($images);
					$imagePath = JPATH_ROOT . '/images/com_jea';
					$imageUrl = '';

					if (file_exists($imagePath . '/thumb-min/' . $row->id .
'-' . $image->name))
					{
						// If the thumbnail already exists, display it directly
						$baseURL = JURI::root(true);
						$imageUrl = $baseURL . '/images/com_jea/thumb-min/' .
$row->id . '-' . $image->name;
					}
					elseif (file_exists($imagePath . '/images/' . $row->id .
'/' . $image->name))
					{
						// If the thumbnail doesn't exist, generate it and output it on
the fly
						$url =
'index.php?option=com_jea&task=thumbnail.create&size=min&id='
. $row->id . '&image=' . $image->name;
						$imageUrl = JRoute::_($url);
					}

					$description .= '<img src="' . $imageUrl .
'" alt="' . $image->name . '.jpg"
style="float:left;margin-right:10px" />';
				}

				$description .= substr(strip_tags($row->description), 0, 255)
							. ' ...<p><a href="' . $url .
'">' . JText::_('COM_JEA_DETAIL')
							. '</a></p><div
style="clear:both"></div>';

				$nameCDATA = $doc->createCDATASection($name);
				$descriptionCDATA = $doc->createCDATASection($description);
				$nameNode->appendChild($nameCDATA);
				$descrNode->appendChild($descriptionCDATA);
				$pointNode->appendChild($coordsNode);

				$placemarkNode->appendChild($nameNode);
				$placemarkNode->appendChild($descrNode);
				$placemarkNode->appendChild($pointNode);

				$documentNode->appendChild($placemarkNode);
			}
		}

		$kmlNode->appendChild($documentNode);
		$doc->appendChild($kmlNode);

		echo $doc->saveXML();
	}
}
properties.json.php000064400000007352151166572350010443 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Properties controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerProperties extends JControllerLegacy
{
	/**
	 * Search action
	 *
	 * @return void
	 */
	public function search()
	{
		$app = JFactory::getApplication();
		$model = $this->getModel();
		$filters = array_keys($model->getFilters());

		// Set the Model state
		foreach ($filters as $filter)
		{
			$model->setState('filter.' . $filter,
$app->input->get('filter_' . $filter, null,
'default'));
		}

		// Deactivate pagination
		$model->setState('list.start', 0);
		$model->setState('list.limit', 0);

		// Set language state
		$model->setState('filter.language',
$app->getLanguageFilter());

		$items = $model->getItems();

		$result = array();
		$result['total'] = count($items);

		if (JDEBUG)
		{
			$result['query'] = (string) JFactory::getDbo()->getQuery();
		}

		$result['types'] = array();
		$result['towns'] = array();
		$result['departments'] = array();
		$result['areas'] = array();

		$temp = array();
		$temp['types'] = array();
		$temp['towns'] = array();
		$temp['departments'] = array();
		$temp['areas'] = array();

		foreach ($items as $row)
		{
			if ($row->type_id && !
isset($temp['types'][$row->type_id]))
			{
				$result['types'][] = array('value' =>
$row->type_id, 'text' => $row->type);
				$temp['types'][$row->type_id] = true;
			}

			if ($row->town_id && !
isset($temp['towns'][$row->town_id]))
			{
				$result['towns'][] = array('value' =>
$row->town_id, 'text' => $row->town);
				$temp['towns'][$row->town_id] = true;
			}

			if ($row->department_id && !
isset($temp['departments'][$row->department_id]))
			{
				$result['departments'][] = array('value' =>
$row->department_id, 'text' => $row->department);
				$temp['departments'][$row->department_id] = true;
			}

			if ($row->area_id && !
isset($temp['areas'][$row->area_id]))
			{
				$result['areas'][] = array('value' =>
$row->area_id, 'text' => $row->area);
				$temp['areas'][$row->area_id] = true;
			}
		}

		// TODO: User preference : Alpha ou order

		if (isset($result['types']))
		{
			usort($result['types'],
array('JeaControllerProperties', '_ajaxAlphaSort'));
		}

		if (isset($result['departments']))
		{
			usort($result['departments'],
array('JeaControllerProperties', '_ajaxAlphaSort'));
		}

		if (isset($result['towns']))
		{
			usort($result['towns'],
array('JeaControllerProperties', '_ajaxAlphaSort'));
		}

		if (isset($result['areas']))
		{
			usort($result['areas'],
array('JeaControllerProperties', '_ajaxAlphaSort'));
		}

		echo json_encode($result);
	}

	/**
	 * Sort method for usort
	 *
	 * @param   array  $arg1  Sort data 1
	 * @param   array  $arg2  Sort data 2
	 *
	 * @return number
	 */
	public function _ajaxAlphaSort(&$arg1, &$arg2)
	{
		$val1 = strtolower($arg1['text']);
		$val2 = strtolower($arg2['text']);

		return strnatcmp($val1, $val2);
	}

	/**
	 * Overrides parent method.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JeaModelProperties|boolean  Model object on success; otherwise
false on failure.
	 *
	 * @see JControllerLegacy::getModel()
	 */
	public function getModel($name = 'Properties', $prefix =
'JeaModel', $config = array('ignore_request' =>
true))
	{
		$model = parent::getModel($name, $prefix, $config);

		return $model;
	}
}
features.json.php000064400000000753151166572350010063 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

require_once JPATH_COMPONENT_ADMINISTRATOR .
'/models/features.php';
require_once JPATH_COMPONENT_ADMINISTRATOR .
'/controllers/features.json.php';
properties.php000064400000001463151166572350007470 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Properties controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerProperties extends JControllerLegacy
{
	/**
	 * The default view for the display method.
	 *
	 * @var   string
	 */
	protected $default_view = 'properties';

	/**
	 * Search action
	 *
	 * @return void
	 */
	public function search()
	{
		$app = JFactory::getApplication();
		$app->input->set('layout', 'default');
		$this->display();
	}
}
default.php000064400000005370151166572350006721 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Default controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerDefault extends JControllerLegacy
{
	/**
	 * The default view for the display method.
	 *
	 * @var   string
	 */
	protected $default_view = 'properties';

	/**
	 * Overrides parent method.
	 *
	 * @param   boolean  $cachable   If true, the view output will be cached
	 * @param   array    $urlparams  An array of safe URL parameters and their
variable types, for valid values see {@link JFilterInput::clean()}.
	 *
	 * @return  JControllerLegacy.
	 *
	 * @since   3.0
	 */
	public function display($cachable = false, $urlparams = array())
	{
		$layout =
JFactory::getApplication()->input->get('layout');

		if ($layout == 'manage' || $layout == 'edit')
		{
			$user = JFactory::getUser();
			$uri = JUri::getInstance();
			$return = base64_encode($uri);
			$access = false;

			if ($layout == 'manage')
			{
				$access = $user->authorise('core.edit.own',
'com_jea');
			}
			elseif ($layout == 'edit')
			{
				$params = JFactory::getApplication()->getParams();

				if ($params->get('login_behavior', 'before') ==
'before')
				{
					$access = $user->authorise('core.create',
'com_jea');
				}
				else
				{
					// If the login_behavior is set after save,
					// so all users can see the property form.
					$access = true;
				}
			}

			if (!$access)
			{
				if ($user->id)
				{
					$this->setMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'warning');
				}
				else
				{
					$this->setMessage(JText::_('JGLOBAL_YOU_MUST_LOGIN_FIRST'));
				}

				return
$this->setRedirect(JRoute::_('index.php?option=com_users&view=login&return='
. $return, false));
			}
		}

		return parent::display($cachable, $urlparams);
	}

	/**
	 * Send contact form action
	 *
	 * @return JControllerLegacy
	 */
	public function sendContactForm()
	{
		$model = $this->getModel('Property', 'JeaModel');
		$returnURL = $model->getState('contact.propertyURL');

		// Check for request forgeries
		if (!JSession::checkToken())
		{
			return $this->setRedirect($returnURL,
JText::_('JINVALID_TOKEN'), 'warning');
		}

		if (!$model->sendContactForm())
		{
			$errors = $model->getErrors();
			$msg = '';

			foreach ($errors as $error)
			{
				$msg .= $error . "\n";
			}

			return $this->setRedirect($returnURL, $msg, 'warning');
		}

		$msg = JText::_('COM_JEA_CONTACT_FORM_SUCCESSFULLY_SENT');

		return $this->setRedirect($returnURL, $msg);
	}
}
property.php000064400000013252151166572350007157 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Property controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerProperty extends JControllerForm
{
	/**
	 * The URL view item variable.
	 *
	 * @var string
	 */
	protected $view_item = 'form';

	/**
	 * The URL view list variable.
	 *
	 * @var string
	 */
	protected $view_list = 'properties';

	/**
	 * Overrides parent method.
	 *
	 * @param   array  $data  An array of input data.
	 *
	 * @return  boolean
	 *
	 * @see JControllerForm::allowAdd()
	 */
	protected function allowAdd($data = array())
	{
		$user = JFactory::getUser();

		if (!$user->authorise('core.create', 'com_jea'))
		{
			$app = JFactory::getApplication();
			$uri = JFactory::getURI();
			$return = base64_encode($uri);

			if ($user->get('id'))
			{
				$this->setMessage(JText::_('JERROR_ALERTNOAUTHOR'),
'warning');
			}
			else
			{
				$this->setMessage(JText::_('JGLOBAL_YOU_MUST_LOGIN_FIRST'));
			}

			// Save the data in the session.
			$app->setUserState('com_jea.edit.property.data', $data);
			$this->setRedirect(JRoute::_('index.php?option=com_users&view=login&return='
. $return, false));

			return $this->redirect();
		}

		return true;
	}

	/**
	 * Overrides parent method.
	 *
	 * @param   array   $data  An array of input data.
	 * @param   string  $key   The name of the key for the primary key;
default is id.
	 *
	 * @return  boolean
	 *
	 * @see JControllerForm::allowEdit()
	 */
	protected function allowEdit($data = array(), $key = 'id')
	{
		// Initialise variables.
		$recordId = (int) isset($data[$key]) ? $data[$key] : 0;
		$user = JFactory::getUser();
		$asset = 'com_jea.property.' . $recordId;

		// Check general edit permission first.
		if ($user->authorise('core.edit', $asset))
		{
			return true;
		}

		// Fallback on edit.own. First test if the permission is available.
		if ($user->authorise('core.edit.own', $asset))
		{
			// Now test the owner is the user.
			$ownerId = (int) isset($data['created_by']) ?
$data['created_by'] : 0;

			if (empty($ownerId) && $recordId)
			{
				// Need to do a lookup from the model.
				$record = $this->getModel()->getItem($recordId);

				if (empty($record))
				{
					return false;
				}

				$ownerId = $record->created_by;
			}

			// If the owner matches 'me' then do the test.
			if ($ownerId == $user->id)
			{
				return true;
			}
		}

		// Since there is no asset tracking, revert to the component permissions.
		return parent::allowEdit($data, $key);
	}

	/**
	 * Unpublish a property
	 *
	 * @return void
	 */
	public function unpublish()
	{
		$this->publish(0);
	}

	/**
	 * Publish/Unpublish a property
	 *
	 * @param   integer  $action  0 -> unpublish, 1 -> publish
	 *
	 * @return  void
	 */
	public function publish($action = 1)
	{
		$id = JFactory::getApplication()->input->get('id', 0,
'int');
		$this->getModel()->publish($id, $action);
		$this->setRedirect(JRoute::_('index.php?option=com_jea&view=properties'
. $this->getRedirectToListAppend(), false));
	}

	/**
	 * Delete a property
	 *
	 * @return void
	 */
	public function delete()
	{
		$id = JFactory::getApplication()->input->get('id', 0,
'int');

		if ($this->getModel()->delete($id))
		{
			$this->setMessage(JText::_('COM_JEA_SUCCESSFULLY_REMOVED_PROPERTY'));
		}

		$this->setRedirect(JRoute::_('index.php?option=com_jea&view=properties'
. $this->getRedirectToListAppend(), false));
	}

	/**
	 * Overrides parent method.
	 *
	 * @param   string  $name    The model name. Optional.
	 * @param   string  $prefix  The class prefix. Optional.
	 * @param   array   $config  Configuration array for model. Optional.
	 *
	 * @return  JeaModelForm|boolean  Model object on success; otherwise false
on failure.
	 *
	 * @see JControllerLegacy::getModel()
	 */
	public function getModel($name = 'form', $prefix = '',
$config = array('ignore_request' => true))
	{
		$model = parent::getModel($name, $prefix, $config);

		return $model;
	}

	/**
	 *  Overrides parent method.
	 *
	 * @param   integer  $recordId  The primary key id for the item.
	 * @param   string   $urlVar    The name of the URL variable for the id.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @see JControllerForm::getRedirectToItemAppend()
	 */
	protected function getRedirectToItemAppend($recordId = null, $urlVar =
'id')
	{
		$tmpl = $this->input->getCmd('tmpl');
		$append = '&layout=edit';

		// Setup redirect info.
		if ($tmpl)
		{
			$append .= '&tmpl=' . $tmpl;
		}

		if ($recordId)
		{
			$append .= '&' . $urlVar . '=' . $recordId;
		}

		return $append;
	}

	/**
	 * Overrides parent method.
	 *
	 * @return  string  The arguments to append to the redirect URL.
	 *
	 * @see JControllerForm::getRedirectToListAppend()
	 */
	protected function getRedirectToListAppend()
	{
		$tmpl = $this->input->getCmd('tmpl');
		$append = '&layout=manage';

		// Try to redirect to the manage menu item if found
		$app = JFactory::getApplication();
		$menu = $app->getMenu();
		$activeItem = $menu->getActive();

		if (isset($activeItem->query['layout']) &&
$activeItem->query['layout'] != 'manage')
		{
			$items = $menu->getItems('component', 'com_jea');

			foreach ($items as $item)
			{
				$layout = isset($item->query['layout']) ?
$item->query['layout'] : '';

				if ($layout == 'manage')
				{
					$append .= '&Itemid=' . $item->id;
				}
			}
		}

		// Setup redirect info.
		if ($tmpl)
		{
			$append .= '&tmpl=' . $tmpl;
		}

		return $append;
	}
}
default.feed.php000064400000001177151166572350007624 0ustar00<?php
/**
 * This file is part of Joomla Estate Agency - Joomla! extension for real
estate agency
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 * @copyright   Copyright (C) 2008 - 2020 PHILIP Sylvain. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * Default feed controller class.
 *
 * @package     Joomla.Site
 * @subpackage  com_jea
 *
 * @since       2.0
 */
class JeaControllerDefault extends JControllerLegacy
{
	/**
	 * The default view for the display method.
	 *
	 * @var    string
	 */
	protected $default_view = 'properties';
}