SimplePortal

Customization => Blocks and Modifications => Topic started by: ccbtimewiz on November 03, 2015, 09:06:58 PM

Title: [Block] SimpleDesk
Post by: ccbtimewiz on November 03, 2015, 09:06:58 PM
SimpleDesk Block

SMF 2.0
SimpleDesk 2.0 Anatidae

(http://i.imgur.com/Knw5Sey.png)

Code: [Select]
<?php

/**
 * @block SimpleDesk
 * @author Rhode Fey (Sayaka Maizono)
 * @version 1.0.0
 * @for SimpleDesk 2.0.0
*/

global $context$modSettings$txt$sourcedir;

$txt['shd_not_installed'] = 'Simple Desk is not currently installed!';

if (!
file_exists($sourcedir '/sd_source/SimpleDesk.php'))
{
echo '
<span class="smalltext" style="color: red;">
$txt['shd_not_installed']  . '
</span>'
;

return;
}

if (empty(
$modSettings['helpdesk_active']) || !empty($modSettings['shd_maintenance_mode']))
{
echo '
<span class="smalltext" style="color: red;">
$txt['shd_inactive'] . '
</span>'
;

return;
}

require_once(
$sourcedir '/sd_source/Subs-SimpleDesk.php');
require_once(
$sourcedir '/sd_source/SimpleDesk-SSI.php');

$is_staff false;
$staff_members shd_members_allowed_to('shd_staff');

if (
in_array($context['user']['id'], $staff_members))
$is_staff true;

if (
$is_staff)
show_tickets();
else
show_own_tickets();

function 
show_tickets()
{
global $context$scripturl$settings$txt;

$number_to_show 6;

$assigned_tickets ssi_staffAssignedTickets($context['user']['id'], $number_to_show'array');
$remaining_tickets ssi_getSDTickets('hdt.id_member_assigned != {int:assigned} AND hdt.status != {int:closed}', array('assigned' => $context['user']['id'], 'closed' => 6), $number_to_show'hdt.status ASC''array');

$tickets array_merge($assigned_tickets$remaining_tickets);
$tickets array_slice($tickets0$number_to_show);

ksort($tickets);
$ticket_count count($tickets);
$count 0;

if (empty($tickets))
{
echo '
<span class="smalltext" style="color: red;">
$txt['shd_error_no_tickets'] . '
</span>'
;

return;
}

echo '
<table class="sp_fullwidth">'
;

foreach ($tickets as $ticket)
{
if ($ticket['assigned']['id'] == $context['user']['id'])
{
$assigned true;
$icon '<img src="' $settings['default_images_url'] . '/simpledesk/assign.png" alt="Assigned to ' $context['user']['name'] . '" />';
}
else
{
$assigned false;
$icon '<img src="' $settings['default_images_url'] . '/simpledesk/unread.png" alt="Ticket" />';
}

echo '
<tr>
<td style="width: 24px; text-align: center;"><a href="' 
$ticket['href'] . '">' $icon '</a></td>
<td style="padding: 5px 0; vertical-align: bottom; '
$ticket_count != ++$count ' border-bottom: 1px dashed #AAA;' '''">';

echo '
<a href="' 
$scripturl '?action=helpdesk;sa=ticket;ticket=' $ticket['id'] . '">' $ticket['subject'] . '</a><br />';

echo '
<div style="padding-top: 3px; font-size: 9px">'
;

echo '
$txt['shd_ticket_status'] . ': ' $ticket['status_text'] . '<br />';

echo '
$txt['shd_ticket_urgency'] . ': ' $ticket['urgency_string'] . '<br />';

echo '
$txt['shd_ticket_started_by'] . ': ' $ticket['opener']['link'] . '<br />';

echo '
$ticket['start_time'] . '<br />';

echo '
</div>'
;

echo '
</td>
</tr>'
;
}

echo '
</table>'
;
}

function 
show_own_tickets()
{
global $context$scripturl$settings$txt;

$number_to_show 3;

$tickets ssi_userTickets($context['user']['id'], $number_to_show'array');

ksort($tickets);
$ticket_count count($tickets);
$count 0;

if (empty($tickets))
{
echo '
<span class="smalltext" style="color: red;">
$txt['shd_error_no_tickets'] . '
</span>'
;

return;
}

echo '
<table class="sp_fullwidth">'
;

foreach ($tickets as $ticket)
{
$icon '<img src="' $settings['default_images_url'] . '/simpledesk/unread.png" alt="Ticket" />';

echo '
<tr>
<td style="width: 24px; text-align: center;"><a href="' 
$ticket['href'] . '">' $icon '</a></td>
<td style="padding: 5px 0; vertical-align: bottom; '
$ticket_count != ++$count ' border-bottom: 1px dashed #AAA;' '''">';

echo '
<a href="' 
$scripturl '?action=helpdesk;sa=ticket;ticket=' $ticket['id'] . '">' $ticket['subject'] . '</a><br />';

echo '
<div style="padding-top: 3px; font-size: 9px">'
;

echo '
$txt['shd_ticket_status'] . ': ' $ticket['status_text'] . '<br />';

echo '
$ticket['start_time'] . '<br />';

echo '
</div>'
;

echo '
</td>
</tr>'
;
}

echo '
</table>'
;
}

?>

Known Issues
- Problems occur when in a multi-department setting. This problem seems to be present in the current version of SimpleDesk and needs to be fixed by their developers.
Title: Re: [Block] SimpleDesk
Post by: ♦ Ninja ZX-10RR ♦ on November 03, 2015, 09:11:16 PM
/Moved to Blocks and Modifications board.

Congrats, as it can clearly be seen in the screenshot I tested it and it works other than the "known issues" part. Very nice block!
Title: Re: [Block] SimpleDesk
Post by: GeneralMitch on June 08, 2017, 11:56:27 AM
Where do I download this mods I dont see a link
Title: Re: [Block] SimpleDesk
Post by: andy on June 08, 2017, 08:11:58 PM
There is no download. Just copy and paste the code in the top post.

Make a new block of type custom php.  Copy to code in and done.
For more information about block you can see the documentation - link at top.
SimplePortal 2.3.8 © 2008-2024, SimplePortal