Hunter Black Hat SEO
Server:LiteSpeed
System:Linux altar25.supremepanel25.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User:flexnetw (3555)
PHP:7.2.34
Disabled:NONE
Upload Files
File: /home/flexnetw/public_html/old/riseandshine/libraries/solidres/controller/legacy.php
<?php
/*------------------------------------------------------------------------
  Solidres - Hotel booking extension for Joomla
  ------------------------------------------------------------------------
  @Author    Solidres Team
  @Website   http://www.solidres.com
  @Copyright Copyright (C) 2013 - 2017 Solidres. All Rights Reserved.
  @License   GNU General Public License version 3, or later
------------------------------------------------------------------------*/

defined('_JEXEC') or die;

class SRControllerLegacy extends JControllerLegacy
{
	protected static $instance;
	protected static $includePaths = array();

	public static function getInstance($prefix, $config = array())
	{
		if (is_object(self::$instance))
		{
			return self::$instance;
		}

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

		// Get the environment configuration.
		$basePath = array_key_exists('base_path', $config) ? $config['base_path'] : JPATH_COMPONENT;
		$format   = $input->getWord('format');
		$command  = $input->get('task', 'display');

		// Check for array format.
		$filter = JFilterInput::getInstance();

		if (is_array($command))
		{
			$command = $filter->clean(array_pop(array_keys($command)), 'cmd');
		}
		else
		{
			$command = $filter->clean($command, 'cmd');
		}

		// Check for a controller.task command.
		if (strpos($command, '.') !== false)
		{
			// Explode the controller.task command.
			list ($type, $task) = explode('.', $command);

			// Define the controller filename and path.
			$file       = self::createFileName('controller', array('name' => $type, 'format' => $format));
			$path       = $basePath . '/controllers/' . $file;
			$backuppath = $basePath . '/controller/' . $file;

			// Reset the task without the controller context.
			$input->set('task', $task);
		}
		else
		{
			// Base controller.
			$type = null;

			// Define the controller filename and path.
			$file       = self::createFileName('controller', array('name' => 'controller', 'format' => $format));
			$path       = $basePath . '/' . $file;
			$backupfile = self::createFileName('controller', array('name' => 'controller'));
			$backuppath = $basePath . '/' . $backupfile;
		}
		$includePaths = static::$includePaths;
		if (count($includePaths))
		{
			if (array_key_exists('model_path', $config))
			{
				$config['model_path'] = (array) $config['model_path'];
			}
			else
			{
				$config['model_path'] = array(JPATH_COMPONENT . '/models');
			}
			if (array_key_exists('view_path', $config))
			{
				$config['view_path'] = (array) $config['view_path'];
			}
			else
			{
				$config['view_path'] = array(JPATH_COMPONENT . '/views');
			}
			if (array_key_exists('template_path', $config))
			{
				$config['template_path'] = (array) $config['template_path'];
			}
			foreach ($includePaths as $includePath)
			{
				//JTable::addIncludePath($includePath . '/tables');
				array_unshift($config['model_path'], $includePath . '/models');
				array_unshift($config['view_path'], $includePath . '/views');
			}
		}
		// Get the controller class name.
		$class = ucfirst($prefix) . 'Controller' . ucfirst($type);

		// Include the class if not present.
		if (!class_exists($class))
		{
			// If the controller file path exists, include it.
			if (file_exists($path))
			{
				require_once $path;
			}
			elseif (isset($backuppath) && file_exists($backuppath))
			{
				require_once $backuppath;
			}
			//If path is not exist the find another from include paths
			elseif (count($includePaths))
			{
				if ($type)
				{
					$file = 'controllers/' . $file;
				}
				foreach ($includePaths as $includePath)
				{
					$path = $includePath . '/' . $file;
					if (file_exists($path))
					{
						require_once $path;
						$config['base_path'] = $includePath;
						break;
					}
				}
			}
			if (!class_exists($class))
			{
				throw new InvalidArgumentException(JText::sprintf('JLIB_APPLICATION_ERROR_INVALID_CONTROLLER', $type, $format));
			}
		}
		// Instantiate the class.
		if (class_exists($class))
		{
			self::$instance = new $class($config);
		}
		else
		{
			throw new InvalidArgumentException(JText::sprintf('JLIB_APPLICATION_ERROR_INVALID_CONTROLLER_CLASS', $class));
		}

		return self::$instance;
	}

	/**
	 * Add one or more controller paths, in LIFO order.
	 *
	 * @param   mixed $path The directory (string) or list of directories (array) to add.
	 *
	 * @return array
	 */
	public static function addIncludePath($path)
	{
		settype($path, 'array');
		jimport('joomla.filesystem.folder');
		foreach ($path as $includePath)
		{
			//for only exists path
			if (!in_array($includePath, static::$includePaths) && JFolder::exists($includePath))
			{
				array_unshift(static::$includePaths, JPath::clean($includePath));
			}
		}

		return static::$includePaths;

	}

}