Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/public_html/j3/plugins/content/helpdeskpro/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/public_html/j3/plugins/content/helpdeskpro/helpdeskpro.php

<?php
/**
 * @version        4.3.0
 * @package        Joomla
 * @subpackage     Helpdesk Pro
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2013 - 2021 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */

defined('_JEXEC') or die;

use Joomla\CMS\Plugin\CMSPlugin;

class plgContentHelpdeskpro extends CMSPlugin
{
	public function onContentPrepare($context, &$article, &$params,
$limitstart)
	{
		$app = JFactory::getApplication();

		if ($app->getName() != 'site')
		{
			return;
		}

		if (strpos($article->text, 'helpdeskpro') === false)
		{
			return true;
		}

		$regex = "#{helpdeskpro}#s";

		$article->text = preg_replace_callback($regex, array(&$this,
'displaySubmitTicketForm'), $article->text);

		return true;
	}

	/**
	 * Replace callback function
	 *
	 * @param array $matches
	 *
	 * @return string
	 */
	private function displaySubmitTicketForm($matches)
	{
		// Bootstrap the component libraries
		require_once JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/init.php';

		// Get component config data
		$config = require JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/config.php';

		// Creating component container
		$container =
OSL\Container\Container::getInstance('com_helpdeskpro',
$config);

		// Generate new input for the container to pass it to controller
		$Itemid = \OSSolution\HelpdeskPro\Site\Helper\Helper::getItemid();
		$input  = new OSL\Input\Input(array('view' =>
'ticket', 'layout' => 'form',
'Itemid' => $Itemid));

		// Load component language
		\OSSolution\HelpdeskPro\Site\Helper\Helper::loadLanguage();

		// Create the Controller and Execute the request
		$controller = OSL\Controller\Controller::getInstance($container);

		$oldInput = $controller->setInput($input);

		ob_start();
		
		$controller->execute();

		$controller->setInput($oldInput);
		
		return '<div class="clearfix"></div>' .
ob_get_clean();
	}
}