Customization > Blocks and Modifications

[Block] SimpleDesk

(1/1)

ccbtimewiz:
SimpleDesk Block

SMF 2.0
SimpleDesk 2.0 Anatidae




--- Code: ---<?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($tickets, 0, $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>';
}

?>
--- End code ---

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.

♦ Ninja ZX-10RR ♦:
/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!

GeneralMitch:
Where do I download this mods I dont see a link

andy:
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.

Navigation

[0] Message Index

Go to full version