SimplePortal
Customization => Blocks and Modifications => Topic started 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)
<?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>';
}
?>
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.
-
/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!
-
Where do I download this mods I dont see a link
-
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.