STRIGANOV SERGEY: Software development.

Разработка программного обеспечения на: C++, T-SQL, VBS, JavaScript, PHP

PHP, MySQL. Improve HuruHelpdesk. Status and priotity: highlighting

Improve HuruHepldesk. Status and priotity: highlighting

 Добавляем подсветку приоритета и статуса заявки
в системе HuruHelpdesk

Для этого выполним небольшую работу с базой данных и подправим скрипт PHP:

 1 - В таблицу статусов prefix_huruhelpdesk_status добавим поле sstyle, в котором будем хранить стиль
отображения статуса - в формате HTML.  То же и для таблицы prefix_huruhelpdesk_priority - туда добавим поле pstyle.

2 - В файле  ...components\com_huruhelpdesk\models\hhlist.php изменим SQL запрос.

Обратите внимание, что это не доработка компонента до "штатного" функционала
- таким образом, чтобы можно было управлять подсветкой из меню администратора,
нет, это небольшой "хак", который позволит максимально быстро получить нужный функционал,
но при этом мы сознательно жертвуем удобством администрирования.
Впрочем, для редактирования подсветки из панели администрирования
Вы можете внести соответствующие изменения в PHP скрипты,
как это сделать - смотрите в следующей статье:
PHP, MySQL. Improve HuruHepldesk. Editing highlighting in administration panel.

Актуально для версии:
Joomla    2.5.4 
HuruHelpdesk   0.89.03 ( from Jesper )


Не забудьте заменить в SQL запросе prefix_ на Ваш.

SQL script:

DROP TABLE  `prefix_huruhelpdesk_status` ;

CREATE TABLE `prefix_huruhelpdesk_status`  (
	  `id` int(11) NOT NULL auto_increment,
	  `status_id` bigint(20) NOT NULL,
	  `sname` text NOT NULL,
	  `sstyle` text,
	  PRIMARY KEY  (`id`)
	) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;

INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (22,65,'Тестирование','<span style="color:red;">&nbsp;Тестирование&nbsp;</span>'); 
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (21,63,'В ожидании ответа инициатора','<span style="color:red;background-color: yellow;">&nbsp;В ожидании ответа инициатора&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (20,60,'Приостановлена','<span style="color: lime;background-color:green;">&nbsp;Приостановлена&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (18,50,'В работе','<span style="color:navy;">&nbsp;В работе&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (17,20,'Открыта','<span style="color:blue;">&nbsp;Открыта&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (15,1,'Новая','<span style="color:green;">&nbsp;Новая&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_status` (`id`,`status_id`,`sname`,`sstyle`) VALUES (24,100,'Закрыта','<span style="color:black;">&nbsp;Закрыта&nbsp;</span>');

DROP TABLE `prefix_huruhelpdesk_priority`;

CREATE TABLE `prefix_huruhelpdesk_priority` (
	  `priority_id` bigint(20) NOT NULL auto_increment,
	  `pname` text NOT NULL,
	  `pstyle` text,
	  UNIQUE KEY `priority_id` (`priority_id`)
	) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

INSERT INTO `prefix_huruhelpdesk_priority` (`priority_id`,`pname`,`pstyle`) VALUES (6,'Критичный','<span style="color:red;background-color: yellow;">&nbsp;Критичный&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_priority` (`priority_id`,`pname`,`pstyle`) VALUES (5,'Высокий','<span style="color:red;">&nbsp;Высокий&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_priority` (`priority_id`,`pname`,`pstyle`) VALUES (3,'Средний','<span style="color:blue;">&nbsp;Средний&nbsp;</span>');
INSERT INTO `prefix_huruhelpdesk_priority` (`priority_id`,`pname`,`pstyle`) VALUES (2,'Низкий','<span style="color:green;">&nbsp;Низкий&nbsp;</span>');
--

 

PHP script:   ...components\com_huruhelpdesk\models\hhlist.php

$query = "SELECT p.id as id, p.title as title, (select u.name from #__users u where u.username=p.uid ) as uid, p.start_date as start_date, pr.pstyle as priority, s.sstyle as status, ju.name as repname, maxresults.maxdate AS maxdate FROM #__huruhelpdesk_problems AS p LEFT OUTER JOIN #__huruhelpdesk_priority AS pr ON p.priority=pr.priority_id LEFT OUTER JOIN #__huruhelpdesk_status AS s ON p.status=s.id LEFT OUTER JOIN #__huruhelpdesk_users AS u ON u.id = p.rep LEFT OUTER JOIN #__users AS ju ON ju.id = u.joomla_id LEFT OUTER JOIN (SELECT max(addDate) as maxdate, id FROM #__huruhelpdesk_notes GROUP BY id) maxresults ON p.id = maxresults.id"
$query = $query.$where;
$query = $query.$orderby;
return $query;

//

 

Related links:  
http://www.huruhelpdesk.net/forums/5-feature-requests/1807-status-and-priotity-highlighting
http://www.hoduma.com/forum/6-feature-requests/18-status-and-priotity-highlighting

Add comment