Your IP : 216.73.216.224


Current Path : /var/www/html/administrator/components/com_jchat/Controller/
Upload File :
Current File : /var/www/html/administrator/components/com_jchat/Controller/AjaxserverController.php

<?php 
namespace JExtstore\Component\JChat\Administrator\Controller;
/** 
 * @package JCHAT::AJAXSERVER::components::com_jchat 
 * @subpackage controllers
 * @author Joomla! Extensions Store
 * @copyright (C) 2024 - Joomla! Extensions Store
 * @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html  
 */
defined ( '_JEXEC' ) or die ( 'Restricted access' );
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use JExtstore\Component\JChat\Administrator\Framework\Controller as JChatController;

/** 
 * Controller for tasks logic API ENDPOINT purpouse
 * @package JCHAT::AJAXSERVER::components::com_jchat  
 * @subpackage controllers
 * @since 2.9
 */  
class AjaxserverController extends JChatController { 
	/**
	 * AS SMVC entity here we treat HTTP request and identifier map
	 * @access public
	 * @param $cachable string
	 *       	 the view output will be cached
	 * @return void
	 */
	function display($cachable = false, $urlparams = false) {
		// Id entit� risposta ajax che identifica il subtask da eseguire in questo caso
		$params = json_decode($this->app->getInput()->getString('data', null));
		
		// Load additional models and make Dependency Injection thanks to JS controls
		$DIModels = @$params->DIModels;
		$models = array();
		if(!empty($DIModels)) {
			foreach ($DIModels as $DIModel) {
				if($DIModel->modelside != $this->app->getClientId()) {
					// Add extra include paths
					BaseDatabaseModel::addIncludePath(JPATH_COMPONENT . 'Model/');
				}
				$models[$DIModel->modelname] = $this->getModel ($DIModel->modelname);
			} 
		}
		// This model maps Remote Procedure Call
		$model = $this->getModel ();
		$userData = $model->loadAjaxEntity ($params->idtask, $params->param, $models);
		
	 	// Format response for JS client as requested
	 	$document = $this->app->getDocument();
		$viewType = $document->getType ();
		$coreName = $this->getName ();
		
		$view =  $this->getView ( $coreName, $viewType, '', array ('base_path' => $this->basePath ) );
		$view->display ($userData);
	} 
}