Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla4/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla4/View.zip

PK��[����'
'
CategoriesView.phpnu�[���<?php
/**
 * Joomla! Content Management System
 *
 * @copyright  Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license    GNU General Public License version 2 or later; see
LICENSE.txt
 */

namespace Joomla\CMS\MVC\View;

defined('JPATH_PLATFORM') or die;

/**
 * Categories view base class.
 *
 * @since  3.2
 */
class CategoriesView extends HtmlView
{
	/**
	 * State data
	 *
	 * @var    \Joomla\Registry\Registry
	 * @since  3.2
	 */
	protected $state;

	/**
	 * Category items data
	 *
	 * @var    array
	 * @since  3.2
	 */
	protected $items;

	/**
	 * Language key for default page heading
	 *
	 * @var    string
	 * @since  3.2
	 */
	protected $pageHeading;

	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   3.2
	 */
	public function display($tpl = null)
	{
		$state  = $this->get('State');
		$items  = $this->get('Items');
		$parent = $this->get('Parent');

		$app = \JFactory::getApplication();

		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			$app->enqueueMessage($errors, 'error');

			return false;
		}

		if ($items === false)
		{
			$app->enqueueMessage(\JText::_('JGLOBAL_CATEGORY_NOT_FOUND'),
'error');

			return false;
		}

		if ($parent == false)
		{
			$app->enqueueMessage(\JText::_('JGLOBAL_CATEGORY_NOT_FOUND'),
'error');

			return false;
		}

		$params = &$state->params;

		$items = array($parent->id => $items);

		// Escape strings for HTML output
		$this->pageclass_sfx =
htmlspecialchars($params->get('pageclass_sfx'), ENT_COMPAT,
'UTF-8');

		$this->maxLevelcat = $params->get('maxLevelcat', -1) <
0 ? PHP_INT_MAX : $params->get('maxLevelcat', PHP_INT_MAX);
		$this->params      = &$params;
		$this->parent      = &$parent;
		$this->items       = &$items;

		$this->prepareDocument();

		return parent::display($tpl);
	}

	/**
	 * Prepares the document
	 *
	 * @return  void
	 *
	 * @since   3.2
	 */
	protected function prepareDocument()
	{
		$app   = \JFactory::getApplication();
		$menus = $app->getMenu();

		// Because the application sets a default page title, we need to get it
from the menu item itself
		$menu = $menus->getActive();

		if ($menu)
		{
			$this->params->def('page_heading',
$this->params->get('page_title', $menu->title));
		}
		else
		{
			$this->params->def('page_heading',
\JText::_($this->pageHeading));
		}

		$title = $this->params->get('page_title', '');

		if (empty($title))
		{
			$title = $app->get('sitename');
		}
		elseif ($app->get('sitename_pagetitles', 0) == 1)
		{
			$title = \JText::sprintf('JPAGETITLE',
$app->get('sitename'), $title);
		}
		elseif ($app->get('sitename_pagetitles', 0) == 2)
		{
			$title = \JText::sprintf('JPAGETITLE', $title,
$app->get('sitename'));
		}

		$this->document->setTitle($title);

		if ($this->params->get('menu-meta_description'))
		{
			$this->document->setDescription($this->params->get('menu-meta_description'));
		}

		if ($this->params->get('menu-meta_keywords'))
		{
			$this->document->setMetadata('keywords',
$this->params->get('menu-meta_keywords'));
		}

		if ($this->params->get('robots'))
		{
			$this->document->setMetadata('robots',
$this->params->get('robots'));
		}
	}
}
PK��[F��(��CategoryFeedView.phpnu�[���<?php
/**
 * Joomla! Content Management System
 *
 * @copyright  Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license    GNU General Public License version 2 or later; see
LICENSE.txt
 */

namespace Joomla\CMS\MVC\View;

defined('JPATH_PLATFORM') or die;

/**
 * Base feed View class for a category
 *
 * @since  3.2
 */
class CategoryFeedView extends HtmlView
{
	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   3.2
	 */
	public function display($tpl = null)
	{
		$app      = \JFactory::getApplication();
		$document = \JFactory::getDocument();

		$extension      = $app->input->getString('option');
		$contentType = $extension . '.' . $this->viewName;

		$ucmType = new \JUcmType;
		$ucmRow = $ucmType->getTypeByAlias($contentType);
		$ucmMapCommon = json_decode($ucmRow->field_mappings)->common;
		$createdField = null;
		$titleField = null;

		if (is_object($ucmMapCommon))
		{
			$createdField = $ucmMapCommon->core_created_time;
			$titleField = $ucmMapCommon->core_title;
		}
		elseif (is_array($ucmMapCommon))
		{
			$createdField = $ucmMapCommon[0]->core_created_time;
			$titleField = $ucmMapCommon[0]->core_title;
		}

		$document->link =
\JRoute::_(\JHelperRoute::getCategoryRoute($app->input->getInt('id'),
$language = 0, $extension));

		$app->input->set('limit',
$app->get('feed_limit'));
		$siteEmail        = $app->get('mailfrom');
		$fromName         = $app->get('fromname');
		$feedEmail        = $app->get('feed_email',
'none');
		$document->editor = $fromName;

		if ($feedEmail !== 'none')
		{
			$document->editorEmail = $siteEmail;
		}

		// Get some data from the model
		$items    = $this->get('Items');
		$category = $this->get('Category');

		// Don't display feed if category id missing or non existent
		if ($category == false || $category->alias === 'root')
		{
			return \JError::raiseError(404,
\JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
		}

		foreach ($items as $item)
		{
			$this->reconcileNames($item);

			// Strip html from feed item title
			if ($titleField)
			{
				$title = $this->escape($item->$titleField);
				$title = html_entity_decode($title, ENT_COMPAT, 'UTF-8');
			}
			else
			{
				$title = '';
			}

			// URL link to article
			$router = new \JHelperRoute;
			$link   = \JRoute::_($router->getRoute($item->id, $contentType,
null, null, $item->catid));

			// Strip HTML from feed item description text.
			$description   = $item->description;
			$author        = $item->created_by_alias ?: $item->author;
			$categoryTitle = isset($item->category_title) ?
$item->category_title : $category->title;

			if ($createdField)
			{
				$date = isset($item->$createdField) ? date('r',
strtotime($item->$createdField)) : '';
			}
			else
			{
				$date = '';
			}

			// Load individual item creator class.
			$feeditem              = new \JFeedItem;
			$feeditem->title       = $title;
			$feeditem->link        = $link;
			$feeditem->description = $description;
			$feeditem->date        = $date;
			$feeditem->category    = $categoryTitle;
			$feeditem->author      = $author;

			// We don't have the author email so we have to use site in both
cases.
			if ($feedEmail === 'site')
			{
				$feeditem->authorEmail = $siteEmail;
			}
			elseif ($feedEmail === 'author')
			{
				$feeditem->authorEmail = $item->author_email;
			}

			// Loads item information into RSS array
			$document->addItem($feeditem);
		}
	}

	/**
	 * Method to reconcile non standard names from components to usage in this
class.
	 * Typically overridden in the component feed view class.
	 *
	 * @param   object  $item  The item for a feed, an element of the $items
array.
	 *
	 * @return  void
	 *
	 * @since   3.2
	 */
	protected function reconcileNames($item)
	{
		if (!property_exists($item, 'title') &&
property_exists($item, 'name'))
		{
			$item->title = $item->name;
		}
	}
}
PK��[7�M���CategoryView.phpnu�[���<?php
/**
 * Joomla! Content Management System
 *
 * @copyright  Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license    GNU General Public License version 2 or later; see
LICENSE.txt
 */

namespace Joomla\CMS\MVC\View;

defined('JPATH_PLATFORM') or die;

/**
 * Base HTML View class for the a Category list
 *
 * @since  3.2
 */
class CategoryView extends HtmlView
{
	/**
	 * State data
	 *
	 * @var    \Joomla\Registry\Registry
	 * @since  3.2
	 */
	protected $state;

	/**
	 * Category items data
	 *
	 * @var    array
	 * @since  3.2
	 */
	protected $items;

	/**
	 * The category model object for this category
	 *
	 * @var    \JModelCategory
	 * @since  3.2
	 */
	protected $category;

	/**
	 * The list of other categories for this extension.
	 *
	 * @var    array
	 * @since  3.2
	 */
	protected $categories;

	/**
	 * Pagination object
	 *
	 * @var    \JPagination
	 * @since  3.2
	 */
	protected $pagination;

	/**
	 * Child objects
	 *
	 * @var    array
	 * @since  3.2
	 */
	protected $children;

	/**
	 * The name of the extension for the category
	 *
	 * @var    string
	 * @since  3.2
	 */
	protected $extension;

	/**
	 * The name of the view to link individual items to
	 *
	 * @var    string
	 * @since  3.2
	 */
	protected $viewName;

	/**
	 * Default title to use for page title
	 *
	 * @var    string
	 * @since  3.2
	 */
	protected $defaultPageTitle;

	/**
	 * Whether to run the standard Joomla plugin events.
	 * Off by default for b/c
	 *
	 * @var    bool
	 * @since  3.5
	 */
	protected $runPlugins = false;

	/**
	 * Method with common display elements used in category list displays
	 *
	 * @return  boolean|\JException|void  Boolean false or \JException
instance on error, nothing otherwise
	 *
	 * @since   3.2
	 */
	public function commonCategoryDisplay()
	{
		$app    = \JFactory::getApplication();
		$user   = \JFactory::getUser();
		$params = $app->getParams();

		// Get some data from the models
		$model       = $this->getModel();
		$paramsModel = $model->getState('params');

		$paramsModel->set('check_access_rights', 0);
		$model->setState('params', $paramsModel);

		$state       = $this->get('State');
		$category    = $this->get('Category');
		$children    = $this->get('Children');
		$parent      = $this->get('Parent');

		if ($category == false)
		{
			return \JError::raiseError(404,
\JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
		}

		if ($parent == false)
		{
			return \JError::raiseError(404,
\JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
		}

		// Check whether category access level allows access.
		$groups = $user->getAuthorisedViewLevels();

		if (!in_array($category->access, $groups))
		{
			return \JError::raiseError(403,
\JText::_('JERROR_ALERTNOAUTHOR'));
		}

		$items      = $this->get('Items');
		$pagination = $this->get('Pagination');

		// Check for errors.
		if (count($errors = $this->get('Errors')))
		{
			\JError::raiseError(500, implode("\n", $errors));

			return false;
		}

		// Setup the category parameters.
		$cparams          = $category->getParams();
		$category->params = clone $params;
		$category->params->merge($cparams);

		$children = array($category->id => $children);

		// Escape strings for HTML output
		$this->pageclass_sfx =
htmlspecialchars($params->get('pageclass_sfx'));

		if ($this->runPlugins)
		{
			\JPluginHelper::importPlugin('content');

			foreach ($items as $itemElement)
			{
				$itemElement = (object) $itemElement;
				$itemElement->event = new \stdClass;

				// For some plugins.
				!empty($itemElement->description) ? $itemElement->text =
$itemElement->description : $itemElement->text = null;

				$dispatcher = \JEventDispatcher::getInstance();

				$dispatcher->trigger('onContentPrepare',
array($this->extension . '.category', &$itemElement,
&$itemElement->params, 0));

				$results = $dispatcher->trigger('onContentAfterTitle',
array($this->extension . '.category', &$itemElement,
&$itemElement->core_params, 0));
				$itemElement->event->afterDisplayTitle =
trim(implode("\n", $results));

				$results = $dispatcher->trigger('onContentBeforeDisplay',
array($this->extension . '.category', &$itemElement,
&$itemElement->core_params, 0));
				$itemElement->event->beforeDisplayContent =
trim(implode("\n", $results));

				$results = $dispatcher->trigger('onContentAfterDisplay',
array($this->extension . '.category', &$itemElement,
&$itemElement->core_params, 0));
				$itemElement->event->afterDisplayContent =
trim(implode("\n", $results));

				if ($itemElement->text)
				{
					$itemElement->description = $itemElement->text;
				}
			}
		}

		$maxLevel         = $params->get('maxLevel', -1) < 0 ?
PHP_INT_MAX : $params->get('maxLevel', PHP_INT_MAX);
		$this->maxLevel   = &$maxLevel;
		$this->state      = &$state;
		$this->items      = &$items;
		$this->category   = &$category;
		$this->children   = &$children;
		$this->params     = &$params;
		$this->parent     = &$parent;
		$this->pagination = &$pagination;
		$this->user       = &$user;

		// Check for layout override only if this is not the active menu item
		// If it is the active menu item, then the view and category id will
match
		$active = $app->getMenu()->getActive();

		if ($active
			&& $active->component == $this->extension
			&& isset($active->query['view'],
$active->query['id'])
			&& $active->query['view'] == 'category'
			&& $active->query['id'] ==
$this->category->id)
		{
			if (isset($active->query['layout']))
			{
				$this->setLayout($active->query['layout']);
			}
		}
		elseif ($layout =
$category->params->get('category_layout'))
		{
			$this->setLayout($layout);
		}

		$this->category->tags = new \JHelperTags;
		$this->category->tags->getItemTags($this->extension .
'.category', $this->category->id);
	}

	/**
	 * Execute and display a template script.
	 *
	 * @param   string  $tpl  The name of the template file to parse;
automatically searches through the template paths.
	 *
	 * @return  mixed  A string if successful, otherwise an Error object.
	 *
	 * @since   3.2
	 */
	public function display($tpl = null)
	{
		$this->prepareDocument();

		return parent::display($tpl);
	}

	/**
	 * Method to prepares the document
	 *
	 * @return  void
	 *
	 * @since   3.2
	 */
	protected function prepareDocument()
	{
		$app           = \JFactory::getApplication();
		$menus         = $app->getMenu();
		$this->pathway = $app->getPathway();
		$title         = null;

		// Because the application sets a default page title, we need to get it
from the menu item itself
		$this->menu = $menus->getActive();

		if ($this->menu)
		{
			$this->params->def('page_heading',
$this->params->get('page_title',
$this->menu->title));
		}
		else
		{
			$this->params->def('page_heading',
\JText::_($this->defaultPageTitle));
		}

		$title = $this->params->get('page_title', '');

		if (empty($title))
		{
			$title = $app->get('sitename');
		}
		elseif ($app->get('sitename_pagetitles', 0) == 1)
		{
			$title = \JText::sprintf('JPAGETITLE',
$app->get('sitename'), $title);
		}
		elseif ($app->get('sitename_pagetitles', 0) == 2)
		{
			$title = \JText::sprintf('JPAGETITLE', $title,
$app->get('sitename'));
		}

		$this->document->setTitle($title);

		if ($this->params->get('menu-meta_description'))
		{
			$this->document->setDescription($this->params->get('menu-meta_description'));
		}

		if ($this->params->get('menu-meta_keywords'))
		{
			$this->document->setMetadata('keywords',
$this->params->get('menu-meta_keywords'));
		}

		if ($this->params->get('robots'))
		{
			$this->document->setMetadata('robots',
$this->params->get('robots'));
		}
	}

	/**
	 * Method to add an alternative feed link to a category layout.
	 *
	 * @return  void
	 *
	 * @since   3.2
	 */
	protected function addFeed()
	{
		if ($this->params->get('show_feed_link', 1) == 1)
		{
			$link    = '&format=feed&limitstart=';
			$attribs = array('type' => 'application/rss+xml',
'title' => 'RSS 2.0');
			$this->document->addHeadLink(\JRoute::_($link .
'&type=rss'), 'alternate', 'rel',
$attribs);
			$attribs = array('type' =>
'application/atom+xml', 'title' => 'Atom
1.0');
			$this->document->addHeadLink(\JRoute::_($link .
'&type=atom'), 'alternate', 'rel',
$attribs);
		}
	}
}
PK��[��׍ccHtmlView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

use JUri, JPath;

use OSL\Container\Container;

jimport('joomla.filesystem.path');


/**
 * Class HtmlView
 *
 * @property-read \JDocumentHtml   $document
 * @property-read \OSL\Input\Input $input
 *
 */
class HtmlView extends AbstractView
{
	/**
	 * The view layout.
	 *
	 * @var string
	 */
	protected $layout = 'default';

	/**
	 * The paths queue.
	 *
	 * @var array
	 */
	protected $paths = array();

	/**
	 * ID of the active menu item, use as default Itemid for links in the
view
	 *
	 * @var int
	 */
	public $Itemid;

	/**
	 * This is a front-end or back-end view.
	 * We need this field to determine whether we need to addToolbar or build
the filter
	 *
	 * @var boolean
	 */
	protected $isAdminView = false;

	/**
	 * Options to allow hide default toolbar buttons from backend view
	 *
	 * @var array
	 */
	protected $hideButtons = array();

	/**
	 * JDocumentHtml document object, used to process meta data for menu item
in frontend
	 *
	 * @var \JDocumentHtml
	 */
	protected $document = null;

	/**
	 * Relative base URI
	 *
	 * @var string
	 */
	protected $relativeRootUri = null;

	/**
	 * Absolute base URI
	 *
	 * @var string
	 */
	protected $rootUri = null;

	/**
	 * Method to instantiate the view.
	 *
	 * @param array $config A named configuration array for object
construction
	 *
	 */
	public function __construct(Container $container, $config = array())
	{
		parent::__construct($container, $config);

		if (isset($config['layout']))
		{
			$this->layout = $config['layout'];
		}

		if (isset($config['paths']))
		{
			$this->paths = $config['paths'];
		}

		if (isset($config['is_admin_view']))
		{
			$this->isAdminView = $config['is_admin_view'];
		}
		else
		{
			$this->isAdminView =
$this->container->app->isClient('administrator');
		}

		if (isset($config['hide_buttons']))
		{
			$this->paths = $config['hide_buttons'];
		}

		$this->Itemid = $this->input->getInt('Itemid', 0);

		// Uris used for link to resources like css, js, images
		$this->relativeRootUri = JUri::root(true) . '/';
		$this->rootUri         = JUri::root();
	}

	/**
	 * Method to display the view
	 */
	public function display()
	{
		echo $this->render();
	}

	/**
	 * Magic toString method that is a proxy for the render method.
	 *
	 * @return string
	 */
	public function __toString()
	{
		return $this->render();
	}

	/**
	 * Method to escape output.
	 *
	 * @param string $output The output to escape.
	 *
	 * @return string The escaped output.
	 */
	public function escape($output)
	{
		return htmlspecialchars($output, ENT_COMPAT, 'UTF-8');
	}

	/**
	 * Method to get the view layout.
	 *
	 * @return string The layout name.
	 */
	public function getLayout()
	{
		return $this->layout;
	}

	/**
	 * Method to get the layout path.
	 *
	 * @param string $layout The layout name.
	 *
	 * @return mixed The layout file name if found, false otherwise.
	 */
	public function getPath($layout)
	{
		$path = '';

		// Try to find the layout file with the following priority order: Device
type, Joomla version, Default Layout
		$filesToFind = array($layout);

		foreach ($filesToFind as $fileLayout)
		{
			$file = JPath::clean($fileLayout . '.php');
			$path = JPath::find($this->paths, $file);

			if ($path)
			{
				break;
			}
		}

		return $path;
	}

	/**
	 * Method to get the view paths.
	 *
	 * @return array The paths queue.
	 *
	 */
	public function getPaths()
	{
		return $this->paths;
	}

	/**
	 * Method to render the view.
	 *
	 * @return string The rendered view.
	 *
	 * @throws \RuntimeException
	 */
	public function render()
	{
		$this->beforeRender();

		// Get the layout path.
		$path = $this->getPath($this->getLayout());

		// Check if the layout path was found.
		if (!$path)
		{
			throw new \RuntimeException('Layout Path Not Found');
		}

		// Start an output buffer.
		ob_start();

		// Load the layout.
		include $path;

		// Get the layout contents.
		return ob_get_clean();
	}

	/**
	 * Load sub-template for the current layout
	 *
	 * @param string $template
	 *
	 * @throws \RuntimeException
	 *
	 * @return string The output of sub-layout
	 */
	public function loadTemplate($template, $data = array())
	{
		// Get the layout path.
		$path = $this->getPath($this->getLayout() . '_' .
$template);

		// Check if the layout path was found.
		if (!$path)
		{
			throw new \RuntimeException('Layout Path Not Found');
		}

		extract($data);

		// Start an output buffer.
		ob_start();

		// Load the layout.
		include $path;

		// Get the layout contents.
		return ob_get_clean();
	}

	/**
	 * Load sub-template for the current layout
	 *
	 * @param string $layout
	 *
	 * @throws \RuntimeException
	 *
	 * @return string The output of sub-layout
	 */
	public function loadCommonLayout($layout, $data = array())
	{
		// Get the layout path.
		$path = $this->getPath($layout);

		// Check if the layout path was found.
		if (!$path)
		{
			throw new \RuntimeException('Layout Path Not Found');
		}

		extract($data);

		// Start an output buffer.
		ob_start();

		// Load the layout.
		include $path;

		// Get the layout contents.
		return ob_get_clean();
	}

	/**
	 * Method to set the view layout.
	 *
	 * @param string $layout The layout name.
	 *
	 * @return HtmlView Method supports chaining.
	 */
	public function setLayout($layout)
	{
		$this->layout = $layout;

		return $this;
	}

	/**
	 * Method to set the view paths.
	 *
	 * @param array $paths The paths queue.
	 *
	 * @return HtmlView Method supports chaining.
	 *
	 */
	public function setPaths($paths)
	{
		$this->paths = $paths;

		return $this;
	}

	/**
	 * Magic get method. Handles magic properties:
	 * $this->document  mapped to $this->container->document
	 *
	 * @param   string $name The property to fetch
	 *
	 * @return  mixed|null
	 */
	public function __get($name)
	{
		$magicProperties = array(
			'document',
			'input',
		);

		if (in_array($name, $magicProperties))
		{
			return $this->container->get($name);
		}
	}

	/**
	 * Child class can use this method to get additional data needed for the
view before it is rendered
	 */
	protected function beforeRender()
	{

	}

	/**
	 * Set document meta data
	 *
	 * @param \Joomla\Registry\Registry $params
	 *
	 * @return void
	 */
	protected function setDocumentMetadata($params)
	{
		/* @var \JDocumentHtml $document */
		$document         = $this->container->document;
		$siteNamePosition =
$this->container->appConfig->get('sitename_pagetitles');
		$siteName         =
$this->container->appConfig->get('sitename');

		if ($pageTitle = $params->get('page_title'))
		{
			if ($siteNamePosition == 0)
			{
				$document->setTitle($pageTitle);
			}
			elseif ($siteNamePosition == 1)
			{
				$document->setTitle($siteName . ' - ' . $pageTitle);
			}
			else
			{
				$document->setTitle($pageTitle . ' - ' . $siteName);
			}
		}

		if ($params->get('menu-meta_keywords'))
		{
			$document->setMetaData('keywords',
$params->get('menu-meta_keywords'));
		}

		if ($params->get('menu-meta_description'))
		{
			$document->setDescription($params->get('menu-meta_description'));
		}

		if ($params->get('robots'))
		{
			$document->setMetaData('robots',
$params->get('robots'));
		}
	}
}PK���[�.�
	
	AbstractView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

use Exception, JText;
use OSL\Container\Container;
use OSL\Model\Model;

/**
 * Class AbstractView
 *
 * Joomla CMS Base View Class
 */
abstract class AbstractView
{
	/**
	 * Name of the view
	 *
	 * @var string
	 */
	protected $name;

	/**
	 * The model object.
	 *
	 * @var Model
	 */
	protected $model;

	/**
	 * Determine the view has a model associated with it or not.
	 * If set to No, no model will be created and assigned to the view method
when the view is being created
	 *
	 * @var boolean
	 */
	public $hasModel = true;

	/**
	 * Constructor
	 *
	 * @param Container $container
	 * @param array     $config
	 *
	 * @throws Exception
	 */
	public function __construct(Container $container, $config = array())
	{
		$this->container = $container;

		// Set the view name
		if (isset($config['name']))
		{
			$this->name = $config['name'];
		}
		else
		{
			$className = get_class($this);

			$r = null;

			if (!preg_match('/(.*)\\\\View\\\\(.*)\\\\(.*)/i', $className,
$r))
			{
				throw new Exception(JText::_('Could not detect the name from
class' . $className), 500);
			}

			$this->name = $r[2];
		}

		if (isset($config['has_model']))
		{
			$this->hasModel = $config['has_model'];
		}

		$this->initialize();
	}

	/**
	 * Get name of the current view
	 *
	 * @return string
	 */
	public function getName()
	{
		return $this->name;
	}

	/**
	 * Set the model object
	 *
	 * @param Model $model
	 */
	public function setModel(Model $model)
	{
		$this->model = $model;
	}

	/**
	 * Get the model object
	 *
	 * @return Model
	 */
	public function getModel()
	{
		return $this->model;
	}

	/**
	 * Method to escape output.
	 *
	 * @param string $output The output to escape.
	 *
	 * @return string The escaped output.
	 *
	 */
	public function escape($output)
	{
		return $output;
	}

	/**
	 * This blank method give child class a chance to init the class further
after being constructed
	 */
	protected function initialize()
	{

	}
}PK���[ N��CsvView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

class CsvView extends AbstractView
{

}PK���[
��~
~
ItemView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

use OSL\Utils\Html as HtmlUtils;
use JHtml, JLanguageHelper, JToolbarHelper, JText;

/**
 * Class ItemView
 *
 * Joomla CMS Item View Class. This class is used to display details
information of an item
 * or display form allow add/editing items
 *
 * @property \OSL\Model\AdminModel $model
 *
 */
class ItemView extends HtmlView
{

	/**
	 * The model state.
	 *
	 * @var \OSL\Model\State
	 */
	protected $state;

	/**
	 * The record which is being added/edited
	 *
	 * @var Object
	 */
	protected $item;

	/**
	 * The array which keeps list of "list" options which will be
displayed on the form
	 *
	 * @var array $lists
	 */
	protected $lists = array();

	/**
	 * Active languages use on the site
	 *
	 * @var array
	 */
	protected $languages = array();

	/**
	 * Method to prepare all the data for the view before it is displayed
	 */
	protected function beforeRender()
	{
		$this->state = $this->model->getState();
		$this->item  = $this->model->getData();

		if (property_exists($this->item, 'published'))
		{
			$this->lists['published'] =
HtmlUtils::getBooleanInput('published',
$this->item->published);
		}

		if (property_exists($this->item, 'access'))
		{
			$this->lists['access'] = JHtml::_('access.level',
'access', $this->item->access,
'class="form-select"', false);
		}

		if (property_exists($this->item, 'language'))
		{
			$this->lists['language'] =
JHtml::_('select.genericlist',
JHtml::_('contentlanguage.existing', true, true),
'language', 'class="form-select"',
'value', 'text', $this->item->language);
		}

		$this->languages = JLanguageHelper::getLanguages();

		if ($this->isAdminView)
		{
			$this->addToolbar();
		}
	}

	/**
	 * Add toolbar buttons for add/edit item form
	 */
	protected function addToolbar()
	{
		$helperClass = $this->container->componentNamespace .
'\\Site\\Helper\\Helper';

		if (is_callable($helperClass . '::getActions'))
		{
			$canDo = call_user_func(array($helperClass, 'getActions'),
$this->name, $this->state);
		}
		else
		{
			$canDo = call_user_func(array('\\OSL\Utils\\Helper',
'getActions'), $this->container->option);
		}

		if ($this->item->id)
		{
			$toolbarTitle = $this->container->languagePrefix . '_' .
$this->name . '_EDIT';
		}
		else
		{
			$toolbarTitle = $this->container->languagePrefix . '_' .
$this->name . '_NEW';
		}

		JToolbarHelper::title(JText::_(strtoupper($toolbarTitle)));

		if (($canDo->get('core.edit') ||
($canDo->get('core.create'))) &&
!in_array('save', $this->hideButtons))
		{
			JToolbarHelper::apply('apply', 'JTOOLBAR_APPLY');
			JToolbarHelper::save('save', 'JTOOLBAR_SAVE');
		}

		if ($canDo->get('core.create') &&
!in_array('save2new', $this->hideButtons))
		{
			JToolbarHelper::custom('save2new', 'save-new.png',
'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false);
		}

		if ($this->item->id &&
$canDo->get('core.create') &&
!in_array('save2copy', $this->hideButtons))
		{
			JToolbarHelper::save2copy('save2copy');
		}

		if ($this->item->id)
		{
			JToolbarHelper::cancel('cancel', 'JTOOLBAR_CLOSE');
		}
		else
		{
			JToolbarHelper::cancel('cancel',
'JTOOLBAR_CANCEL');
		}
	}
}PK���[��ѢJsonView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

class JsonView extends AbstractView
{

}PK���[6����ListView.phpnu�[���<?php
/**
 * @package     OSL
 * @subpackage  View
 *
 * @copyright   Copyright (C) 2016 Ossolution Team, Inc. All rights
reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

namespace OSL\View;

use JHtml, JHtmlSidebar,
	JText, JToolbarHelper;

/**
 * Joomla CMS View List class, used to render list of records from
front-end or back-end of your component
 *
 * @package      OSF
 * @subpackage   View
 * @since        1.0
 *
 * @property \OSL\Model\ListModel $model
 */
class ListView extends HtmlView
{
	/**
	 * The model state
	 *
	 * @var \OSL\Model\State
	 */
	protected $state;

	/**
	 * List of records which will be displayed
	 *
	 * @var array
	 */
	protected $items;

	/**
	 * The pagination object
	 *
	 * @var \JPagination
	 */
	protected $pagination;

	/**
	 * The array which keeps list of "list" options which will used
to display as the filter on the list
	 *
	 * @var array $lists
	 */
	protected $lists = array();

	/**
	 * The sidebar
	 *
	 * @var string
	 */
	protected $sidebar = '';

	/**
	 * Prepare the view before it is displayed
	 *
	 */
	protected function beforeRender()
	{
		$this->state      = $this->model->getState();
		$this->items      = $this->model->getData();
		$this->pagination = $this->model->getPagination();

		if ($this->isAdminView)
		{
			$this->lists['filter_state']    =
str_replace('class="inputbox"',
'class="input-medium"',
JHtml::_('grid.state', $this->state->filter_state));
			$this->lists['filter_access']   =
JHtml::_('access.level', 'filter_access',
$this->state->filter_access, 'class="input-medium"
onchange="submit();"', true);
			$this->lists['filter_language'] =
JHtml::_('select.genericlist',
JHtml::_('contentlanguage.existing', true, true),
'filter_language',
				' onchange="submit();" ', 'value',
'text', $this->state->filter_language);

			$helperClass = $this->container->componentNamespace .
'\\Site\\Helper\\Html';

			if (is_callable($helperClass . '::addSubMenus'))
			{
				call_user_func(array($helperClass, 'addSubMenus'),
$this->name);
			}
			else
			{
				\OSL\Utils\Html::addSubMenus($this->container->option,
$this->name);
			}

			if (version_compare(JVERSION, '4.0.0-dev', '<'))
			{
				$this->sidebar = JHtmlSidebar::render();
			}

			$this->addToolbar();
		}
	}

	/**
	 * Method to add toolbar buttons
	 *
	 */
	protected function addToolbar()
	{
		$helperClass = $this->container->componentNamespace .
'\\Site\\Helper\\Helper';

		if (is_callable($helperClass . '::getActions'))
		{
			$canDo = call_user_func(array($helperClass, 'getActions'),
$this->name, $this->state);
		}
		else
		{
			$canDo = call_user_func(array('\\OSL\Utils\\Helper',
'getActions'), $this->container->option);
		}

		$languagePrefix = $this->container->languagePrefix;

		JToolbarHelper::title(JText::_(strtoupper($languagePrefix . '_'
. $this->container->inflector->singularize($this->name) .
'_MANAGEMENT')), 'link ' . $this->name);

		if ($canDo->get('core.create') &&
!in_array('add', $this->hideButtons))
		{
			JToolbarHelper::addNew('add', 'JTOOLBAR_NEW');
		}

		if ($canDo->get('core.edit') &&
isset($this->items[0]) && !in_array('edit',
$this->hideButtons))
		{
			JToolbarHelper::editList('edit', 'JTOOLBAR_EDIT');
		}

		if ($canDo->get('core.delete') &&
isset($this->items[0]) && !in_array('delete',
$this->hideButtons))
		{
			JToolbarHelper::deleteList(JText::_($languagePrefix .
'_DELETE_CONFIRM'), 'delete');
		}

		if ($canDo->get('core.edit.state') &&
!in_array('publish', $this->hideButtons))
		{
			if (isset($this->items[0]->published) ||
isset($this->items[0]->state))
			{
				JToolbarHelper::publish('publish',
'JTOOLBAR_PUBLISH', true);
				JToolbarHelper::unpublish('unpublish',
'JTOOLBAR_UNPUBLISH', true);
			}
		}

		if ($canDo->get('core.admin'))
		{
			JToolbarHelper::preferences($this->container->option);
		}
	}
}PK�,�[S���^^AbstractBlock.phpnu�[���<?php


namespace Nextend\Framework\View;


use Nextend\Framework\Pattern\GetPathTrait;
use Nextend\Framework\Pattern\MVCHelperTrait;

abstract class AbstractBlock {

    use GetPathTrait;
    use MVCHelperTrait;

    /**
     * AbstractBlock constructor.
     *
     * @param MVCHelperTrait $MVCHelper
     */
    final public function __construct($MVCHelper) {

        $this->setMVCHelper($MVCHelper);

        $this->init();
    }

    protected function init() {

    }

    protected function renderTemplatePart($templateName) {

        include self::getPath() . '/' . $templateName .
'.php';
    }

    /**
     * Returns the HTML code of the display method
     *
     * @return string
     */
    public function toHTML() {

        ob_start();

        $this->display();

        return ob_get_clean();
    }

    public abstract function display();
}PK�,�[��]}FFAbstractLayout.phpnu�[���<?php


namespace Nextend\Framework\View;


use Nextend\Framework\Pattern\GetPathTrait;
use Nextend\Framework\Pattern\MVCHelperTrait;

abstract class AbstractLayout {

    use GetPathTrait;
    use MVCHelperTrait;

    /** @var AbstractView */
    protected $view;

    /**
     * @var AbstractBlock[]|string[]|array[]
     */
    protected $contentBlocks = array();

    protected $state = array();

    /**
     * AbstractLayout constructor.
     *
     * @param AbstractView $view
     *
     */
    public function __construct($view) {
        $this->view = $view;

        $this->setMVCHelper($view);

        $this->getApplicationType()
             ->setLayout($this);

        $this->enqueueAssets();
    }

    protected function enqueueAssets() {

        $this->getApplicationType()
             ->enqueueAssets();
    }

    /**
     * @param string $html
     */
    public function addContent($html) {

        $this->contentBlocks[] = $html;
    }

    /**
     * @param AbstractBlock $block
     */
    public function addContentBlock($block) {

        $this->contentBlocks[] = $block;
    }

    public function displayContent() {
        foreach ($this->contentBlocks AS $content) {
            if (is_string($content)) {
                echo $content;
            } else if (is_array($content)) {
                echo call_user_func_array($content[0], $content[1]);
            } else {
                $content->display();
            }
        }
    }

    public function setState($name, $value) {
        $this->state[$name] = $value;
    }

    public abstract function render();
}PK�,�[�g{IIAbstractViewAjax.phpnu�[���<?php


namespace Nextend\Framework\View;


use Nextend\Framework\Controller\AbstractController;
use Nextend\Framework\Pattern\GetPathTrait;
use Nextend\Framework\Pattern\MVCHelperTrait;

abstract class AbstractViewAjax {

    use GetPathTrait;
    use MVCHelperTrait;

    /** @var AbstractController */
    protected $controller;

    /**
     * AbstractViewAjax constructor.
     *
     * @param AbstractController $controller
     *
     */
    public function __construct($controller) {
        $this->controller = $controller;

        $this->setMVCHelper($controller);
    }

    protected function render($templateName) {
        ob_start();
        include self::getPath() . '/Template/' . $templateName .
'.php';

        return ob_get_clean();
    }

    /**
     * @return string
     */
    public abstract function display();
}PK�,�[���iz(z(Html.phpnu�[���<?php

namespace Nextend\Framework\View;

use Nextend\Framework\Platform\Platform;
use Nextend\Framework\Settings;

class Html {

    private static $closeSingleTags = true;

    /**
     * @var boolean whether to render special attributes value. Defaults to
true. Can be set to false for HTML5.
     * @since 1.1.13
     */
    private static $renderSpecialAttributesValue = true;

    /**
     * Generates an HTML element.
     *
     * @param string  $tag         the tag name
     * @param array   $htmlOptions the element attributes. The values will
be HTML-encoded using
     *                             {@link encodeAttribute()}. If an
'encode' attribute is given and its value is false,
     *                             the rest of the attribute values will
NOT be HTML-encoded. Since version 1.1.5,
     *                             attributes whose value is null will not
be rendered.
     * @param mixed   $content     the content to be enclosed between open
and close element tags. It will not be
     *                             HTML-encoded. If false, it means there
is no body content.
     * @param boolean $closeTag    whether to generate the close tag.
     *
     * @return string the generated HTML element tag
     */
    public static function tag($tag, $htmlOptions = array(), $content =
"", $closeTag = true) {
        $html = '<' . $tag .
self::renderAttributes($htmlOptions);
        if ($content === false) return $closeTag &&
self::$closeSingleTags ? $html . ' />' : $html .
'>'; else
            return $closeTag ? $html . '>' . $content .
'</' . $tag . '>' : $html . '>' .
$content;
    }

    /**
     * Generates an open HTML element.
     *
     * @param string $tag         the tag name
     * @param array  $htmlOptions the element attributes. The values will
be HTML-encoded using
     *                            {@link encodeAttribute()}.
     *                            If an 'encode' attribute is
given and its value is false,
     *                            the rest of the attribute values will NOT
be HTML-encoded.
     *                            Since version 1.1.5, attributes whose
value is null will not be rendered.
     *
     * @return string the generated HTML element tag
     */
    public static function openTag($tag, $htmlOptions = array()) {
        return '<' . $tag .
self::renderAttributes($htmlOptions) . '>';
    }

    /**
     * Generates a close HTML element.
     *
     * @param string $tag the tag name
     *
     * @return string the generated HTML element tag
     */
    public static function closeTag($tag) {
        return '</' . $tag . '>';
    }

    /**
     * Generates an image tag.
     *
     * @param string $src         the image URL
     * @param string $alt         the alternative text display
     * @param array  $htmlOptions additional HTML attributes (see {@link
tag}).
     *
     * @return string the generated image tag
     */
    public static function image($src, $alt = '', $htmlOptions =
array()) {
        $htmlOptions['src'] = $src;
        $htmlOptions['alt'] = $alt;

        return self::tag('img', $htmlOptions, false, false);
    }

    /**
     * Renders the HTML tag attributes.
     * Since version 1.1.5, attributes whose value is null will not be
rendered.
     * Special attributes, such as 'checked',
'disabled', 'readonly', will be rendered
     * properly based on their corresponding boolean value.
     *
     * @param array $htmlOptions attributes to be rendered
     *
     * @return string the rendering result
     */
    public static function renderAttributes($htmlOptions = array()) {
        static $specialAttributes = array(
            'autofocus'          => 1,
            'autoplay'           => 1,
            'controls'           => 1,
            'declare'            => 1,
            'default'            => 1,
            'disabled'           => 1,
            'ismap'              => 1,
            'loop'               => 1,
            'muted'              => 1,
            'playsinline'        => 1,
            'webkit-playsinline' => 1,
            'nohref'             => 1,
            'noresize'           => 1,
            'novalidate'         => 1,
            'open'               => 1,
            'reversed'           => 1,
            'scoped'             => 1,
            'seamless'           => 1,
            'selected'           => 1,
            'typemustmatch'      => 1,
            'lazyload'           => 1,
        ), $specialAttributesNoValue = array(
            'defer' => 1,
            'async' => 1
        );

        if (empty($htmlOptions)) {
            return '';
        }

        if (isset($htmlOptions['style']) &&
empty($htmlOptions['style'])) {
            unset($htmlOptions['style']);
        }

        $html = '';
        if (isset($htmlOptions['encode'])) {
            $raw = !$htmlOptions['encode'];
            unset($htmlOptions['encode']);
        } else
            $raw = false;

        foreach ($htmlOptions as $name => $value) {
            if (isset($specialAttributes[$name])) {
                if ($value) {
                    $html .= ' ' . $name;
                    if (self::$renderSpecialAttributesValue) $html .=
'="' . $name . '"';
                }
            } else if (isset($specialAttributesNoValue[$name])) {
                $html .= ' ' . $name;
            } else if ($value !== null) $html .= ' ' . $name .
'="' . ($raw ? $value : self::encodeAttribute($value)) .
'"';
        }

        return $html;
    }

    /**
     * @param $text
     *
     * @return string
     */
    public static function encode($text) {
        return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
    }

    /**
     * @param $text
     *
     * @return string
     */
    public static function encodeAttribute($text) {

        /**
         * Do not encode: '
         */
        return htmlspecialchars($text, ENT_COMPAT | ENT_HTML5,
'UTF-8');
    }

    public static function link($name, $url = '#', $htmlOptions =
array()) {
        $htmlOptions["href"] = $url;

        $url = self::openTag("a", $htmlOptions);
        if (isset($htmlOptions["encode"]) &&
$htmlOptions["encode"]) {
            $url .= self::encode($name);
        } else {
            $url .= $name;
        }

        $url .= self::closeTag("a");

        return $url;
    }

    /**
     * Insert stylesheet
     *
     * @param string $script
     * @param bool   $file
     * @param array  $scriptOptions
     *
     * @return string
     */
    public static function style($script, $file = false, $scriptOptions =
array()) {
        if ($file) {
            $options = array(
                "rel"  => "stylesheet",
                "type" => "text/css",
                "href" => $script
            );
            $options = array_merge($options, $scriptOptions);

            return self::tag('link', $options, false, false);
        }

        return self::tag("style", $scriptOptions, $script);
    }

    /**
     * Insert script
     *
     * @param string $script
     *
     * @return string
     */
    public static function script($script) {

        return self::tag('script', array(
            'encode' => false
        ), $script);
    }

    public static function scriptFile($script, $attributes = array()) {
        return self::tag('script', array(
                'src' => $script
            ) + self::getScriptAttributes() + $attributes, '');
    }

    private static function getScriptAttributes() {
        static $attributes = null;

        if (Platform::isAdmin()) {
            return array();
        }

        if ($attributes === null) {
            if (class_exists('\\Nextend\\Framework\\Settings',
false)) {
                $value       =
trim(html_entity_decode(strip_tags(Settings::get('scriptattributes',
''))));
                $_attributes = explode(' ',
str_replace('\'', "",
str_replace("\"", "", $value)));
                if (!empty($value) && !empty($_attributes)) {
                    foreach ($_attributes as $attr) {
                        if (strpos($attr, '=') !== false) {
                            $atts = explode("=", $attr);
                            if (count($atts) <= 2) {
                                $attributes[$atts[0]] = $atts[1];
                            } else {
                                $attributes[$attr] = $attr;
                            }
                        } else {
                            $attributes[$attr] = $attr;
                        }
                    }
                } else {
                    $attributes = array();
                }
            } else {
                return array();
            }
        }

        return $attributes;
    }

    /**
     * @param array $array1
     * @param array $array2 [optional]
     * @param array $_      [optional]
     *
     * @return array the resulting array.
     * @since 4.0
     * @since 5.0
     */
    public static function mergeAttributes($array1, $array2 = null, $_ =
null) {
        $arguments = func_get_args();
        $target    = array_shift($arguments);
        foreach ($arguments as $array) {
            if (isset($array['style'])) {
                if (!isset($target['style']))
$target['style'] = '';
                $target['style'] .= $array['style'];
                unset($array['style']);
            }
            if (isset($array['class'])) {
                if (empty($target['class'])) {
                    $target['class'] = $array['class'];
                } else {
                    $target['class'] .= ' ' .
$array['class'];
                }
                unset($array['class']);
            }

            $target = array_merge($target, $array);
        }

        return $target;
    }

    public static function addExcludeLazyLoadAttributes($target = array())
{

        return self::mergeAttributes($target,
self::getExcludeLazyLoadAttributes());
    }

    public static function getExcludeLazyLoadAttributes() {
        static $attrs;
        if ($attrs === null) {
            $attrs = array(
                'class'          => 'skip-lazy',
                'data-skip-lazy' => 1
            );

            if (defined('JETPACK__VERSION')) {
                $attrs['class'] .= '
jetpack-lazy-image';
            }
        }

        return $attrs;
    }
}PK=,�[��#�YYActivities/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Activities;

use JHtmlSidebar;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\Utils\Html as HtmlUtisl;
use OSL\View\HtmlView;

// no direct access
defined('_JEXEC') or die;

/***
 * @property \OSSolution\HelpdeskPro\Admin\Model\Activities $model
 */
class Html extends HtmlView
{
	protected $lists = [];

	protected function beforeRender()
	{
		$state = $this->model->getState();
		$users = $this->model->getUsers();

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('Select User'), 'id', 'username');
		$options   = array_merge($options, $users);

		$this->lists['filter_user_id']    =
HTMLHelper::_('select.genericlist', $options,
'filter_user_id', 'onchange="submit();"
class="form-select"', 'id', 'username',
$state->filter_user_id);
		$this->lists['filter_start_hour'] =
HTMLHelper::_('select.integerlist', 0, 23, 1,
'filter_start_hour', ' class="input-mini" ',
$state->filter_start_hour);
		$this->lists['filter_end_hour']   =
HTMLHelper::_('select.integerlist', 0, 23, 1,
'filter_end_hour', ' class="input-mini" ',
$state->filter_end_hour);
		$this->data                       = $this->model->getData();

		$userMap = [];

		foreach ($users as $user)
		{
			$userMap[$user->id] = $user->username;
		}

		if (!\HelpdeskproHelper::isJoomla4())
		{
			// Add sidebar
			HtmlUtisl::addSubMenus($this->container->option, $this->name);

			$this->sidebar = JHtmlSidebar::render();
		}
		else
		{
			$this->sidebar = '';
		}

		$this->state   = $state;
		$this->userMap = $userMap;
	}
}PK=,�[�
lN
N
Activities/tmpl/default.phpnu�[���<?php

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;

ToolbarHelper::title(Text::_('Activities Report'),
'generic.png');
?>
<div class="row-fluid">
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
		<form
action="index.php?option=com_helpdeskpro&view=activities"
method="post" name="adminForm"
id="adminForm">
			<div id="filter-bar" class="btn-toolbar">
				<table width="100%">
					<tr style="font-size: 14px !important;">
						<td>
							<?php echo $this->lists['filter_user_id']; ?>
						</td>
						<td>
							<?php echo '<strong>' . Text::_('Start Date:
') . '<strong>' . HTMLHelper::_('calendar',
HTMLHelper::_('date', $this->state->filter_start_date,
'Y-m-d', null), 'filter_start_date',
'filter_start_date', '%Y-%m-%d',
array('class' => 'input-small')); ?>
						</td>
						<td>
							<?php echo '<strong>' . Text::_('End Date:
') . '</strong>' . HTMLHelper::_('calendar',
HTMLHelper::_('date', $this->state->filter_end_date,
'Y-m-d', null), 'filter_end_date',
'filter_end_date', '%Y-%m-%d', array('class'
=> 'input-small')); ?>
						</td>
						<td>
							<?php echo '<strong>' . Text::_('Hour
between ') . '</strong>' .
$this->lists['filter_start_hour'] . '<strong>'
. Text::_('And ') . '</strong>' .
$this->lists['filter_end_hour']; ?>
						</td>
						<td>
							<input type="submit" class="btn btn-primary"
/>
						</td>
					</tr>
				</table>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped">
				<thead>
					<tr>
						<th>
							<?php echo Text::_('HDP_USER'); ?>
						</th>
						<th>
							<?php echo Text::_('Date / Time'); ?>
						</th>
						<th>
							<?php echo Text::_('Category'); ?>
						</th>
						<th>
							<?php echo Text::_('HDP_TICKET'); ?>
						</th>
						<th width="60%">
							<?php echo Text::_('Comment');?>
						</th>
					</tr>
				</thead>
				<tfoot>
					<tr>
						<td colspan="5" style="font-weight: 18px;
text-align: center;">
							<?php echo Text::sprintf('Total activities:
<strong>%s</strong>', count($this->data)); ?>
						</td>
					</tr>
				</tfoot>
				<tbody>
					<?php
						$toDayDate = Factory::getDate('now',
Factory::getConfig()->get('offset'))->format('Y-m-d');
						foreach($this->data as $activity)
						{
						?>
							<tr>
								<td>
									<?php echo $this->userMap[$activity->user_id]; ?>
								</td>
								<td>
									<?php
										if (HTMLHelper::_('date', $activity->date_added,
'Y-m-d') == $toDayDate)
										{
											echo HTMLHelper::_('date', $activity->date_added,
'G:i');
										}
										else
										{
											echo HTMLHelper::_('date', $activity->date_added,
'm-d-Y G:i');
										}
									?>
								</td>
								<td>
									<?php echo $activity->category_title; ?>
								</td>
								<td>
									<a
href="index.php?option=com_helpdeskpro&view=ticket&id=<?php
echo $activity->ticket_id ?>"
target="_blank">#<?php echo $activity->ticket_id;
?></a>
								</td>
								<td>
									<?php echo JHtmlString::truncate($activity->message, 200);
?>
								</td>
							</tr>
						<?php
						}
					?>
				</tbody>
			</table>
		</form>
	</div>
</div>PK=,�[
�YYArticle/Html.phpnu�[���<?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
 */
namespace OSSolution\HelpdeskPro\Admin\View\Article;

use OSL\View\ItemView;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

class Html extends ItemView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$rows = HelpdeskproHelperDatabase::getAllCategories('title',
array(), '', 2);

		$this->lists['category_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->item->category_id,
'category_id', 'class="input-large
form-select"', $rows);
	}
}PK=,�[b�ܶ��Article/tmpl/default.phpnu�[���<?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\Editor\Editor;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;

$editor       =
Editor::getInstance(Factory::getConfig()->get('editor'));
$translatable = Multilanguage::isEnabled() &&
count($this->languages);

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}
?>
<form
action="index.php?option=com_helpdeskpro&view=article"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <?php
        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'article', array('active' =>
'general-page'));
	        echo HTMLHelper::_($tabApiPrefix . 'addTab',
'article', 'general-page',
Text::_('HDP_GENERAL', true));
        }
        ?>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_TITLE'); ?>
            </div>
            <div class="controls">
                <input class="input-xxlarge form-control"
type="text" name="title" id="title"
size="40" maxlength="250"
                       value="<?php echo $this->item->title;
?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_ALIAS'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="alias" id="alias"
size="40" maxlength="250"
                       value="<?php echo $this->item->alias;
?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo  Text::_('HDP_CATEGORY'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['category_id'];
?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_TEXT'); ?>
            </div>
            <div class="controls">
                <?php echo $editor->display('text',
$this->item->text, '100%', '250', '75',
'10'); ?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_PUBLISHED'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['published'];
?>
            </div>
        </div>
        <?php
        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'endTab');
	        echo $this->loadTemplate('translation',
['editor' => $editor]);
	        echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
        }
        ?>
		<?php echo HTMLHelper::_('form.token'); ?>
		<input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
		<input type="hidden" name="task"
value=""/>
</form>PK=,�[5�~"/	/	$Article/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$rootUri = Uri::root();

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

echo HTMLHelper::_($tabApiPrefix . 'addTab', 'article',
'translation-page', Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'item-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'item-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
?>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="input-xxlarge form-control"
type="text" name="title_<?php echo $sef; ?>"
                   id="title_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'title_' . $sef}; ?>"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_ALIAS'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge" type="text"
name="alias_<?php echo $sef; ?>"
                   id="alias_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'alias_' . $sef}; ?>"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_DESCRIPTION'); ?>
        </div>
        <div class="controls">
            <?php echo $editor->display('text_' . $sef,
$this->item->{'text_' . $sef}, '100%',
'250', '75', '10'); ?>
        </div>
    </div>
<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[�^��Articles/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Articles;

use OSL\View\ListView;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

class Html extends ListView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$rows = HelpdeskproHelperDatabase::getAllCategories('title',
array(), '', 2);

		$this->lists['filter_category_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->state->filter_category_id,
'filter_category_id', 'class="input-large
form-select" onchange="submit();"', $rows);
	}
}PK=,�[��u���Articles/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

HTMLHelper::_('bootstrap.tooltip');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

$ordering = ($this->state->filter_order ==
'tbl.ordering');

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=article.save_order_ajax';
	HTMLHelper::_('sortablelist.sortable', 'articlesList',
'adminForm', strtolower($this->state->filter_order_Dir),
$saveOrderingUrl);
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
Factory::getApplication()->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering'
);
?>
<form
action="index.php?option=com_helpdeskpro&view=articles"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_ARTICLES_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_ARTICLES_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_category_id']; ?>
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="articlesList">
				<thead>
				<tr>
					<th width="5">
						<?php echo HTMLHelper::_('searchtools.sort',
'', 'tbl.ordering',
$this->state->filter_order_Dir, $this->state->filter_order,
null, 'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_CATEGORY'), 'b.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="center">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_HITS'), 'b.hits',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="7">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
				<tbody>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = $this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=article&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
						<td class="order nowrap center hidden-phone">
							<?php
							$iconClass = '';
							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
							<span class="sortable-handler<?php echo $iconClass
?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
								<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$row->ordering ?>" class="width-20 text-area-order
"/>
							<?php endif; ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
									<?php echo $row->title; ?>
							</a>
						</td>
						<td>
							<?php echo $row->category_title; ?>
						</td>
						<td class="center">
							<?php echo $row->hits; ?>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<input type="hidden" id="filter_full_ordering"
name="filter_full_ordering" value="" />
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[�T���Categories/Html.phpnu�[���<?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
 */
namespace OSSolution\HelpdeskPro\Admin\View\Categories;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\View\ListView;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

class Html extends ListView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$this->lists['filter_parent_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->state->filter_parent_id,
'filter_parent_id', 'onchange="submit();"
class="form-select"');

		$options   = array();
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_CATEGORY_TYPE'));
		$options[] = HTMLHelper::_('select.option', 1,
Text::_('HDP_TICKETS'));
		$options[] = HTMLHelper::_('select.option', 2,
Text::_('HDP_KNOWLEDGE_BASE'));

		$this->lists['filter_category_type'] =
HTMLHelper::_('select.genericlist', $options,
'filter_category_type', 'onchange="submit();"
class="form-select"', 'value', 'text',
$this->state->filter_category_type);
	}
}PK=,�[6�����Categories/tmpl/default.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

defined('_JEXEC') or die;

HTMLHelper::_('bootstrap.tooltip');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

$ordering = ($this->state->filter_order ==
'tbl.ordering');

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=category.save_order_ajax';

	if (HelpdeskproHelper::isJoomla4())
	{
		\Joomla\CMS\HTML\HTMLHelper::_('draggablelist.draggable');
	}
	else
	{
		HTMLHelper::_('sortablelist.sortable',
'categoryList', 'adminForm',
strtolower($this->state->filter_order_Dir), $saveOrderingUrl, false,
true);
	}
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
$this->container->appConfig->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering'
);
HTMLHelper::_('searchtools.form', '#adminForm',
$customOptions);

$this->ordering = array();

if (count($this->items))
{
	foreach ($this->items as &$item)
	{
		$this->ordering[$item->parent_id][] = $item->id;
	}
}
?>
<form
action="index.php?option=com_helpdeskpro&view=categories"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar
js-stools">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
					       class="element-invisible"><?php echo
Text::_('HDP_SEARCH_CATEGORIES_DESC'); ?></label>
					<input type="text" name="filter_search"
id="filter_search"
					       placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>"
					       value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control"
					       title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_CATEGORIES_DESC');
?>"/>
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
					        title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
							class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
					        title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
					       
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
							class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_parent_id']; ?>
					<?php echo $this->lists['filter_category_type'];
?>
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="categoryList">
				<thead>
				<tr>
					<th width="1%" class="nowrap center
hidden-phone">
						<?php echo HTMLHelper::_('searchtools.sort',
'', 'tbl.ordering',
$this->state->filter_order_Dir, $this->state->filter_order,
null, 'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_CATEGORY_TYPE'), 'tbl.category_type',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title" width="15%">
						<?php echo Text::_('HDP_NUMBER_TICKETS'); ?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="7">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
                <tbody <?php if ($ordering) :?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($listDirn); ?>" data-nested="false"<?php
endif; ?>>
				<?php
				$k             = 0;
				$categoryTypes = array(
					0 => Text::_('HDP_BOTH'),
					1 => Text::_('HDP_TICKETS'),
					2 => Text::_('HDP_KNOWLEDGE_BASE'),
				);
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = $this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=category&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);

					// Get the parents of item for sorting
					if ($row->level > 1)
					{
						$parentsStr = "";
						$_currentParentId = $row->parent_id;
						$parentsStr = " " . $_currentParentId;
						for ($i2 = 0; $i2 < $row->level; $i2++)
						{
							foreach ($this->ordering as $k => $v)
							{
								$v = implode("-", $v);
								$v = "-" . $v . "-";
								if (strpos($v, "-" . $_currentParentId . "-")
!== false)
								{
									$parentsStr .= " " . $k;
									$_currentParentId = $k;
									break;
								}
							}
						}
					}
					else
					{
						$parentsStr = "";
					}

					if (HelpdeskproHelper::isJoomla4())
                    {
                    ?>
                        <tr class="row<?php echo $i % 2;
?>" data-draggable-group="<?php echo $row->parent_id;
?>" item-id="<?php echo $row->id ?>"
parents="<?php echo $parentsStr ?>" level="<?php
echo $row->level ?>">
                    <?php
                    }
					else
                    {
                    ?>
                        <tr class="row<?php echo $i % 2;
?>" sortable-group-id="<?php echo $row->parent_id;
?>" item-id="<?php echo $row->id ?>"
parents="<?php echo $parentsStr ?>" level="<?php
echo $row->level ?>">
                    <?php
                    }
					?>
						<td class="order nowrap center hidden-phone">
							<?php
							$iconClass = '';

							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
							<span class="sortable-handler<?php echo $iconClass
?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
								<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$row->ordering ?>" class="width-20 text-area-order
"/>
							<?php endif; ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
								<?php echo $row->treename; ?>
							</a>
						</td>
						<td>
							<?php echo $categoryTypes[$row->category_type]; ?>
						</td>
						<td class="center">
							<?php echo $row->total_tickets; ?>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<input type="hidden" id="filter_full_ordering"
name="filter_full_ordering" value=""/>
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[(XIMqqCategory/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Category;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\View\ItemView;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

// no direct access
defined('_JEXEC') or die;

class Html extends ItemView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$db    = $this->container->db;
		$query = $db->getQuery(true)
			->select('*')
			->from('#__helpdeskpro_categories')
			->order('title');
		$db->setQuery($query);
		$rows = $db->loadObjectList();

		$this->lists['parent_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->item->parent_id,
'parent_id', 'class="form-select"', $rows);

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_BOTH'));
		$options[] = HTMLHelper::_('select.option', 1,
Text::_('HDP_TICKETS'));
		$options[] = HTMLHelper::_('select.option', 2,
Text::_('HDP_KNOWLEDGE_BASE'));

		$this->lists['category_type'] =
HTMLHelper::_('select.genericlist', $options,
'category_type', 'class="form-select"',
'value', 'text', $this->item->category_type);
	}
}PK=,�[C�n�Category/tmpl/default.phpnu�[���<?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\Editor\Editor;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

$editor       =
Editor::getInstance(Factory::getConfig()->get('editor'));
$translatable = Multilanguage::isEnabled() &&
count($this->languages);
?>
<form
action="index.php?option=com_helpdeskpro&view=category"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
		<?php
        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'category', array('active' =>
'general-page'));
	        echo HTMLHelper::_($tabApiPrefix . 'addTab',
'category', 'general-page',
Text::_('HDP_GENERAL', true));
        }
        ?>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_TITLE'); ?>
                </div>
                <div class="controls">
                    <input class="form-control"
type="text" name="title" id="title"
size="40" maxlength="250"
                           value="<?php echo
$this->item->title; ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_ALIAS'); ?>
                </div>
                <div class="controls">
                    <input class="form-control"
type="text" name="alias" id="alias"
size="40" maxlength="250"
                           value="<?php echo
$this->item->alias; ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_PARENT_CATEGORY');
?>
                </div>
                <div class="controls">
                    <?php echo $this->lists['parent_id'];
?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_ACCESS_LEVEL');
?>
                </div>
                <div class="controls">
                    <?php echo $this->lists['access'];
?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_MANAGERS'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="managers" class="form-control input-xxlarge"
                           value="<?php echo
$this->item->managers; ?>"
                           placeholder="<?php echo
Text::_('HDP_MANAGERS_EXPLAIN'); ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_DESCRIPTION');
?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('description',
$this->item->description, '100%', '250',
'75', '10'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_CATEGORY_TYPE');
?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['category_type']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo Text::_('HDP_PUBLISHED');
?>
                </div>
                <div class="controls">
                    <?php echo $this->lists['published'];
?>
                </div>
            </div>
        <?php

        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'endTab');
	        echo $this->loadTemplate('translation',
['editor' => $editor]);
	        echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
        }
		?>
		<?php echo HTMLHelper::_('form.token'); ?>
		<input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
		<input type="hidden" name="task"
value=""/>
</form>PK=,�[_<�74	4	%Category/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$rootUri = Uri::root();

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

echo HTMLHelper::_($tabApiPrefix . 'addTab',
'category', 'translation-page',
Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'item-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'item-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
?>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge" type="text"
name="title_<?php echo $sef; ?>"
                   id="title_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'title_' . $sef}; ?>"/>
        </div>
    </div>

    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_ALIAS'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge" type="text"
name="alias_<?php echo $sef; ?>"
                   id="alias_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'alias_' . $sef}; ?>"/>
        </div>
    </div>

    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_DESCRIPTION'); ?>
        </div>
        <div class="controls">
            <?php echo $editor->display('description_' .
$sef, $this->item->{'description_' . $sef},
'100%', '250', '75', '10'); ?>
        </div>
    </div>
<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[�[*��Configuration/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Configuration;

use Joomla\CMS\Editor\Editor;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\PluginHelper;
use OSL\View\HtmlView;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskproHelper;

defined('_JEXEC') or die;

class Html extends HtmlView
{
	protected function beforeRender()
	{
		jimport('joomla.filesystem.folder');

		$config = HelpdeskproHelper::getConfig();

		$languages = [
			'Php',
			'JScript',
			'Css',
			'Xml',
			'Plain',
			'AS3',
			'Bash',
			'Cpp',
			'CSharp',
			'Delphi',
			'Diff',
			'Groovy',
			'Java',
			'JavaFX',
			'Perl',
			'PowerShell',
			'Python',
			'Ruby',
			'Scala',
			'Sql',
			'Vb',
		];

		$options = [];

		foreach ($languages as $language)
		{
			$options[] = HTMLHelper::_('select.option', $language,
$language);
		}

		$lists['programming_languages'] =
HTMLHelper::_('select.genericlist', $options,
'programming_languages[]', ' class="form-select"
multiple="multiple" ', 'value', 'text',
explode(',', $config->programming_languages));

		$statuses                      =
HelpdeskproHelperDatabase::getAllStatuses();
		$options                       = [];
		$options[]                     = HTMLHelper::_('select.option',
0, Text::_('HDP_SELECT'), 'id', 'title');
		$options                       = array_merge($options, $statuses);
		$lists['new_ticket_status_id'] =
HTMLHelper::_('select.genericlist', $options,
'new_ticket_status_id',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select"',
				'list.select'        =>
$config->new_ticket_status_id]);

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_DONOT_CHANGE'), 'id', 'title');
		$options   = array_merge($options, $statuses);

		$lists['ticket_status_when_customer_add_comment'] =
HTMLHelper::_('select.genericlist', $options,
'ticket_status_when_customer_add_comment',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select" ',
				'list.select'        =>
$config->ticket_status_when_customer_add_comment]);

		$lists['ticket_status_when_admin_add_comment'] =
HTMLHelper::_('select.genericlist', $options,
'ticket_status_when_admin_add_comment',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select" ',
				'list.select'        =>
$config->ticket_status_when_admin_add_comment]);

		$lists['closed_ticket_status'] =
HTMLHelper::_('select.genericlist', $options,
'closed_ticket_status',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select"',
				'list.select'        =>
$config->closed_ticket_status]);

		if ($config->manager_default_status_filters)
		{
			$statusFilters = explode(',',
$config->manager_default_status_filters);
		}
		else
		{
			$statusFilters = [$config->new_ticket_status_id,
$config->ticket_status_when_customer_add_comment];
		}

		$lists['manager_default_status_filters'] =
HTMLHelper::_('select.genericlist', $statuses,
'manager_default_status_filters[]',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select" multiple',
				'list.select'        => $statusFilters]);


		$options                             = [];
		$options[]                           =
HTMLHelper::_('select.option', 0,
Text::_('HDP_SELECT'), 'id', 'title');
		$options                             = array_merge($options,
HelpdeskproHelperDatabase::getAllPriorities());
		$lists['default_ticket_priority_id'] =
HTMLHelper::_('select.genericlist', $options,
'default_ticket_priority_id',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'title',
				'option.key'         => 'id',
				'list.attr'          =>
'class="form-select"',
				'list.select'        =>
$config->default_ticket_priority_id]);

		$options                    = [];
		$options[]                  = HTMLHelper::_('select.option', 0,
Text::_('Select'));
		$options[]                  = HTMLHelper::_('select.option',
'1', Text::_('Byte'));
		$options[]                  = HTMLHelper::_('select.option',
'2', Text::_('Kb'));
		$options[]                  = HTMLHelper::_('select.option',
'3', Text::_('Mb'));
		$lists['max_filesize_type'] =
HTMLHelper::_('select.genericlist', $options,
'max_filesize_type', 'class="input-small form-select
d-inline"', 'value', 'text',
$config->max_filesize_type ? $config->max_filesize_type : 3);

		$options = [];

		if (!HelpdeskproHelper::isJoomla4())
		{
			$options[] = HTMLHelper::_('select.option', 2,
Text::_('HDP_VERSION_2'));
			$options[] = HTMLHelper::_('select.option', 3,
Text::_('HDP_VERSION_3'));
		}

		$options[] = HTMLHelper::_('select.option', 4,
Text::_('HDP_VERSION_4'));
		$options[] = HTMLHelper::_('select.option', 5,
Text::_('HDP_VERSION_5'));
		$options[] = HTMLHelper::_('select.option', 'uikit3',
Text::_('HDP_UIKIT_3'));

		// Get extra UI options
		$files = Folder::files(JPATH_ADMINISTRATOR .
'/components/com_helpdeskpro/libraries/ui', '.php');

		foreach ($files as $file)
		{
			if (in_array($file, ['abstract.php',
'bootstrap2.php', 'uikit3.php',
'bootstrap3.php', 'bootstrap4.php',
'bootstrap5.php', 'interface.php']))
			{
				continue;
			}

			$file      = str_replace('.php', '', $file);
			$options[] = HTMLHelper::_('select.option', $file,
ucfirst($file));
		}

		$lists['twitter_bootstrap_version'] =
HTMLHelper::_('select.genericlist', $options,
'twitter_bootstrap_version',
'class="form-select"', 'value',
'text', $config->get('twitter_bootstrap_version',
2));

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('JNO'));
		$options[] = HTMLHelper::_('select.option', '1',
Text::_('JYES'));
		$options[] = HTMLHelper::_('select.option', '2',
Text::_('HDP_FOR_PUBLIC_USERS_ONLY'));

		$lists['enable_captcha'] =
HTMLHelper::_('select.genericlist', $options,
'enable_captcha',
			[
				'option.text.toHtml' => false,
				'list.attr'          =>
'class="form-select"',
				'list.select'        => $config->enable_captcha]);

		$options   = [];
		$options[] = HTMLHelper::_('select.option', '',
Text::_('HDP_STAFF_DISPLAY_FIELD'));
		$options[] = HTMLHelper::_('select.option',
'username', Text::_('Username'));
		$options[] = HTMLHelper::_('select.option', 'email',
Text::_('Email'));
		$options[] = HTMLHelper::_('select.option', 'name',
Text::_('Name'));

		$lists['staff_display_field'] =
HTMLHelper::_('select.genericlist', $options,
'staff_display_field',
			[
				'option.text.toHtml' => false,
				'list.attr'          =>
'class="form-select"',
				'list.select'        =>
$config->get('staff_display_field', 'username')]);

		$editorPlugin = '';

		if (PluginHelper::isEnabled('editors',
'codemirror'))
		{
			$editorPlugin = 'codemirror';
		}
		elseif (PluginHelper::isEnabled('editor', 'none'))
		{
			$editorPlugin = 'none';
		}

		if ($editorPlugin)
		{
			$this->editor = Editor::getInstance($editorPlugin);
		}
		else
		{
			$this->editor = null;
		}

		$this->lists  = $lists;
		$this->config = $config;
	}
}PK=,�[���A�AConfiguration/tmpl/default.phpnu�[���<?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
 */

use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;
use OSL\Utils\Html as HtmlUtils;

defined('_JEXEC') or die;

HTMLHelper::_('bootstrap.tooltip');
$document = Factory::getDocument();
$document->addStyleDeclaration(".hasTip{display:block
!important}");

ToolbarHelper::title(Text::_('Configuration'),
'generic.png');
ToolbarHelper::apply('apply', 'JTOOLBAR_APPLY');
ToolbarHelper::save('save');
ToolbarHelper::cancel('cancel');

if (Factory::getUser()->authorise('core.admin',
'com_helpdeskpro'))
{
	ToolbarHelper::preferences('com_helpdeskpro');
}

$config = $this->config;

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}
?>
<form
action="index.php?option=com_helpdeskpro&view=configuration"
method="post" name="adminForm" id="adminForm"
class="form-horizontal hdp-configuration">
    <?php
        echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'configuration', array('active' =>
'general-page'));
        echo HTMLHelper::_($tabApiPrefix . 'addTab',
'configuration', 'general-page',
Text::_('HDP_GENERAL', true));
    ?>
    <div class="span6">
        <fieldset class="form-horizontal">
            <legend><?php echo
Text::_('HDP_GENERAL_SETTINGS'); ?></legend>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('download_id',
Text::_('HDP_DOWNLOAD_ID'),
Text::_('HDP_DOWNLOAD_ID_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="download_id" class="input-xlarge form-control"
value="<?php echo $config->download_id; ?>"
size="60" />
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('allow_public_user_submit_ticket',
Text::_('HDP_ALLOW_PUBLIC_USER_SUBMIT_TICKETS')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('allow_public_user_submit_ticket',
$config->allow_public_user_submit_ticket); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('load_twttier_bootstrap_framework_in_frontend',
Text::_('HDP_LOAD_TWITTER_BOOTSTRAP_FRAMEWORK'),
Text::_('HDP_LOAD_TWITTER_BOOTSTRAP_FRAMEWORK_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('load_twttier_bootstrap_framework_in_frontend',
$config->load_twttier_bootstrap_framework_in_frontend); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('twitter_bootstrap_version',
Text::_('HDP_TWITTER_BOOTSTRAP_VERSION'),
Text::_('HDP_TWITTER_BOOTSTRAP_VERSION_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['twitter_bootstrap_version'];?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('enable_captcha',
Text::_('HDP_ENABLE_CAPTCHA')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['enable_captcha']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('use_html_editor',
Text::_('HDP_USE_HTML_EDITOR'),
Text::_('HDP_USE_HTML_EDITOR_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('use_html_editor',
$config->use_html_editor); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('date_format',
Text::_('HDP_DATE_FORMAT')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="date_format" value="<?php echo
$config->date_format; ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('default_ticket_priority_id',
Text::_('HDP_DEFAULT_TICKET_PRIORITY')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['default_ticket_priority_id']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('new_ticket_status_id',
Text::_('HDP_NEW_TICKET_STATUS')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['new_ticket_status_id']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('ticket_status_when_customer_add_comment',
Text::_('HDP_TICKET_STATUS_WHEN_CUSTOMER_ADD_COMMENT')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['ticket_status_when_customer_add_comment'];
?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('ticket_status_when_admin_add_comment',
Text::_('HDP_TICKET_STATUS_WHEN_ADMIN_ADD_COMMENT')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['ticket_status_when_admin_add_comment']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('closed_ticket_status',
Text::_('HDP_CLOSED_TICKET_STATUS')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['closed_ticket_status']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
			        <?php echo
HtmlUtils::getFieldLabel('manager_default_status_filters',
Text::_('HDP_MANAGER_DEFAULT_STATUS_FILTERS'),
Text::_('HDP_MANAGER_DEFAULT_STATUS_FILTERS_EXPLAIN')); ?>
                </div>
                <div class="controls">
			        <?php echo
$this->lists['manager_default_status_filters']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('enable_attachment',
Text::_('HDP_ENABLE_ATTACHMENT'),
Text::_('HDP_ENABLE_ATTACHMENT_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('enable_attachment',
$config->enable_attachment); ?>
                </div>
            </div>
	        <div class="control-group">
		        <div class="control-label">
			        <?php echo
HtmlUtils::getFieldLabel('enable_rating',
Text::_('HDP_ENABLE_RATING'),
Text::_('HDP_ENABLE_RATING_EXPLAIN')); ?>
		        </div>
		        <div class="controls">
			        <?php echo
HtmlUtils::getBooleanInput('enable_rating',
$config->get('enable_rating', 1)); ?>
		        </div>
	        </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('allowed_file_types',
Text::_('HDP_ALLOWED_FILE_TYPES')); ?>
                </div>
                <div class="controls">
                    <input type="text"
class="form-control" name="allowed_file_types"
size="30"
                           value="<?php echo
$config->allowed_file_types; ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('max_number_attachments',
Text::_('HDP_MAX_NUMBER_ATTACHMENS_PER_MESSAGE')); ?>
                </div>
                <div class="controls">
                    <input type="text" class="input-small
form-control" name="max_number_attachments"
size="30"
                           value="<?php echo
$config->max_number_attachments ? $config->max_number_attachments :
3; ?>"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('max_filesize_type',
Text::_('HDP_MAX_UPLOAD_FILE_SIZE'),
Text::_('HDP_MAX_UPLOAD_FILE_SIZE_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="max_file_size" class="input-mini form-control
d-inline" value="<?php echo
$this->config->max_file_size; ?>" size="5" />
                    <?php echo
$this->lists['max_filesize_type'] ;
?>&nbsp;&nbsp;&nbsp;<?php echo
Text::_('HDP_DEFAULT_INI_SETTING'); ?>: <strong><?php
echo ini_get('upload_max_filesize'); ?></strong>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('process_bb_code',
Text::_('HDP_PROCESS_BBCODE')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('process_bb_code',
$config->process_bb_code); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('highlight_code',
Text::_('HDP_HIGHTLIGHT_CODE')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('highlight_code',
$config->highlight_code); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('programming_languages',
Text::_('HDP_PROGRAMING_LANGUAGES'),
Text::_('HDP_PROGRAMING_LANGUAGES_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
$this->lists['programming_languages']; ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('staff_group_id',
Text::_('HDP_STAFF_GROUP'),
Text::_('HDP_STAFF_GROUP_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HTMLHelper::_('access.usergroup', 'staff_group_id',
$config->staff_group_id, 'class="form-select"');
?>
                </div>
            </div>
	        <div class="control-group">
		        <div class="control-label">
			        <?php echo
HtmlUtils::getFieldLabel('staff_group_id',
Text::_('HDP_STAFF_DISPLAY_FIELD'),
Text::_('HDP_STAFF_DISPLAY_FIELD_EXPLAIN')); ?>
		        </div>
		        <div class="controls">
			        <?php echo $this->lists['staff_display_field'];
?>
		        </div>
	        </div>
        </fieldset>
    </div>
    <div class="span6">
        <fieldset class="form-horizontal">
            <legend><?php echo
Text::_('HDP_EMAIL_SETTINGS'); ?></legend>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('from_name',
Text::_('HDP_FROM_NAME'),
Text::_('HDP_FROM_NAME_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="from_name" class="form-control"
value="<?php echo $config->from_name; ?>"
                           size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('from_email',
Text::_('HDP_FROM_EMAIL'),
Text::_('HDP_FROM_EMAIL_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="from_email" class="form-control"
                           value="<?php echo
$config->from_email; ?>" size="50"/>
                </div>
            </div>
	        <div class="control-group">
		        <div class="control-label">
			        <?php echo HtmlUtils::getFieldLabel('from_email',
Text::_('HDP_REPLY_TO_EMAIL'),
Text::_('HDP_REPLY_TO_EMAIL_EXPLAIN')); ?>
		        </div>
		        <div class="controls">
			        <input type="text" name="reply_to_email"
class="form-control"
			               value="<?php echo $config->reply_to_email;
?>" size="50"/>
		        </div>
	        </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('notification_emails',
Text::_('HDP_NOTIFICATION_EMAILS'),
Text::_('HDP_NOTIFICATION_EMAILS_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="notification_emails" class="form-control"
                           value="<?php echo
$config->notification_emails; ?>" size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('notify_manager_when_staff_reply',
Text::_('HDP_NOTIFY_MANAGER_WHEN_STAFF_REPLY'),
Text::_('HDP_NOTIFY_MANAGER_WHEN_STAFF_REPLY_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('notify_manager_when_staff_reply',
$config->notify_manager_when_staff_reply); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
			        <?php echo
HtmlUtils::getFieldLabel('notify_other_managers_when_a_manager_reply',
Text::_('HDP_NOTIFY_OTHER_MANAGERS_WHEN_A_MANAGER_REPLY'),
Text::_('HDP_NOTIFY_OTHER_MANAGERS_WHEN_A_MANAGER_REPLY_EXPLAIN'));
?>
                </div>
                <div class="controls">
			        <?php echo
HtmlUtils::getBooleanInput('notify_other_managers_when_a_manager_reply',
$config->notify_other_managers_when_a_manager_reply); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('notify_staff_when_customer_reply',
Text::_('HDP_NOTIFY_STAFF_WHEN_CUSTOMER_REPLY'),
Text::_('HDP_NOTIFY_STAFF_WHEN_CUSTOMER_REPLY_EXPLAIN')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('notify_staff_when_customer_reply',
$config->notify_staff_when_customer_reply); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
HtmlUtils::getFieldLabel('send_ticket_attachments_to_email',
Text::_('HDP_SEND_ATTACHMENTS_TO_EMAIL')); ?>
                </div>
                <div class="controls">
                    <?php echo
HtmlUtils::getBooleanInput('send_ticket_attachments_to_email',
$config->send_ticket_attachments_to_email); ?>
                </div>
            </div>
        </fieldset>
    </div>

	<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');

	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'configuration', 'api-page',
Text::_('HDP_API_SETTINGS', true));
	echo $this->loadTemplate('api');
	echo HTMLHelper::_($tabApiPrefix . 'endTab');

	if ($this->editor)
	{
		echo $this->loadTemplate('custom_css');
	}

	echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
	?>
	<div class="clearfix"></div>
	<input type="hidden" name="task"
value=""/>
</form>PK=,�[�:�Z��"Configuration/tmpl/default_api.phpnu�[���<?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
 */

use Joomla\CMS\Language\Text;
use OSL\Utils\Html as HtmlUtils;

?>
<div class="control-group">
	<div class="control-label">
		<?php echo HtmlUtils::getFieldLabel('enable_api',
Text::_('HDP_ENABLE_API'),
Text::_('HDP_ENABLE_API_EXPLAIN')); ?>
	</div>
	<div class="controls">
		<?php echo HtmlUtils::getBooleanInput('enable_api',
$this->config->get('enable_api', 0)); ?>
	</div>
</div>
<div class="control-group">
	<div class="control-label">
		<?php echo HtmlUtils::getFieldLabel('api_key',
Text::_('HDP_API_KEY'),
Text::_('HDP_API_KEY_EXPLAIN')); ?>
	</div>
	<div class="controls">
		<input type="text" name="api_key"
class="input-xlarge form-control" value="<?php echo
$this->config->api_key; ?>" />
	</div>
</div>
PK=,�[�c����)Configuration/tmpl/default_custom_css.phpnu�[���<?php
/**
 * @package            Joomla
 * @subpackage         Event Booking
 * @author             Tuan Pham Ngoc
 * @copyright          Copyright (C) 2010 - 2020 Ossolution Team
 * @license            GNU/GPL, see LICENSE.php
 */
defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

if (!empty($this->editor))
{
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'configuration', 'custom-css',
Text::_('HDP_CUSTOM_CSS', true));

	$customCss = '';

	if (file_exists(JPATH_ROOT .
'/media/com_helpdeskpro/assets/css/custom.css'))
	{
		$customCss = file_get_contents(JPATH_ROOT .
'/media/com_helpdeskpro/assets/css/custom.css');
	}

	echo $this->editor->display('custom_css', $customCss,
'100%', '550', '75', '8', false,
null, null, null, array('syntax' => 'css'));

	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}PK=,�[8 ��Email/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Email;

use OSL\View\HtmlView;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskproHelper;

defined('_JEXEC') or die;

class Html extends HtmlView
{
	/**
	 * Prepare data before rendering the view
	 *
	 */
	protected function beforeRender()
	{
		$this->item      = HelpdeskproHelper::getEmailMessages();
		$this->languages = HelpdeskproHelper::getLanguages();
	}
}PK=,�[�'Q9m,m,Email/tmpl/default.phpnu�[���<?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\Editor\Editor;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;

ToolbarHelper::title(Text::_('Email Messages'),
'generic.png');
ToolbarHelper::apply('apply', 'JTOOLBAR_APPLY');
ToolbarHelper::save('save');
ToolbarHelper::cancel('cancel');

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

$translatable = Multilanguage::isEnabled() &&
count($this->languages);
$editor       =
Editor::getInstance(Factory::getConfig()->get('editor'));
?>
<form action="index.php?option=com_helpdeskpro&view=email"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <?php
        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'email', array('active' =>
'general-page'));
	        echo HTMLHelper::_($tabApiPrefix . 'addTab',
'email', 'general-page',
Text::_('HDP_GENERAL', true));
        }
        ?>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_NEW_TICKET_ADMIN_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="new_ticket_admin_email_subject" class="input-xxlarge
form-control"
                           value="<?php echo
$this->item->new_ticket_admin_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_NEW_TICKET_ADMIN_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('new_ticket_admin_email_body',
$this->item->new_ticket_admin_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_NEW_TICKET_USER_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="new_ticket_user_email_subject" class="input-xxlarge
form-control"
                           value="<?php echo
$this->item->new_ticket_user_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_NEW_TICKET_USER_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('new_ticket_user_email_body',
$this->item->new_ticket_user_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_UPDATED_ADMIN_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="ticket_updated_admin_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->ticket_updated_admin_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_UPDATED_ADMIN_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('ticket_updated_admin_email_body',
$this->item->ticket_updated_admin_email_body, '100%',
'250', '75', '8'); ?>
                </div>
                <div class="controls">
                    <strong><?php echo
Text::_('HDP_AVAILABLE_TAGS'); ?></strong>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_UPDATED_USER_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="ticket_updated_user_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->ticket_updated_user_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_UPDATED_USER_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('ticket_updated_user_email_body',
$this->item->ticket_updated_user_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_ASSIGN_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="ticket_assiged_email_subject" class="input-xxlarge
form-control"
                           value="<?php echo
$this->item->ticket_assiged_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_TICKET_ASSIGN_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('ticket_assiged_email_body',
$this->item->ticket_assiged_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_ASSIGN_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="customer_ticket_assigned_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->customer_ticket_assigned_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_ASSIGN_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('customer_ticket_assigned_email_body',
$this->item->customer_ticket_assigned_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_CLOSED_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="customer_ticket_closed_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->customer_ticket_closed_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_CLOSED_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('customer_ticket_closed_email_body',
$this->item->customer_ticket_closed_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_MANAGER_TICKET_CLOSED_EMAIL_SUBJECT'); ?>
                </div>
                <div class="controls">
                    <input type="text"
name="manager_ticket_closed_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->manager_ticket_closed_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_MANAGER_TICKET_CLOSED_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('manager_ticket_closed_email_body',
$this->item->manager_ticket_closed_email_body, '100%',
'250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_STATUS_CHANGED_EMAIL_SUBJECT');
?>
                </div>
                <div class="controls">
                    <input type="text"
name="customer_ticket_status_changed_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->customer_ticket_status_changed_email_subject;
?>" size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_CUSTOMER_TICKET_STATUS_CHANGED_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('customer_ticket_status_changed_email_body',
$this->item->customer_ticket_status_changed_email_body,
'100%', '250', '75', '8'); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_MANAGER_TICKET_STATUS_CHANGED_EMAIL_SUBJECT');
?>
                </div>
                <div class="controls">
                    <input type="text"
name="manager_ticket_status_changed_email_subject"
class="input-xxlarge form-control"
                           value="<?php echo
$this->item->manager_ticket_status_changed_email_subject; ?>"
size="50"/>
                </div>
            </div>
            <div class="control-group">
                <div class="control-label">
                    <?php echo
Text::_('HDP_MANAGER_TICKET_STATUS_CHANGED_EMAIL_BODY'); ?>
                </div>
                <div class="controls">
                    <?php echo
$editor->display('manager_ticket_status_changed_email_body',
$this->item->manager_ticket_status_changed_email_body,
'100%', '250', '75', '8'); ?>
                </div>
            </div>
        <?php

        if ($translatable)
        {
	        echo HTMLHelper::_($tabApiPrefix . 'endTab');
	        echo $this->loadTemplate('translation',
['editor' => $editor]);
	        echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
        }
        ?>
		<input type="hidden" name="task"
value=""/>
	    <?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[do=6)6)"Email/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$rootUri = Uri::root();

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

echo HTMLHelper::_($tabApiPrefix . 'addTab', 'email',
'translation-page', Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'email-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'email-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
	?>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_NEW_TICKET_ADMIN_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php
			$fieldName = 'new_ticket_admin_email_subject_' . $sef;
			?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_NEW_TICKET_ADMIN_EMAIL_BODY');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'new_ticket_admin_email_body_' . $sef;
?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_NEW_TICKET_USER_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'new_ticket_user_email_subject_' . $sef;
?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_NEW_TICKET_USER_EMAIL_BODY');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'new_ticket_user_email_body_' . $sef;
?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_TICKET_UPDATED_ADMIN_EMAIL_SUBJECT'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_updated_admin_email_subject_' .
$sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_UPDATED_ADMIN_EMAIL_BODY');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_updated_admin_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_TICKET_UPDATED_USER_EMAIL_SUBJECT'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_updated_user_email_subject_' .
$sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_UPDATED_USER_EMAIL_BODY');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_updated_user_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_ASSIGN_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_assiged_email_subject_' . $sef;
?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_ASSIGN_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'ticket_assiged_email_body_' . $sef;
?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_ASSIGN_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php $fieldName =
'customer_ticket_assigned_email_subject_' . $sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TICKET_ASSIGN_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'customer_ticket_assigned_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_ASSIGN_EMAIL_SUBJECT'); ?>
        </div>
        <div class="controls">
			<?php $fieldName =
'customer_ticket_assigned_email_subject_' . $sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_ASSIGN_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'customer_ticket_assigned_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_CLOSED_EMAIL_SUBJECT'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'customer_ticket_closed_email_subject_'
. $sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_CLOSED_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'customer_ticket_closed_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_MANAGER_TICKET_CLOSED_EMAIL_SUBJECT'); ?>
        </div>
        <div class="controls">
			<?php $fieldName = 'manager_ticket_closed_email_subject_' .
$sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_MANAGER_TICKET_CLOSED_EMAIL_BODY');
?>
        </div>
        <div class="controls">
			<?php $fieldName = 'manager_ticket_closed_email_body_' .
$sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_STATUS_CHANGED_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php $fieldName =
'customer_ticket_status_changed_email_subject_' . $sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_CUSTOMER_TICKET_STATUS_CHANGED_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName =
'customer_ticket_status_changed_email_body_' . $sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_MANAGER_TICKET_STATUS_CHANGED_EMAIL_SUBJECT');
?>
        </div>
        <div class="controls">
			<?php $fieldName =
'manager_ticket_status_changed_email_subject_' . $sef; ?>
            <input type="text" name="<?php echo
$fieldName; ?>" class="input-xxlarge form-control"
                   value="<?php echo
$this->item->{$fieldName}; ?>" size="50"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo
Text::_('HDP_MANAGER_TICKET_STATUS_CHANGED_EMAIL_BODY'); ?>
        </div>
        <div class="controls">
			<?php $fieldName =
'manager_ticket_status_changed_email_body_' . $sef; ?>
			<?php echo $editor->display($fieldName,
$this->item->{$fieldName}, '100%', '250',
'75', '8'); ?>
        </div>
    </div>
	<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[����Field/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Field;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\View\ItemView;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;

defined('_JEXEC') or die;

class Html extends ItemView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$fieldTypes = [
			'Text',
			'Textarea',
			'List',
			'Checkboxes',
			'Radio',
			'Date',
			'Heading',
			'Message',
		];

		$options   = [];
		$options[] = HTMLHelper::_('select.option', -1,
Text::_('HDP_FIELD_TYPE'));

		foreach ($fieldTypes as $fieldType)
		{
			$options[] = HTMLHelper::_('select.option', $fieldType,
$fieldType);
		}

		$this->lists['fieldtype'] =
HTMLHelper::_('select.genericlist', $options,
'fieldtype', 'class="form-select"',
'value', 'text', $this->item->fieldtype);

		$rows     = HelpdeskproHelperDatabase::getAllCategories();
		$children = [];

		if ($rows)
		{
			// first pass - collect children
			foreach ($rows as $v)
			{
				$pt   = (int) $v->parent_id;
				$list = @$children[$pt] ? $children[$pt] : [];
				array_push($list, $v);
				$children[$pt] = $list;
			}
		}

		$list      = HTMLHelper::_('menu.treerecurse', 0, '',
[], $children, 9999, 0, 0);
		$options   = [];
		$options[] = HTMLHelper::_('select.option', -1,
Text::_('HDP_ALL_CATEGORIES'));

		foreach ($list as $listItem)
		{
			$options[] = HTMLHelper::_('select.option', $listItem->id,
$listItem->treename);
		}

		$selectedCategories = [-1];

		if ($this->item->id && $this->item->category_id !=
-1)
		{
			$db    = $this->container->db;
			$query = $db->getQuery(true);
			$query->select('category_id')
				->from('#__helpdeskpro_field_categories')
				->where('field_id = ' . $this->item->id);
			$db->setQuery($query);
			$selectedCategories = $db->loadColumn();
			$query->clear();
		}

		$this->lists['category_id'] =
HTMLHelper::_('select.genericlist', $options,
'category_id[]',
			[
				'option.text.toHtml' => false,
				'option.text'        => 'text',
				'option.value'       => 'value',
				'list.attr'          =>
'multiple="multiple" size="6"
class="form-select"',
				'list.select'        => $selectedCategories]);

		$options                          = [];
		$options[]                        =
HTMLHelper::_('select.option', 1, Text::_('Yes'));
		$options[]                        =
HTMLHelper::_('select.option', 2, Text::_('No'));
		$this->lists['required']          =
HTMLHelper::_('select.booleanlist', 'required', '
class="form-select" ', $this->item->required);
		$this->lists['show_in_list_view'] =
HTMLHelper::_('select.booleanlist',
'show_in_list_view', ' class="form-select" ',
$this->item->show_in_list_view);

		$options                            = [];
		$options[]                          =
HTMLHelper::_('select.option', 0, Text::_('None'));
		$options[]                          =
HTMLHelper::_('select.option', 1, Text::_('Integer
Number'));
		$options[]                          =
HTMLHelper::_('select.option', 2, Text::_('Number'));
		$options[]                          =
HTMLHelper::_('select.option', 3, Text::_('Email'));
		$options[]                          =
HTMLHelper::_('select.option', 4, Text::_('Url'));
		$options[]                          =
HTMLHelper::_('select.option', 5, Text::_('Phone'));
		$options[]                          =
HTMLHelper::_('select.option', 6, Text::_('Past
Date'));
		$options[]                          =
HTMLHelper::_('select.option', 7, Text::_('Ip'));
		$options[]                          =
HTMLHelper::_('select.option', 8, Text::_('Min
size'));
		$options[]                          =
HTMLHelper::_('select.option', 9, Text::_('Max
size'));
		$options[]                          =
HTMLHelper::_('select.option', 10, Text::_('Min
integer'));
		$options[]                          =
HTMLHelper::_('select.option', 11, Text::_('Max
integer'));
		$this->lists['datatype_validation'] =
HTMLHelper::_('select.genericlist', $options,
'datatype_validation', 'class="form-select"',
'value', 'text',
			$this->item->datatype_validation);

		$this->lists['multiple'] =
HTMLHelper::_('select.booleanlist', 'multiple', '
class="form-select" ', $this->item->multiple);
	}
}PK=,�[�F�#�#Field/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
use OSL\Utils\Html as HtmlUtils;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskProHelper;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

HTMLHelper::_('behavior.core');
HTMLHelper::_('jquery.framework');

if (HelpdeskProHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
	HTMLHelper::_('script', 'system/showon.js',
array('version' => 'auto', 'relative'
=> true));
}
else
{
	$tabApiPrefix = 'bootstrap.';
	HTMLHelper::_('script', 'jui/cms.js', false, true);
}

HTMLHelper::_('bootstrap.tooltip');

$translatable = Multilanguage::isEnabled() &&
count($this->languages);

$document = Factory::getDocument();
$document->addStyleDeclaration(".hasTip{display:block
!important}");
$document->addScript(Uri::root(true).'/media/com_helpdeskpro/js/admin-field-default.js');
$document->addScriptOptions('validationRules',
json_decode(HelpdeskProHelper::validateEngine()), true);
?>
<form action="index.php?option=com_helpdeskpro&view=field"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <?php
    if ($translatable)
    {
        echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'field', array('active' =>
'general-page'));
        echo HTMLHelper::_($tabApiPrefix . 'addTab',
'field', 'general-page',
Text::_('HDP_GENERAL', true));
    }
    ?>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_CATEGORY'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['category_id'];
?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo HtmlUtils::getFieldLabel('name',
Text::_('HDP_NAME'),
Text::_('HDP_FIELD_NAME_REQUIREMNET')); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="name" id="name"
size="50" maxlength="250"
                       value="<?php echo $this->item->name;
?>" />
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_TITLE'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="title" id="title"
size="50" maxlength="250"
                       value="<?php echo $this->item->title;
?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_FIELD_TYPE'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['fieldtype'];
?>
            </div>
        </div>
        <div class="control-group" data-showon='<?php
echo HelpdeskproHelperHtml::renderShowOn(array('fieldtype' =>
'List')) ?>'>
            <div class="control-label">
                <?php echo Text::_('HDP_MULTIPLE'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['multiple']; ?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_DESCRIPTION'); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="description" class="form-control"><?php
echo $this->item->description; ?></textarea>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_REQUIRED'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['required']; ?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo HtmlUtils::getFieldLabel('values',
Text::_('HDP_VALUES'),
Text::_('HDP_EACH_ITEM_IN_ONELINE')); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="values" class="form-control"><?php echo
$this->item->values; ?></textarea>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo
HtmlUtils::getFieldLabel('default_values',
Text::_('HDP_DEFAULT_VALUES'),
Text::_('HDP_EACH_ITEM_IN_ONELINE')); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="default_values" class="form-control"><?php
echo $this->item->default_values; ?></textarea>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_DATATYPE_VALIDATION');
?>
            </div>
            <div class="controls">
                <?php echo
$this->lists['datatype_validation']; ?>
            </div>
        </div>
        <div class="control-group validation-rules">
            <div class="control-label">
                <?php echo
HtmlUtils::getFieldLabel('validation_rules',
Text::_('HDP_VALIDATION_RULES'),
Text::_('HDP_VALIDATION_RULES_EXPLAIN')); ?>
            </div>
            <div class="controls">
                <input type="text" class="input-xlarge
form-control" size="50" name="validation_rules"
value="<?php echo $this->item->validation_rules ; ?>"
/>
            </div>
        </div>
        <div class="control-group" data-showon='<?php
echo HelpdeskproHelperHtml::renderShowOn(array('fieldtype' =>
'Textarea')); ?>'>
            <div class="control-label">
                <?php echo Text::_('HDP_ROWS'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="rows" id="rows"
size="10" maxlength="250" value="<?php echo
$this->item->rows; ?>"/>
            </div>
        </div>
        <div class="control-group" data-showon='<?php
echo HelpdeskproHelperHtml::renderShowOn(array('fieldtype' =>
'Textarea')) ?>'>
            <div class="control-label">
                <?php echo Text::_('HDP_COLS'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="cols" id="cols"
size="10" maxlength="250" value="<?php echo
$this->item->cols; ?>"/>
            </div>
        </div>
        <div class="control-group" data-showon='<?php
echo HelpdeskproHelperHtml::renderShowon(array('fieldtype' =>
array('Text', 'Checkboxes', 'Radio')));
?>'>
            <div class="control-label">
                <?php echo Text::_('HDP_SIZE'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="size" id="size"
size="10" maxlength="250" value="<?php echo
$this->item->size; ?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_CSS_CLASS'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="css_class" id="css_class"
size="10" maxlength="250" value="<?php echo
$this->item->css_class; ?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_EXTRA'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="extra" id="extra"
size="40" maxlength="250" value="<?php echo
$this->item->extra; ?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo
HtmlUtils::getFieldLabel('show_in_list_view',
Text::_('HDP_SHOW_IN_LIST_VIEW'),
Text::_('HDP_SHOW_IN_LIST_VIEW_EXPLAIN')); ?>
            </div>
            <div class="controls">
                <?php echo
$this->lists['show_in_list_view']; ?>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_PUBLISHED'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['published'];
?>
            </div>
        </div>
    <?php

    if ($translatable)
    {
        echo HTMLHelper::_($tabApiPrefix . 'endTab');
        echo $this->loadTemplate('translation');
        echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
    }
    ?>
    <input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
    <input type="hidden" name="task"
value=""/>
    <?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[q��Qss"Field/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
use OSL\Utils\Html as HtmlUtils;

$rootUri = Uri::root();

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

echo HTMLHelper::_($tabApiPrefix . 'addTab', 'field',
'translation-page', Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'field-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'field-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
	?>
        <div class="control-group">
            <div class="control-label">
				<?php echo Text::_('HDP_TITLE'); ?>
            </div>
            <div class="controls">
                <input class="input-xlarge form-control"
type="text" name="title_<?php echo $sef; ?>"
id="title_<?php echo $sef; ?>" maxlength="250"
value="<?php echo $this->item->{'title_' . $sef};
?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
				<?php echo Text::_('HDP_DESCRIPTION'); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="description_<?php echo $sef; ?>"
class="form-control"><?php echo
$this->item->{'description_' . $sef};
?></textarea>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
	            <?php echo HtmlUtils::getFieldLabel('values',
Text::_('HDP_VALUES'),
Text::_('HDP_EACH_ITEM_IN_ONELINE')); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="values_<?php echo $sef; ?>"
class="form-control"><?php echo
$this->item->{'values_' . $sef}; ?></textarea>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
				<?php echo HtmlUtils::getFieldLabel('default_values_',
Text::_('HDP_DEFAULT_VALUES'),
Text::_('HDP_EACH_ITEM_IN_ONELINE')); ?>
            </div>
            <div class="controls">
                <textarea rows="5" cols="50"
name="default_values_<?php echo $sef; ?>"
class="form-control"><?php echo
$this->item->{'default_values_' . $sef};
?></textarea>
            </div>
        </div>
	<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[�&���Fields/Html.phpnu�[���<?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
 */
namespace OSSolution\HelpdeskPro\Admin\View\Fields;

use OSL\View\ListView;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

class Html extends ListView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$this->lists['filter_category_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->state->filter_category_id,
'filter_category_id', 'class="input-large
form-select" onchange="submit();"');
	}
}PK=,�[�ʇ���Fields/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

HTMLHelper::_('bootstrap.tooltip');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

$ordering   = $this->state->filter_order ==
'tbl.ordering';

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=field.save_order_ajax';

	if (HelpdeskproHelper::isJoomla4())
    {
	    \Joomla\CMS\HTML\HTMLHelper::_('draggablelist.draggable');
    }
	else
    {
	    HTMLHelper::_('sortablelist.sortable',
'fieldsList', 'adminForm',
strtolower($this->state->filter_order_Dir), $saveOrderingUrl);
    }
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
Factory::getApplication()->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering',
);

HTMLHelper::_('searchtools.form', '#adminForm',
$customOptions);
?>
<form
action="index.php?option=com_helpdeskpro&view=fields"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar
js-stools">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_FIELDS_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_FIELDS_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_category_id']; ?>
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="fieldsList">
				<thead>
				<tr>
					<th width="1%" class="nowrap center
hidden-phone">
						<?php echo HTMLHelper::_('searchtools.sort',
'', 'tbl.ordering',
$this->state->filter_order_Dir, $this->state->filter_order,
null, 'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('searchtools.sort',
'HDP_NAME', 'tbl.name',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('searchtools.sort',
'HDP_TITLE', 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('searchtools.sort',
'HDP_FIELD_TYPE', 'tbl.field_type',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title center">
						<?php echo HTMLHelper::_('searchtools.sort',
'HDP_PUBLISHED', 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="1%" nowrap="nowrap">
						<?php echo HTMLHelper::_('searchtools.sort',
'ID', 'tbl.id', $this->state->filter_order_Dir,
$this->state->filter_order); ?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="7">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
                <tbody <?php if ($ordering) :?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($this->state->filter_order_Dir); ?>" <?php
endif; ?>>
				<?php
				$k        = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = $this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=field&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
						<td class="order nowrap center hidden-phone">
							<?php
							$iconClass = '';

							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
							<span class="sortable-handler<?php echo $iconClass
?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
								<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$row->ordering ?>" class="width-20 text-area-order
"/>
							<?php endif; ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
								<?php echo $row->name; ?>
							</a>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
								<?php echo $row->title; ?>
							</a>
						</td>
						<td>
							<?php
								echo $row->fieldtype;
							?>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<input type="hidden" id="filter_full_ordering"
name="filter_full_ordering" value="" />
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[G4�bbLabel/Html.phpnu�[���<?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
 */
namespace OSSolution\HelpdeskPro\Admin\View\Label;

use Joomla\CMS\Uri\Uri;
use OSL\View\ItemView;

defined('_JEXEC') or die;

class Html extends ItemView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$this->container->document->addScript(Uri::root(true) .
'/media/com_helpdeskpro/admin/assets/js/colorpicker/jscolor.js');
	}
}PK=,�[ϖ��Label/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;

?>
<form action="index.php?option=com_helpdeskpro&view=label"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="form-control" type="text"
name="title" id="title" size="40"
maxlength="250"
                   value="<?php echo $this->item->title;
?>"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_COLOR'); ?>
        </div>
        <div class="controls">
            <input type="text" name="color_code"
class="form-control color {required:false}"
                   value="<?php echo $this->item->color_code;
?>" size="10"/>
            <?php echo Text::_('HDP_COLOR_EXPLAIN'); ?>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_PUBLISHED'); ?>
        </div>
        <div class="controls">
            <?php echo $this->lists['published']; ?>
        </div>
    </div>
	<?php echo HTMLHelper::_('form.token'); ?>
	<input type="hidden" name="id" value="<?php
echo $this->item->id; ?>"/>
	<input type="hidden" name="task"
value=""/>
</form>PK=,�[�*����Labels/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

HTMLHelper::_('bootstrap.tooltip', '.hasTooltip',
array('placement' => 'top'));
?>
<form
action="index.php?option=com_helpdeskpro&view=labels"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_LABELS_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_LABELS_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped">
				<thead>
				<tr>
					<th width="5">
						<?php echo Text::_('NUM'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="100">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_COLOR'), 'tbl.color_code',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="6">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
				<tbody>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = $this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=label&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
						<td>
							<?php echo $this->pagination->getRowOffset($i); ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
								<?php echo $row->title; ?>
							</a>
						</td>
						<td class="center">
							<div
								style="width:100px; height: 30px; background-color: #<?php
echo $row->color_code; ?>">
								&nbsp;</div>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="option"
value="com_helpdeskpro"/>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[,�{��Language/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Language;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\View\HtmlView;

defined('_JEXEC') or die;

class Html extends HtmlView
{

	protected function beforeRender()
	{
		/* @var \Ossolution\Helpdeskpro\Admin\Model\Language $model */
		$model = $this->getModel();
		$state = $model->getState();
		$trans = $model->getTrans();

		$languages = $model->getSiteLanguages();

		$options   = [];
		$options[] = HTMLHelper::_('select.option', '',
Text::_('Select Language'));

		foreach ($languages as $language)
		{
			$options[] = HTMLHelper::_('select.option', $language,
$language);
		}

		$lists['filter_language'] =
HTMLHelper::_('select.genericlist', $options,
'filter_language', ' class="form-select" 
onchange="submit();"', 'value', 'text',
$state->filter_language);

		$this->trans = $trans;
		$this->lists = $lists;
		$this->lang  = $state->filter_language;
		$this->item  = 'com_helpdeskpro';
	}
}PK=,�[��~���Language/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Uri\Uri;

ToolbarHelper::title(   Text::_( 'Translation management'),
'generic.png' );

ToolbarHelper::addNew('new_item', 'New Item');
ToolbarHelper::apply('apply', 'JTOOLBAR_APPLY');
ToolbarHelper::save('save');
ToolbarHelper::cancel('cancel');

$pullLeft  = 'pull-left';
$pullRight = 'pull-right';

HTMLHelper::_('jquery.framework');
HTMLHelper::_('behavior.core');

Factory::getDocument()->addScript(Uri::root(true).'/media/com_helpdeskpro/js/admin-language-default.js');
?>
<form
action="index.php?option=com_helpdeskpro&view=language"
method="post" name="adminForm"
id="adminForm">
    <div id="j-main-container">
        <div id="filter-bar"
class="btn-toolbar">
            <div class="filter-search btn-group
pull-left">
                <label for="filter_search"
class="element-invisible"><?php echo
Text::_('EB_FILTER_SEARCH_LANGUAGE_DESC');?></label>
                <input type="text"
name="filter_search" id="filter_search"
placeholder="<?php echo Text::_('JSEARCH_FILTER');
?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip" title="<?php echo
HTMLHelper::tooltipText('EB_SEARCH_LANGUAGE_DESC'); ?>"
/>
            </div>
            <div class="btn-group pull-left">
                <button id="pf-clear-button"
type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR');
?>"><span
class="icon-remove"></span></button>
            </div>
            <div class="btn-group pull-right">
				<?php
				echo $this->lists['filter_item'];
				echo $this->lists['filter_language'];
				?>
            </div>
        </div>
        <div class="clearfix"></div>
        <table class="table table-striped"
id="lang_table">
            <thead>
            <tr>
                <th class="key" style="width:20%;
text-align: left;">Key</th>
                <th class="key" style="width:40%;
text-align: left;">Original</th>
                <th class="key" style="width:40%;
text-align: left;">Translation</th>
            </tr>
            </thead>
            <tbody id="pf-translation-table">
			<?php
			$original = $this->trans['en-GB'][$this->item] ;
			$trans = $this->trans[$this->lang][$this->item] ;


			foreach ($original as  $key=>$value) {
				?>
                <tr>
                    <td class="key" style="text-align:
left;"><?php echo $key; ?></td>
                    <td style="text-align: left;"><?php
echo $value; ?></td>
                    <td>
						<?php
						if (isset($trans[$key])) {
							$translatedValue = $trans[$key];
							$missing = false ;
						} else {
							$translatedValue = $value;
							$missing = true ;
						}
						?>
                        <input type="hidden"
name="keys[]" value="<?php echo $key; ?>" />
                        <input type="text" name="<?php
echo $key; ?>" class="input-xxlarge" size="100"
value="<?php echo $translatedValue; ; ?>" />
						<?php
						if ($missing) {
							?>
                            <span
style="color:red;">*</span>
							<?php
						}
						?>
                    </td>
                </tr>
				<?php
			}
			?>
            </tbody>
        </table>
        <input type="hidden" name="task"
value="" />
		<?php echo HTMLHelper::_( 'form.token' ); ?>
    </div>
</form>PK=,�[�))Priorities/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

HTMLHelper::_('bootstrap.tooltip', '.hasTooltip',
array('placement' => 'top'));

$ordering = ($this->state->filter_order ==
'tbl.ordering');

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=priority.save_order_ajax';

	if (HelpdeskproHelper::isJoomla4())
	{
		\Joomla\CMS\HTML\HTMLHelper::_('draggablelist.draggable');
	}
	else
	{
		HTMLHelper::_('sortablelist.sortable', 'fieldsList',
'adminForm', strtolower($this->state->filter_order_Dir),
$saveOrderingUrl);
	}
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
Factory::getApplication()->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering'
);

HTMLHelper::_('searchtools.form', '#adminForm',
$customOptions);
?>
<form
action="index.php?option=com_helpdeskpro&view=priorities"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar
js-stools">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_PRIORITIES_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_PRIORITIES_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="prioritiesList">
				<thead>
				<tr>
					<th width="5">
						<?php echo HTMLHelper::_('searchtools.sort',
'', 'tbl.ordering',
$this->state->filter_order_Dir, $this->state->filter_order,
null, 'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="5">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
                <tbody <?php if ($ordering) :?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($this->state->filter_order_Dir); ?>" <?php
endif; ?>>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = &$this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=priority&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
						<td class="order nowrap center hidden-phone">
							<?php
							$iconClass = '';

							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
							<span class="sortable-handler<?php echo $iconClass
?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
								<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$row->ordering ?>" class="width-20 text-area-order
"/>
							<?php endif; ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>"><?php echo
$row->title; ?></a>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<input type="hidden" id="filter_full_ordering"
name="filter_full_ordering" value="" />
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[�2��Priority/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;

$translatable = Multilanguage::isEnabled() &&
count($this->languages);

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}
?>
<form
action="index.php?option=com_helpdeskpro&view=priority"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <?php
    if ($translatable)
    {
	    echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'priority', array('active' =>
'general-page'));
	    echo HTMLHelper::_($tabApiPrefix . 'addTab',
'priority', 'general-page',
Text::_('HDP_GENERAL', true));
    }
    ?>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="form-control" type="text"
name="title" id="title" size="40"
maxlength="250"
                   value="<?php echo $this->item->title;
?>"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_PUBLISHED'); ?>
        </div>
        <div class="controls">
			<?php echo $this->lists['published']; ?>
        </div>
    </div>
    <?php
    if ($translatable)
    {
	    echo HTMLHelper::_($tabApiPrefix . 'endTab');
	    echo $this->loadTemplate('translation');
	    echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
    }
    ?>
    <?php echo HTMLHelper::_('form.token'); ?>
    <input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
    <input type="hidden" name="task"
value=""/>
</form>PK=,�[4MW�44%Priority/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$rootUri = Uri::root();

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

echo HTMLHelper::_($tabApiPrefix . 'addTab',
'priority', 'translation-page',
Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'item-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'item-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
	?>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge" type="text"
name="title_<?php echo $sef; ?>"
                   id="title_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'title_' . $sef}; ?>"/>
        </div>
    </div>
	<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[Щ)hhReplies/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

HTMLHelper::_('bootstrap.tooltip', '.hasTooltip',
array('placement' => 'top'));

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

$ordering = ($this->state->filter_order ==
'tbl.ordering');

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=reply.save_order_ajax';

	if (HelpdeskproHelper::isJoomla4())
	{
		\Joomla\CMS\HTML\HTMLHelper::_('draggablelist.draggable');
	}
	else
	{
		HTMLHelper::_('sortablelist.sortable', 'fieldsList',
'adminForm', strtolower($this->state->filter_order_Dir),
$saveOrderingUrl);
	}
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
Factory::getApplication()->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering'
);

HTMLHelper::_('searchtools.form', '#adminForm',
$customOptions);
?>
<form
action="index.php?option=com_helpdeskpro&view=replies"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar
js-stools">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_REPLIES_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_REPLIES_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="repliesList">
				<thead>
				<tr>
                    <th width="5">
						<?php echo HTMLHelper::_('searchtools.sort',
'', 'tbl.ordering',
$this->state->filter_order_Dir, $this->state->filter_order,
null, 'asc', 'JGRID_HEADING_ORDERING',
'icon-menu-2'); ?>
                    </th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="8">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
                <tbody <?php if ($ordering) :?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($this->state->filter_order_Dir); ?>" <?php
endif; ?>>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = &$this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=reply&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
                        <td class="order nowrap center
hidden-phone">
							<?php
							$iconClass = '';
							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
                            <span class="sortable-handler<?php
echo $iconClass ?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
                                <input type="text"
style="display:none" name="order[]" size="5"
value="<?php echo $row->ordering ?>"
class="width-20 text-area-order "/>
							<?php endif; ?>
                        </td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>">
								<?php echo $row->title; ?>
							</a>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="option"
value="com_helpdeskpro"/>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[\�Y��Reply/tmpl/default.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;

defined('_JEXEC') or die;
?>
<form action="index.php?option=com_helpdeskpro&view=reply"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge form-control"
type="text" name="title" id="title"
size="40" maxlength="250"
                   value="<?php echo $this->item->title;
?>"/>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_MESSAGE'); ?>
        </div>
        <div class="controls">
            <textarea rows="10" cols="75"
name="message"
                      id="message" class="input-xxlarge
form-control"><?php echo $this->item->message;
?></textarea>
        </div>
    </div>
    <div class="control-group">
        <div class="control-label">
            <?php echo Text::_('HDP_PUBLISHED'); ?>
        </div>
        <div class="controls">
            <?php echo $this->lists['published']; ?>
        </div>
    </div>
	<?php echo HTMLHelper::_('form.token'); ?>
	<input type="hidden" name="option"
value="com_helpdeskpro"/>
	<input type="hidden" name="id" value="<?php
echo $this->item->id; ?>"/>
	<input type="hidden" name="task"
value=""/>
</form>PK=,�[7�u�Report/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Report;

use JHtmlSidebar;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use OSL\Utils\Html as HtmlUtils;
use OSL\View\HtmlView;

defined('_JEXEC') or die;

class Html extends HtmlView
{
	/**
	 * Array hold data ranger filter
	 *
	 * @var array
	 */
	protected $lists = [];

	/**
	 * Array hold calculated reporting data
	 *
	 * @var array
	 */
	protected $data;

	/**
	 * Prepare data to show on report page
	 */
	protected function beforeRender()
	{
		parent::beforeRender();

		$options   = [];
		$options[] = HTMLHelper::_('select.option', '',
Text::_('HDP_CHOOSE_DATE_RANGE'));
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_TODAY'));
		$options[] = HTMLHelper::_('select.option', 1,
Text::_('HDP_THIS_WEEK'));
		$options[] = HTMLHelper::_('select.option', 2,
Text::_('HDP_THIS_MONTH'));
		$options[] = HTMLHelper::_('select.option', 3,
Text::_('HDP_THIS_YEAR'));
		$options[] = HTMLHelper::_('select.option', 4,
Text::_('HDP_ALL'));

		$this->lists['filter_date_range'] =
HTMLHelper::_('select.genericlist', $options,
'filter_date_range', 'onchange="submit();"
class="form-select"', 'value', 'text',
$this->model->getState('filter_date_range'));
		$this->data                       = $this->model->getData();

		if (!\HelpdeskproHelper::isJoomla4())
		{
			// Add sidebar
			HtmlUtils::addSubMenus($this->container->option, $this->name);
			$this->sidebar = JHtmlSidebar::render();
		}
		else
		{
			$this->sidebar = '';
		}
	}
}PK=,�[������Report/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;

ToolbarHelper::title(Text::_('Tickets report'),
'generic.png');
HTMLHelper::_('bootstrap.tooltip', '.hasTooltip',
array('placement' => 'top'));

function sortTickets($a, $b)
{
	if ($a->total_tickets == $b->total_tickets)
	{
		return 0;
	}

	return ($a->total_tickets > $b->total_tickets) ? -1 : 1;
}

function sortTicketsByManager($a, $b)
{
	if ($a['total_tickets'] == $b['total_tickets'])
	{
		return 0;
	}

	return ($a['total_tickets'] > $b['total_tickets'])
? -1 : 1;
}

?>
<div class="row-fluid">
	<div id="j-sidebar-container" class="span2">
		<?php echo $this->sidebar; ?>
	</div>
	<div id="j-main-container" class="span10">
		<form
action="index.php?option=com_helpdeskpro&view=report"
method="post" name="adminForm"
id="adminForm">
			<table width="100%">
				<tr>
					<td align="left">
						<?php echo $this->lists['filter_date_range']; ?>
					</td>
				</tr>
			</table>
			<div id="editcell">
				<h2><?php echo Text::_('HDP_TICKET_BY_MANAGERS');
?></h2>
				<table class="adminlist table table-striped">
					<thead>
					<tr>
						<th>
							<?php echo Text::_('HDP_MANAGER'); ?>
						</th>
						<?php
						$statuses = $this->data['statuses'];
						foreach ($statuses as $status)
						{
							?>
							<th>
								<?php echo $status->title; ?>
							</th>
							<?php
						}
						?>
						<th>
							<?php echo Text::_('HDP_TOTAL_TICKETS'); ?>
						</th>
					</tr>
					</thead>
					<tbody>
					<?php
					$managers = $this->data['managers'];
					usort($managers, 'sortTicketsByManager');
					foreach ($managers as $manager)
					{
						?>
						<tr>
							<td>
								<?php echo $manager['name']; ?>
							</td>
							<?php
							foreach ($statuses as $status)
							{
								?>
								<td>
									<?php
									if (isset($manager[$status->id]))
									{
										echo $manager[$status->id];
									}
									else
									{
										echo 0;
									}
									?>
								</td>
								<?php
							}
							?>
							<td>
								<?php echo $manager['total_tickets']; ?>
							</td>
						</tr>
						<?php
					}
					?>
					</tbody>
				</table>
				<h2><?php echo Text::_('HDP_TICKET_BY_STAFFS');
?></h2>
				<table class="adminlist table table-striped">
					<thead>
					<tr>
						<th>
							<?php echo Text::_('HDP_STAFF'); ?>
						</th>
						<?php
						$statuses = $this->data['statuses'];
						foreach ($statuses as $status)
						{
							?>
							<th>
								<?php echo $status->title; ?>
							</th>
							<?php
						}
						?>
						<th>
							<?php echo Text::_('HDP_TOTAL_TICKETS'); ?>
						</th>
					</tr>
					</thead>
					<tbody>
					<?php
					$staffs = $this->data['staffs'];
					usort($staffs, 'sortTickets');
					foreach ($staffs as $staff)
					{
						?>
						<tr>
							<td>
								<?php echo $staff->username; ?>
							</td>
							<?php
							foreach ($statuses as $status)
							{
								?>
								<td>
									<?php
									if (isset($staff->status[$status->id]))
									{
										echo $staff->status[$status->id];
									}
									else
									{
										echo 0;
									}
									?>
								</td>
								<?php
							}
							?>
							<td>
								<?php echo $staff->total_tickets; ?>
							</td>
						</tr>
						<?php
					}
					?>
					</tbody>
				</table>
				<h2><?php echo Text::_('HDP_TICKET_BY_CATEGORIES');
?></h2>
				<table class="adminlist table table-striped">
					<thead>
					<tr>
						<th>
							<?php echo Text::_('Category'); ?>
						</th>
						<?php
						$statuses = $this->data['statuses'];
						foreach ($statuses as $status)
						{
							?>
							<th>
								<?php echo $status->title; ?>
							</th>
							<?php
						}
						?>
						<th>
							<?php echo Text::_('Total Tickets'); ?>
						</th>
					</tr>
					</thead>
					<tbody>
					<?php
					$categories = $this->data['categories'];
					usort($categories, 'sortTickets');
					foreach ($categories as $category)
					{
						if (!$category->total_tickets)
						{
							continue;
						}
						?>
						<tr>
							<td>
								<?php echo $category->title; ?>
							</td>
							<?php
							foreach ($statuses as $status)
							{
								?>
								<td>
									<?php
									if (isset($category->status[$status->id]))
									{
										echo $category->status[$status->id];
									}
									else
									{
										echo 0;
									}
									?>
								</td>
								<?php
							}
							?>
							<td>
								<?php echo $category->total_tickets; ?>
							</td>
						</tr>
						<?php
					}
					?>
					</tbody>
				</table>
			</div>
			<?php echo HTMLHelper::_('form.token'); ?>
		</form>
	</div>
</div>PK=,�[t��jjStatus/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Multilanguage;
use Joomla\CMS\Language\Text;

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

if (HelpdeskproHelper::isJoomla4())
{
	$tabApiPrefix = 'uitab.';
}
else
{
	$tabApiPrefix = 'bootstrap.';
}

$translatable = Multilanguage::isEnabled() &&
count($this->languages);
?>
<form
action="index.php?option=com_helpdeskpro&view=status"
method="post" name="adminForm" id="adminForm"
class="form form-horizontal">
    <?php
        if ($translatable)
        {
            echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'status', array('active' =>
'general-page'));
            echo HTMLHelper::_($tabApiPrefix . 'addTab',
'status', 'general-page',
Text::_('HDP_GENERAL', true));
        }
    ?>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_TITLE'); ?>
            </div>
            <div class="controls">
                <input class="form-control"
type="text" name="title" id="title"
size="40" maxlength="250"
                       value="<?php echo $this->item->title;
?>"/>
            </div>
        </div>
        <div class="control-group">
            <div class="control-label">
                <?php echo Text::_('HDP_PUBLISHED'); ?>
            </div>
            <div class="controls">
                <?php echo $this->lists['published'];
?>
            </div>
        </div>
		<?php
		if ($translatable)
		{
			echo HTMLHelper::_($tabApiPrefix . 'endTab');
			echo $this->loadTemplate('translation');
			echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
		}
		?>
		<?php echo HTMLHelper::_('form.token'); ?>
		<input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
		<input type="hidden" name="task"
value=""/>
</form>PK=,�[���#Status/tmpl/default_translation.phpnu�[���<?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
 */

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$rootUri = Uri::root();

echo HTMLHelper::_($tabApiPrefix . 'addTab', 'status',
'translation-page', Text::_('HDP_TRANSLATION', true));
echo HTMLHelper::_($tabApiPrefix . 'startTabSet',
'item-translation', array('active' =>
'translation-page-'.$this->languages[0]->sef));

foreach ($this->languages as $language)
{
	$sef = $language->sef;
	echo HTMLHelper::_($tabApiPrefix . 'addTab',
'item-translation', 'translation-page-' . $sef,
$language->title . ' <img src="' . $rootUri .
'media/com_helpdeskpro/assets/flags/' . $sef . '.png"
/>');
	?>
    <div class="control-group">
        <div class="control-label">
			<?php echo Text::_('HDP_TITLE'); ?>
        </div>
        <div class="controls">
            <input class="input-xlarge" type="text"
name="title_<?php echo $sef; ?>"
                   id="title_<?php echo $sef; ?>"
size="" maxlength="250"
                   value="<?php echo
$this->item->{'title_' . $sef}; ?>"/>
        </div>
    </div>
	<?php
	echo HTMLHelper::_($tabApiPrefix . 'endTab');
}

echo HTMLHelper::_($tabApiPrefix . 'endTabSet');
echo HTMLHelper::_($tabApiPrefix .
'endTab');PK=,�[�H�"||Statuses/tmpl/default.phpnu�[���<?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\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

HTMLHelper::_('bootstrap.tooltip', '.hasTooltip',
array('placement' => 'top'));

$ordering = $this->state->filter_order == 'tbl.ordering';

if ($ordering)
{
	$saveOrderingUrl =
'index.php?option=com_helpdeskpro&task=status.save_order_ajax';

	if (HelpdeskproHelper::isJoomla4())
	{
		\Joomla\CMS\HTML\HTMLHelper::_('draggablelist.draggable');
	}
	else
	{
		HTMLHelper::_('sortablelist.sortable', 'fieldsList',
'adminForm', strtolower($this->state->filter_order_Dir),
$saveOrderingUrl);
	}
}

$customOptions = array(
	'filtersHidden'       => true,
	'defaultLimit'        =>
Factory::getApplication()->get('list_limit', 20),
	'searchFieldSelector' => '#filter_search',
	'orderFieldSelector'  => '#filter_full_ordering'
);
HTMLHelper::_('searchtools.form', '#adminForm',
$customOptions);
?>
<form
action="index.php?option=com_helpdeskpro&view=statuses"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar
js-stools">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_STATUSES_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_STATUSES_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php echo $this->lists['filter_state']; ?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped"
id="statusList">
				<thead>
				<tr>
					<th width="5">
						<?php echo Text::_('NUM'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_TITLE'), 'tbl.title',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="5%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_PUBLISHED'), 'tbl.published',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th width="2%">
						<?php echo HTMLHelper::_('searchtools.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="4">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
                <tbody <?php if ($ordering) :?>
class="js-draggable" data-url="<?php echo
$saveOrderingUrl; ?>" data-direction="<?php echo
strtolower($this->state->filter_order_Dir); ?>" <?php
endif; ?>>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row       = &$this->items[$i];
					$link      =
Route::_('index.php?option=com_helpdeskpro&view=status&id='
. $row->id);
					$checked   = HTMLHelper::_('grid.id', $i, $row->id);
					$published = HTMLHelper::_('jgrid.published',
$row->published, $i);
					?>
					<tr class="<?php echo "row$k"; ?>">
						<td class="order nowrap center hidden-phone">
							<?php
							$iconClass = '';
							if (!$ordering)
							{
								$iconClass = ' inactive tip-top hasTooltip"';
							}
							?>
							<span class="sortable-handler<?php echo $iconClass
?>">
						<i class="icon-menu"></i>
						</span>
							<?php if ($ordering) : ?>
								<input type="text" style="display:none"
name="order[]" size="5" value="<?php echo
$row->ordering ?>" class="width-20 text-area-order
"/>
							<?php endif; ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>"><?php echo
$row->title; ?></a>
						</td>
						<td class="center">
							<?php echo $published; ?>
						</td>
						<td class="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<input type="hidden" id="filter_full_ordering"
name="filter_full_ordering" value="" />
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK=,�[���ooTicket/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Ticket;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Uri\Uri;
use OSL\View\ItemView;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskproHelper;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

/**
 * @property \OSSolution\HelpdeskPro\Admin\Model\Ticket $model
 */
class Html extends ItemView
{
	/**
	 * Get extra data needed to render the form
	 *
	 * @return void
	 */
	protected function beforeRender()
	{
		parent::beforeRender();

		HelpdeskproHelper::loadEditable();

		// Remove the uploaded files data from section
		$this->container->session->clear('hdp_uploaded_files');
		$this->container->session->clear('hdp_uploaded_files_original_names');

		$layout = $this->getLayout();

		if ($layout == 'form')
		{
			$this->beforeRenderTicketForm();

			return;
		}

		if (empty($this->item->id))
		{
			// Invalid ticket, redirect to ticket list page
			$app = $this->container->app;

			$app->enqueueMessage(Text::_('HDP_TICKET_NOT_EXISTS'),
'warning');
			$app->redirect('index.php?option=com_helpdeskpro&view=tickets');
		}

		$config   = HelpdeskproHelper::getConfig();
		$rows     = HelpdeskproHelperDatabase::getAllCategories();
		$children = [];

		if ($rows)
		{
			// first pass - collect children
			foreach ($rows as $v)
			{
				$pt   = (int) $v->parent_id;
				$list = @$children[$pt] ? $children[$pt] : [];
				array_push($list, $v);
				$children[$pt] = $list;
			}
		}
		$categories = HTMLHelper::_('menu.treerecurse', 0,
'', [], $children, 9999, 0, 0);


		PluginHelper::importPlugin('helpdeskpro');

		//Trigger plugins
		$results =
$this->container->app->triggerEvent('onViewTicket',
[$this->item]);

		if ($config->highlight_code)
		{
			HelpdeskproHelper::loadHighlighter();
		}

		// Add js variables
		$maxNumberOfFiles = $config->max_number_attachments ? (int)
$config->max_number_attachments : 1;

		$siteUrl = Uri::base();
		$this->container->document->addScriptDeclaration("
			var maxAttachment = $maxNumberOfFiles;
			var currentCategory = 0;
			var currentNumberAttachment = 1;
			var currentStatus = 0;
			var hdpSiteUrl = '$siteUrl';			
		");

		$canConvertToKb = false;
		$db             = $this->container->db;
		$query          = $db->getQuery(true);
		$query->select('category_type')
			->from('#__helpdeskpro_categories')
			->where('id = ' . (int) $this->item->category_id);
		$db->setQuery($query);
		$categoryType = $db->loadResult();

		if ($categoryType == 0)
		{
			$canConvertToKb = true;
		}

		$db->setQuery($query);
		$this->fields         =
HelpdeskproHelper::getFields($this->item->category_id);
		$this->messages       = $this->model->getMessages();
		$this->fieldValues    = $this->model->getFieldsValue();
		$this->rowStatuses    = HelpdeskproHelperDatabase::getAllStatuses();
		$this->rowPriorities  =
HelpdeskproHelperDatabase::getAllPriorities();
		$this->rowLabels      = HelpdeskproHelperDatabase::getAllLabels();
		$this->categories     = $categories;
		$this->dateFormat     = $config->date_format;
		$this->config         = $config;
		$this->results        = $results;
		$this->onlineUserIds  = HelpdeskproHelper::getOnlineUsers();
		$this->canConvertToKb = $canConvertToKb;
	}

	/**
	 * Generate form allows admin creating new ticket
	 */
	private function beforeRenderTicketForm()
	{
		$config                     = HelpdeskproHelper::getConfig();
		$this->lists['category_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown(0, 'category_id',
'onchange="HDP.showFields(this.form);"
class="form-select"');

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_CHOOSE_PRIORITY'), 'id',
'title');
		$options   = array_merge($options,
HelpdeskproHelperDatabase::getAllPriorities());

		$this->lists['priority_id'] =
HTMLHelper::_('select.genericlist', $options,
'priority_id', [
			'option.text.toHtml' => false,
			'option.text'        => 'title',
			'option.key'         => 'id',
			'list.attr'          =>
'class="form-select"',
			'list.select'        =>
$config->default_ticket_priority_id,
		]);

		$options   = [];
		$options[] = HTMLHelper::_('select.option', -1,
Text::_('HDP_APPLY_LABEL'), 'id', 'title');
		$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_NO_LABEL'), 'id', 'title');
		$options   = array_merge($options,
HelpdeskproHelperDatabase::getAllLabels());

		$this->lists['label_id'] =
HTMLHelper::_('select.genericlist', $options,
'label_id', [
			'option.text.toHtml' => false,
			'option.text'        => 'title',
			'option.key'         => 'id',
			'list.attr'          =>
'class="form-select"',
			'list.select'        =>
$config->default_ticket_priority_id,
		]);


		$rowFields = HelpdeskproHelper::getAllFields();
		$form      = new \HDPForm($rowFields);

		$relation = HelpdeskproHelper::getFieldCategoryRelation();
		$form->prepareFormField(0, $relation);

		$fieldJs = "fields = new Array();\n";
		foreach ($relation as $catId => $fieldList)
		{
			$fieldJs .= ' fields[' . $catId . '] = new
Array("' . implode('","', $fieldList) .
'");' . "\n";
		}

		$document = $this->container->document;
		$document->addScriptDeclaration($fieldJs);

		$maxNumberOfFiles = $config->max_number_attachments ? (int)
$config->max_number_attachments : 1;
		$document->addScriptDeclaration("
			var maxAttachment = $maxNumberOfFiles;
			var currentCategory = 0;
			var currentNumberAttachment = 1; 
		");

		$this->form = $form;


		$this->config = $config;
	}

	/**
	 * Override default toolbar buttons
	 */
	protected function addToolbar()
	{
		if ($this->item->id)
		{
			$toolbarTitle = $this->container->languagePrefix . '_' .
$this->name . '_VIEW';
		}
		else
		{
			$toolbarTitle = $this->container->languagePrefix . '_' .
$this->name . '_NEW';
		}

		ToolbarHelper::title(Text::_(strtoupper($toolbarTitle)));

		ToolbarHelper::cancel('ticket.cancel');
	}
}PK=,�[�?���Ticket/tmpl/default.phpnu�[���<?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\Editor\Editor;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

$cbIntegration = file_exists(JPATH_ROOT .
'/components/com_comprofiler/comprofiler.php');
$editor        =
Editor::getInstance(Factory::getConfig()->get('editor'));
$user          = Factory::getUser();
$document      = Factory::getDocument();
$rootUri       = Uri::root(true);

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

HTMLHelper::_('behavior.keepalive');
HTMLHelper::_('behavior.core');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('behavior.modal', 'a.hdp-modal');
}

if (!$this->config->use_html_editor &&
$this->config->process_bb_code)
{
	$document->addScript($rootUri .
'/media/com_helpdeskpro/assets/js/jquery.selection.js');
	$document->addScript($rootUri .
'/media/com_helpdeskpro/assets/js/helpdeskpro.bbcode.js');
}

$document->addScript($rootUri .
'/media/com_helpdeskpro/js/admin-ticket-default.js');

Text::script('HDP_ENTER_COMMENT_FOR_TICKET', true);

$maxNumberOfFiles     = $this->config->max_number_attachments ?
$this->config->max_number_attachments : 1;
$this->captchaInvalid = false;
?>
<div id="hdp_container" class="container-fluid">
	<form
action="index.php?option=com_helpdeskpro&view=ticket"
method="post" name="adminForm"
id="adminForm"
	      enctype="multipart/form-data" class="form
form-horizontal">
		<!--Toolbar buttons-->
		<div class="row-fluid admintable">
			<?php
				$layoutData = array(
					'categories'    => $this->categories,
					'rowStatuses'   => $this->rowStatuses,
					'rowPriorities' => $this->rowPriorities,
					'isCustomer'    => false,
					'item'          => $this->item,
					'user'          => $user,
					'rowLabels'     => $this->rowLabels,
					'convertToKb'	=> $this->canConvertToKb
				);
				echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/toolbar.php',
$layoutData);
			?>
		</div>
		<div class="row-fluid">
			<div id="hdp_left_panel">
				<table class="adminform" width="100%">
					<tr>
						<td style="padding-bottom: 15px;">
							<strong>
								[#<?php echo $this->item->id ?>] - <?php echo
$this->item->subject; ?>
							</strong>
						</td>
					</tr>
					<tr>
						<td>
							<?php
							$layoutData = array(
								'item'    => $this->item,
								'rootUri' => $rootUri,
								'config'  => $this->config
							);
							echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/ticket_detail.php',
$layoutData);
							?>
						</td>
					</tr>
					<tr>
						<th>
							<h2 class="hdp_heading
hdp_comments_heading"><?php echo
Text::_('HDP_COMMENTS'); ?>
								<a href="javascript:HDP.showMessageBox();">
									<span id="hdp_add_comment_link"><?php echo
Text::_('HDP_ADD_COMMENT'); ?></span>
									<img width="32" height="32"
									     src="<?php echo $rootUri .
'/media/com_helpdeskpro/assets/images/icons/icon_add.jpg'
?>">
								</a>
							</h2>
						</th>
					</tr>
					<?php
					$layoutData = array(
						'canComment' => true,
						'captchaInvalid' => false,
						'config'    => $this->config,
						'maxNumberOfFiles' => $maxNumberOfFiles,
						'rootUri' => $rootUri,
						'editor' => $editor,
						'message' => '',
						'captcha' => isset($this->captcha) ?
$this->captcha : ''
					);

					// Comment form
					echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/ticket_add_comment.php',
$layoutData);

					// List of comments
					$layoutData = array(
						'messages'      => $this->messages,
						'user'          => $user,
						'cbIntegration' => $cbIntegration,
						'rootUri'       => $rootUri,
						'config'        => $this->config
					);
					echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/ticket_comments.php',
$layoutData);
					?>
				</table>
			</div>
			<div id="hdp_right_panel" class="span3">
				<?php
				// Customer information
				$layoutData = array(
					'item'        => $this->item,
					'fields'      => $this->fields,
					'fieldValues' => $this->fieldValues,
					'rootUri'     => $rootUri,
					'config'      => $this->config,
					'results'     => $this->results
				);

				echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/ticket_customer_info.php',
$layoutData);
				?>
			</div>
		</div>
		<input type="hidden" name="option"
value="com_helpdeskpro"/>
		<input type="hidden" name="id"
value="<?php echo $this->item->id; ?>"/>
		<input type="hidden" name="task"
value=""/>
		<input type="hidden" name="new_value"
value="0"/>
		<?php echo HTMLHelper::_('form.token'); ?>
	</form>
</div>PK=,�[�	V??Ticket/tmpl/form.phpnu�[���<?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\Editor\Editor;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;

$editor =
Editor::getInstance(Factory::getConfig()->get('editor'));

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}

HTMLHelper::_('behavior.core');
HTMLHelper::_('behavior.keepalive');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('behavior.modal', 'a.hdp-modal');
}

$rootUri = Uri::root(true);
$document = Factory::getDocument();

if (!$this->config->use_html_editor &&
$this->config->process_bb_code)
{
	$document->addScript($rootUri .
'/media/com_helpdeskpro/assets/js/jquery.selection.js');
	$document->addScript($rootUri .
'/media/com_helpdeskpro/assets/js/helpdeskpro.bbcode.js');
}

OSSolution\HelpdeskPro\Site\Helper\Jquery::validateForm();

$document->addScript($rootUri.'/media/com_helpdeskpro/js/admin-ticket-form.js');
?>
<div class="container-fluid">
	<form class="form form-horizontal" name="adminForm"
id="adminForm" action="index.php"
method="post"
	      enctype="multipart/form-data">
		<div class="control-group">
			<label class="control-label"
for="name"><?php echo Text::_('HDP_NAME');
?><span
					class="required">*</span></label>
			<div class="controls">
				<input type="text" id="name"
name="name" placeholder="<?php echo
Text::_('HDP_CUSTOMER_NAME'); ?>" class="input-large
form-control validate[required]"/>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label"
for="email"><?php echo Text::_('HDP_EMAIL');
?><span class="required">*</span></label>
			<div class="controls">
				<input type="text" id="email"
name="email" placeholder="<?php echo
Text::_('HDP_CUSTOMER_EMAIL'); ?>"
class="input-large form-control
validate[required,custom[email]]"/>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label"
for="category_id"><?php echo
Text::_('HDP_CATEGORY'); ?><span
					class="required">*</span></label>
			<div class="controls">
				<?php echo $this->lists['category_id']; ?>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label"
for="subject"><?php echo Text::_('HDP_SUBJECT');
?><span
					class="required">*</span></label>
			<div class="controls">
				<input type="text" id="subject"
name="subject" class="input-xxlarge form-control
validate[required]" value="" size="50"/>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label"
for="priority_id"><?php echo
Text::_('HDP_PRIORITY'); ?><span
					class="required">*</span></label>
			<div class="controls">
				<?php echo $this->lists['priority_id']; ?>
			</div>
		</div>
		<?php
		$fields = $this->form->getFields();

		/* @var HDPFormField $field*/
		foreach ($fields as $field)
		{
			echo $field->getControlGroup();
		}
		?>
		<div class="control-group">
			<label class="control-label"
for="message"><?php echo Text::_('HDP_MESSAGE');
?><span
					class="required">*</span></label>
			<div class="controls">
				<?php
				if ($this->config->use_html_editor)
				{
					echo $editor->display('message', '',
'100%', '250', '75', '10');
				}
				else
				{
				?>
					<textarea rows="10" cols="70"
class="hdp_fullwidth" name="message"
class="form-control validate[required]"></textarea>
				<?php
				}
				?>
			</div>
		</div>
		<?php
		if ($this->config->enable_attachment)
		{
		?>
			<div class="control-group">
				<label class="control-label"><?php echo
Text::_('HDP_ATTACHMENTS'); ?></label>
				<div class="controls">
                    <div id="hdp_ticket_attachments"
class="dropzone needsclick dz-clickable">

                    </div>
				</div>
			</div>
		<?php
			echo
HelpdeskproHelperHtml::loadCommonLayout('common/tmpl/ticket_upload_attachments.php');
		}
		?>
		<div class="form-actions">
			<input type="button" name="btnSubmit"
class="btn btn-primary" value="<?php echo
Text::_('HDP_CANCEL'); ?>"
			       onclick="HDP.ticketList();"/>
			<input type="submit" name="btnSubmit"
class="btn btn-primary"
			       value="<?php echo Text::_('HDP_SUBMIT_TICKET');
?>" />
		</div>
		<input type="hidden" name="option"
value="com_helpdeskpro"/>
		<input type="hidden" name="task"
value="ticket.save"/>
		<?php echo HTMLHelper::_('form.token'); ?>
	</form>
</div>PK=,�[�'+[BBTickets/Html.phpnu�[���<?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
 */

namespace OSSolution\HelpdeskPro\Admin\View\Tickets;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\Utilities\ArrayHelper;
use OSSolution\HelpdeskPro\Site\Helper\Database as
HelpdeskproHelperDatabase;
use OSSolution\HelpdeskPro\Site\Helper\Helper as HelpdeskproHelper;
use OSSolution\HelpdeskPro\Site\Helper\Html as HelpdeskproHelperHtml;

defined('_JEXEC') or die;

/***
 * @property \OSSolution\HelpdeskPro\Admin\Model\Tickets $model
 */
class Html extends \OSL\View\ListView
{
	protected function beforeRender()
	{
		parent::beforeRender();

		$user = $this->container->user;

		$config = HelpdeskproHelper::getConfig();

		// Category filter
		$filters = array();

		if (!$user->authorise('core.admin',
'com_helpdeskpro'))
		{
			$managedCategoryIds =
HelpdeskproHelper::getTicketCategoryIds($user->get('username'));
			$managedCategoryIds = ArrayHelper::toInteger($managedCategoryIds);

			$filters[] = 'id IN (' . implode(',',
$managedCategoryIds) . ')';
		}
		$rows = HelpdeskproHelperDatabase::getAllCategories('title',
$filters);

		$this->lists['filter_category_id'] =
HelpdeskproHelperHtml::buildCategoryDropdown($this->state->filter_category_id,
'filter_category_id', 'class="input-large
form-select" onchange="submit();"', $rows);

		// Ticket status filter
		$rowStatuses = HelpdeskproHelperDatabase::getAllStatuses();

		if (count($rowStatuses))
		{
			$options   = array();
			$options[] = HTMLHelper::_('select.option', -1,
Text::_('HDP_TICKET_STATUS'), 'id',
'title');
			$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_ALL_STATUSES'), 'id', 'title');
			$options   = array_merge($options, $rowStatuses);

			$this->lists['filter_status_id'] =
HTMLHelper::_('select.genericlist', $options,
'filter_status_id',
				array(
					'option.text.toHtml' => false,
					'option.text'        => 'title',
					'option.key'         => 'id',
					'list.attr'          => 'class="input-medium
form-select" onchange="submit();"',
					'list.select'        =>
$this->state->filter_status_id));
		}

		// Ticket priority filter
		$rowPriorities = HelpdeskproHelperDatabase::getAllPriorities();

		if (count($rowPriorities))
		{
			$options   = array();
			$options[] = HTMLHelper::_('select.option', 0,
Text::_('HDP_ALL_PRIORITIES'), 'id',
'title');
			$options   = array_merge($options, $rowPriorities);

			$this->lists['filter_priority_id'] =
HTMLHelper::_('select.genericlist', $options,
'filter_priority_id',
				array(
					'option.text.toHtml' => false,
					'option.text'        => 'title',
					'option.key'         => 'id',
					'list.attr'          => 'class="input-medium
form-select" onchange="submit();"',
					'list.select'        =>
$this->state->filter_priority_id));
		}

		$statusList = array();

		foreach ($rowStatuses as $status)
		{
			$statusList[$status->id] = $status->title;
		}

		$priorityList = array();

		foreach ($rowPriorities as $priority)
		{
			$priorityList[$priority->id] = $priority->title;
		}

		// Label filter
		$rowLabels = HelpdeskproHelperDatabase::getAllLabels();

		if (count($rowLabels))
		{
			$options                        = array();
			$options[]                      =
HTMLHelper::_('select.option', 0,
Text::_('HDP_SELECT_LABEL'), 'id', 'title');
			$options                        = array_merge($options, $rowLabels);
			$this->lists['filter_label_id'] =
HTMLHelper::_('select.genericlist', $options,
'filter_label_id',
				array(
					'option.text.toHtml' => false,
					'option.text'        => 'title',
					'option.key'         => 'id',
					'list.attr'          => 'class="input-medium
form-select" onchange="submit();"',
					'list.select'        =>
$this->state->filter_label_id));
		}

		/**
		 * Filter ticket by staff
		 */
		if (PluginHelper::isEnabled('helpdeskpro',
'assignticket'))
		{
			$staffDisplayField              =
$config->get('staff_display_field', 'username') ?:
'username';
			$staffs                         =
HelpdeskproHelperDatabase::getAllStaffs($config->staff_group_id);
			$options                        = array();
			$options[]                      =
HTMLHelper::_('select.option', 0,
Text::_('HDP_SELECT_STAFF'), 'id',
$staffDisplayField);
			$options                        = array_merge($options, $staffs);
			$this->lists['filter_staff_id'] =
HTMLHelper::_('select.genericlist', $options,
'filter_staff_id', 'class="input-medium
form-select" onchange="submit();"', 'id',
$staffDisplayField, $this->state->filter_staff_id);

			$rowStaffs = array();

			foreach ($staffs as $staff)
			{
				$rowStaffs[$staff->id] = $staff->{$staffDisplayField};
			}

			$this->staffs          = $rowStaffs;
			$this->showStaffColumn = true;
		}

		$this->fields       =
HelpdeskproHelperDatabase::getFieldsOnListView();
		$this->fieldValues  =
$this->model->getFieldsData($this->fields);
		$this->statusList   = $statusList;
		$this->priorityList = $priorityList;
		$this->config       = $config;

		return true;
	}

	/**
	 * Override addToolbar method to add custom toolbar for tickets
management
	 */
	protected function addToolbar()
	{
		ToolbarHelper::title(Text::_('HDP_TICKET_MANAGEMENT'),
'link tickets');
		ToolbarHelper::addNew('ticket.add');
		ToolbarHelper::deleteList(Text::_('HDP_DELETE_CONFIRM'),
'ticket.delete');
		ToolbarHelper::custom('ticket.export', 'download',
'download', 'Export Tickets', false);

		if ($this->container->user->authorise('core.admin',
'com_helpdeskpro'))
		{
			ToolbarHelper::preferences('com_helpdeskpro');
		}
	}
}PK=,�[v�!�&�&Tickets/tmpl/default.phpnu�[���<?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\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;

$ordering = $this->state->filter_order == 'tbl.ordering';

HTMLHelper::_('bootstrap.tooltip');

if (!HelpdeskproHelper::isJoomla4())
{
	HTMLHelper::_('formbehavior.chosen', 'select');
}
?>
<form
action="index.php?option=com_helpdeskpro&view=tickets"
method="post" name="adminForm"
id="adminForm">
	<div class="row-fluid">
		<div id="j-sidebar-container" class="span2">
			<?php echo $this->sidebar; ?>
		</div>
		<div id="j-main-container" class="span10">
			<div id="filter-bar" class="btn-toolbar">
				<div class="filter-search btn-group pull-left">
					<label for="filter_search"
class="element-invisible"><?php echo
Text::_('HDP_SEARCH_TICKETS_DESC');?></label>
					<input type="text" name="filter_search"
id="filter_search" placeholder="<?php echo
Text::_('JSEARCH_FILTER'); ?>" value="<?php echo
$this->escape($this->state->filter_search); ?>"
class="hasTooltip form-control" title="<?php echo
HTMLHelper::tooltipText('HDP_FILTER_SEARCH_TICKETS_DESC');
?>" />
				</div>
				<div class="btn-group pull-left">
					<button type="submit" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_SUBMIT');
?>"><span
class="icon-search"></span></button>
					<button type="button" class="btn hasTooltip"
title="<?php echo
HTMLHelper::tooltipText('JSEARCH_FILTER_CLEAR'); ?>"
onclick="document.getElementById('filter_search').value='';this.form.submit();"><span
class="icon-remove"></span></button>
				</div>
				<div class="btn-group pull-right hidden-phone">
					<?php
						echo $this->lists['filter_category_id'];

						if (isset($this->lists['filter_status_id']))
						{
							echo $this->lists['filter_status_id'];
						}

						if (isset($this->lists['filter_priority_id']))
						{
							echo $this->lists['filter_priority_id'];
						}

						if (isset($this->lists['filter_label_id']))
						{
							echo $this->lists['filter_label_id'];
						}

						if (!empty($this->showStaffColumn))
						{
							echo $this->lists['filter_staff_id'];
						}
					?>
				</div>
			</div>
			<div class="clearfix"></div>
			<table class="adminlist table table-striped">
				<thead>
				<tr>
					<th width="5">
						<?php echo Text::_('NUM'); ?>
					</th>
					<th width="20">
						<input type="checkbox" name="toggle"
value="" onclick="Joomla.checkAll(this);"/>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_TITLE'), 'tbl.subject',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_CATEGORY'), 'tbl.category_id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title" style="text-align:
left;">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_USER'), 'c.username',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<?php
                    foreach ($this->fields as $field)
                    {
                    ?>
                        <th class="title">
                            <?php
                                if ($field->is_searchable)
                                {
	                                echo HTMLHelper::_('grid.sort',
Text::_($field->title), 'tbl.' . $field->name,
$this->state->filter_order_Dir, $this->state->filter_order);
                                }
                                else
                                {
	                                echo $field->title;
                                }
                            ?>
                        </th>
                    <?php
                    }
					?>
					<th class="title">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_CREATED_DATE'), 'tbl.created_date',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
					<th class="title">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_MODIFIED_DATE'), 'tbl.modified_date',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
                    <?php
                    if
(isset($this->lists['filter_status_id']))
                    {
                    ?>
                        <th width="8%">
                            <?php echo
HTMLHelper::_('grid.sort', Text::_('HDP_STATUS'),
'tbl.status_id', $this->state->filter_order_Dir,
$this->state->filter_order); ?>
                        </th>
                    <?php
                    }

                    if
(isset($this->lists['filter_priority_id']))
                    {
                    ?>
                        <th width="8%">
                            <?php echo
HTMLHelper::_('grid.sort', Text::_('HDP_PRIORITY'),
'tbl.priority_id', $this->state->filter_order_Dir,
$this->state->filter_order); ?>
                        </th>
                    <?php
                    }

                    if (!empty($this->showStaffColumn))
					{
					?>
						<th width="8%">
							<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_STAFF'), 'tbl.staff_id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
						</th>
					<?php
					}
					?>
					<th width="2%">
						<?php echo HTMLHelper::_('grid.sort',
Text::_('HDP_ID'), 'tbl.id',
$this->state->filter_order_Dir, $this->state->filter_order);
?>
					</th>
				</tr>
				</thead>
				<tfoot>
				<tr>
					<td colspan="<?php echo 10 + count($this->fields);
?>">
						<?php echo $this->pagination->getListFooter(); ?>
					</td>
				</tr>
				</tfoot>
				<tbody>
				<?php
				$k = 0;
				for ($i = 0, $n = count($this->items); $i < $n; $i++)
				{
					$row     = $this->items[$i];
					$link =
Route::_('index.php?option=com_helpdeskpro&view=ticket&id='
. $row->id);
					$checked = HTMLHelper::_('grid.id', $i, $row->id);
					if ($row->user_id)
					{
						$accountLink =
'index.php?option=com_users&task=user.edit&id=' .
$row->user_id;
					}
					?>
					<tr class="<?php echo "row$k"; ?>
hdp-ticket-status-<?php $row->status_id; ?>">
						<td>
							<?php echo $this->pagination->getRowOffset($i); ?>
						</td>
						<td>
							<?php echo $checked; ?>
						</td>
						<td>
							<a href="<?php echo $link; ?>"><?php echo
$row->subject; ?></a>
							<?php
							if ($row->label_id)
							{
								?>
								<span class="label_box"
								      style="background-color: #<?php echo
$row->color_code; ?>"><?php echo $row->label_title;
?></span>
								<?php
							}
							?>
						</td>
						<td>
							<?php echo $row->category_title; ?>
						</td>
						<td>
							<span class="submitter_name"><?php echo
$row->name; ?>
								<?php
								if ($row->username)
								{
								?>
									<a href="<?php echo $accountLink; ?>"
									   title="View
Profile"><span>[<strong><?php echo
$row->username; ?></strong>]</span></a>
								<?php
								}
								?>
							</span>
							<span class="submitter_email"><a
									href="mailto:<?php echo $row->email;
?>"><?php echo $row->email; ?></a></span>
						</td>
						<?php
                        foreach ($this->fields as $field)
                        {
                        ?>
                            <td>
                                <?php echo
isset($this->fieldValues[$row->id][$field->id]) ?
$this->fieldValues[$row->id][$field->id] : ''; ?>
                            </td>
                        <?php
                        }
						?>
						<td align="center">
							<?php echo HTMLHelper::_('date', $row->created_date,
$this->config->date_format); ?>
						</td>
						<td align="center">
							<?php echo HTMLHelper::_('date',
$row->modified_date, $this->config->date_format); ?>
						</td>
                        <?php
                            if
(isset($this->lists['filter_status_id']))
                            {
                            ?>
                                <td>
		                            <?php echo
@$this->statusList[$row->status_id]; ?>
                                </td>
                            <?php
                            }

                            if
(isset($this->lists['filter_priority_id']))
                            {
                            ?>
                                <td>
		                            <?php echo
$this->priorityList[$row->priority_id]; ?>
                                </td>
                            <?php
                            }

                            if (!empty($this->showStaffColumn))
                            {
                            ?>
                                <td>
                                    <?php echo
$this->staffs[$row->staff_id]; ?>
                                </td>
                            <?php
                            }
						?>
						<td align="center">
							<?php echo $row->id; ?>
						</td>
					</tr>
					<?php
					$k = 1 - $k;
				}
				?>
				</tbody>
			</table>
		</div>
	</div>	
	<input type="hidden" name="task"
value=""/>
	<input type="hidden" name="boxchecked"
value="0"/>
	<input type="hidden" name="filter_order"
value="<?php echo $this->state->filter_order;
?>"/>
	<input type="hidden" name="filter_order_Dir"
value="<?php echo $this->state->filter_order_Dir;
?>"/>
	<?php echo HTMLHelper::_('form.token'); ?>
</form>PK��[����'
'
CategoriesView.phpnu�[���PK��[F��(��i
CategoryFeedView.phpnu�[���PK��[7�M����CategoryView.phpnu�[���PK��[��׍cc�=HtmlView.phpnu�[���PK���[�.�
	
	^\AbstractView.phpnu�[���PK���[
N���eCsvView.phpnu�[���PK���[
��~
~
gItemView.phpnu�[���PK���[��Ѣ�tJsonView.phpnu�[���PK���[6����vListView.phpnu�[���PK�,�[S���^^�AbstractBlock.phpnu�[���PK�,�[��]}FF��AbstractLayout.phpnu�[���PK�,�[�g{II�AbstractViewAjax.phpnu�[���PK�,�[���iz(z(��Html.phpnu�[���PK=,�[��#�YYT�Activities/Html.phpnu�[���PK=,�[�
lN
N
��Activities/tmpl/default.phpnu�[���PK=,�[
�YY��Article/Html.phpnu�[���PK=,�[b�ܶ��"�Article/tmpl/default.phpnu�[���PK=,�[5�~"/	/	$?�Article/tmpl/default_translation.phpnu�[���PK=,�[�^����Articles/Html.phpnu�[���PK=,�[��u�����Articles/tmpl/default.phpnu�[���PK=,�[�T����Categories/Html.phpnu�[���PK=,�[6������Categories/tmpl/default.phpnu�[���PK=,�[(XIMqq-Category/Html.phpnu�[���PK=,�[C�n��2Category/tmpl/default.phpnu�[���PK=,�[_<�74	4	%ECategory/tmpl/default_translation.phpnu�[���PK=,�[�[*���NConfiguration/Html.phpnu�[���PK=,�[���A�A�mConfiguration/tmpl/default.phpnu�[���PK=,�[�:�Z��"�Configuration/tmpl/default_api.phpnu�[���PK=,�[�c����)+�Configuration/tmpl/default_custom_css.phpnu�[���PK=,�[8
��a�Email/Html.phpnu�[���PK=,�[�'Q9m,m,H�Email/tmpl/default.phpnu�[���PK=,�[do=6)6)"��Email/tmpl/default_translation.phpnu�[���PK=,�[�����Field/Html.phpnu�[���PK=,�[�F�#�#�#Field/tmpl/default.phpnu�[���PK=,�[q��Qss"�GField/tmpl/default_translation.phpnu�[���PK=,�[�&���wSFields/Html.phpnu�[���PK=,�[�ʇ����VFields/tmpl/default.phpnu�[���PK=,�[G4�bbWpLabel/Html.phpnu�[���PK=,�[ϖ���rLabel/tmpl/default.phpnu�[���PK=,�[�*�����yLabels/tmpl/default.phpnu�[���PK=,�[,�{���Language/Html.phpnu�[���PK=,�[��~����Language/tmpl/default.phpnu�[���PK=,�[�))	�Priorities/tmpl/default.phpnu�[���PK=,�[�2��}�Priority/tmpl/default.phpnu�[���PK=,�[4MW�44%s�Priority/tmpl/default_translation.phpnu�[���PK=,�[Щ)hh��Replies/tmpl/default.phpnu�[���PK=,�[\�Y����Reply/tmpl/default.phpnu�[���PK=,�[7�u���Report/Html.phpnu�[���PK=,�[��������Report/tmpl/default.phpnu�[���PK=,�[t��jj�Status/tmpl/default.phpnu�[���PK=,�[���#�	Status/tmpl/default_translation.phpnu�[���PK=,�[�H�"||�Statuses/tmpl/default.phpnu�[���PK=,�[���oo_&Ticket/Html.phpnu�[���PK=,�[�?���
@Ticket/tmpl/default.phpnu�[���PK=,�[�	V??"TTicket/tmpl/form.phpnu�[���PK=,�[�'+[BB�fTickets/Html.phpnu�[���PK=,�[v�!�&�&'~Tickets/tmpl/default.phpnu�[���PK99?�