Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
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��[��ccHtmlView.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'] ;
?> <?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; ?>">
</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?�