function display($tpl = null) { JHTML::_('behavior.modal', 'a.fst_modal'); $user = JFactory::getUser(); $this->userid = $user->get('id'); // remove any admin open stuff $_SESSION['admin_create'] = 0; $_SESSION['admin_create_user_id'] = 0; $_SESSION['ticket_email'] = ""; $_SESSION['ticket_name'] = ""; // set up permissions $mainframe = JFactory::getApplication(); $aparams = $mainframe->getPageParameters('com_fst'); $this->permission = FST_Ticket_Helper::getAdminPermissions(); $model = $this->getModel(); $model->_perm_where = FST_Ticket_Helper::$_perm_where; // sort layout $layout = JRequest::getVar('layout', JRequest::getVar('_layout', '')); $this->assignRef('layout', $layout); // return $this->displayModerate(); // }
static function getUserSetting($setting) { if (empty(FST_Helper::$_permissions)) { FST_Ticket_Helper::getAdminPermissions(); } if (empty(FST_Helper::$user_defaults)) { FST_Helper::getUserDefaults(); } if (array_key_exists('settings', FST_Ticket_Helper::$_permissions) && is_array(FST_Ticket_Helper::$_permissions['settings']) && array_key_exists($setting, FST_Ticket_Helper::$_permissions['settings'])) { return FST_Ticket_Helper::$_permissions['settings'][$setting]; } if (array_key_exists($setting, FST_Helper::$user_defaults)) { return FST_Helper::$user_defaults[$setting]; } return 0; }
function ParserPopulateTicket(&$parser, $row) { $parser->Clear(); if ($row) { $parser->SetVar('ref', $row['reference']); $parser->SetVar('subject', "<a href='" . FSTRoute::_('index.php?option=com_fst&view=admin&layout=support&ticketid=' . $row['id']) . "'>" . $row['title'] . "</a>"); $parser->SetVar("status", "<span style='color:" . $row['color'] . ";'>" . $row['status'] . "</span>"); if ($row['user_id'] == 0) { $name = $row['unregname'] . " (" . JText::_("UNREG") . ")"; } else { $name = $row['name']; } $parser->SetVar("name", $name); $parser->SetVar("lastactivity", FST_Helper::Date($row['lastupdate'], FST_DATETIME_SHORT)); $parser->SetVar("opened", FST_Helper::Date($row['opened'], FST_DATETIME_SHORT)); $parser->SetVar("closed", FST_Helper::Date($row['closed'], FST_DATETIME_SHORT)); $parser->SetVar("department", $row['department']); $parser->SetVar("category", $row['category']); $parser->SetVar("product", $row['product']); $parser->SetVar("priority", "<span style='color:" . $row['pricolor'] . ";'>" . $row['priority'] . "</span>"); $groups = implode(", ", $row['groups']); $parser->SetVar('groups', $groups); $parser->SetVar('deletebutton', 'deletebutton'); $parser->SetVar('archivebutton', 'archivebutton'); if (array_key_exists("custom", $row)) { $allcustom = array(); if (count($row['custom']) > 0) { foreach ($row['custom'] as $id => $value) { if (array_key_exists($id, $this->customfields)) { $field = $this->customfields[$id]; if ($field['type'] == "plugin") { $aparams = FSTCF::GetValues($field); if (array_key_exists("plugin", $aparams) && array_key_exists("plugindata", $aparams)) { $plugin = FSTCF::get_plugin($aparams['plugin']); $value = $plugin->Display($value, $aparams['plugindata'], array('ticketid' => $row['id'], 'userid' => $row['user_id'], 'ticket' => $row), $field['id']); } } $text = "<span class='fst_support_fieldname'>" . $this->customfields[$id]['description'] . "</span>"; if ($this->customfields[$id]['type'] == "checkbox") { if ($value == "on") { $text .= ": " . JText::_("Yes"); } else { $text .= ": " . JText::_("No"); } } else { $text .= ": " . $value; } $parser->SetVar("custom" . $id, $text); $allcustom[] = $text; } } } //echo "All custom : " . implode(", ",$allcustom) . "<br>"; $parser->SetVar("custom", implode(", ", $allcustom)); } if ($row['assigned'] == '') { $parser->SetVar('handlername', JText::_("UNASSIGNED")); } else { $parser->SetVar('handlername', $row['assigned']); } $parser->SetVar('username', $row['username']); $parser->SetVar('email', $row['useremail']); $parser->SetVar('handlerusername', $row['handlerusername']); $parser->SetVar('handleremail', $row['handleremail']); $icons = ""; if (FST_Settings::get('support_show_msg_counts')) { $icons .= "<span>"; $icons .= "<span style='font-weight:normal;top:-2px;position:relative;padding-right:2px;'>" . $row['msgcount']['total'] . "</span><span style='font-weight:normal;top:-2px;position:relative;padding-right:2px;'>x</span><img src='" . JURI::root(true) . "/components/com_fst/assets/images/messages.png'>"; $icons .= "</span>"; } $cotime = $this->db_time - strtotime($row['checked_out_time']); if ($cotime < FST_Settings::get('support_lock_time') && $row['checked_out'] != $this->userid && $row['checked_out'] > 0) { $html = "<div class='fst_user_tt'>" . $row['co_user']->name . " (" . $row['co_user']->email . ")</div>"; $icons .= "<img class='fsj_tip' src='" . JURI::root(true) . "/components/com_fst/assets/images/lock.png' title=\"" . JText::_('TICKET_LOCKED') . "::" . $html . "\">"; } else { $icons .= "<img src='" . JURI::root(true) . "/components/com_fst/assets/images/blank_16.png'>"; } if (!FST_Settings::get('support_hide_tags')) { if (isset($row['tags'])) { $html = ""; foreach ($row['tags'] as $tag) { $html .= "<div class='fst_tag_tt'>" . $tag['tag'] . "</div>"; } $icons .= "<img class='fsj_tip' src='" . JURI::root(true) . "/components/com_fst/assets/images/tag.png' title=\"" . JText::_('TICKET_TAGS') . "::" . $html . "\">"; } else { $icons .= "<img src='" . JURI::root(true) . "/components/com_fst/assets/images/blank_16.png'>"; } } if (isset($row['attach'])) { $html = "<table class='fst_attach_tt'>"; foreach ($row['attach'] as $attach) { $html .= "<tr style='border:0px;'><td nowrap style='border:0px;'>" . $attach['filename'] . " </td><td nowrap style='border:0px;'> " . FST_Helper::display_filesize($attach['size']) . "</td></tr>"; } $html .= "<table>"; $icons .= "<img class='fsj_tip' src='" . JURI::root(true) . "/components/com_fst/assets/images/attach.png' title=\"" . JText::_('TICKET_ATTACHMENTS') . "::" . $html . "\">"; } else { $icons .= "<img src='" . JURI::root(true) . "/components/com_fst/assets/images/blank_16.png'>"; } $parser->SetVar('icons', $icons); $delete = "<a href='" . FSTRoute::x('index.php?option=com_fst&view=admin&layout=support&tickets=' . JRequest::getVar('tickets') . '&delete=' . $row['id']) . "'>"; $delete .= "<img src='" . JURI::root(true) . "/components/com_fst/assets/images/delete_ticket.png'>"; $delete .= JText::_("DELETE") . "</a>"; $archive = "<a href='" . FSTRoute::x('index.php?option=com_fst&view=admin&layout=support&tickets=' . JRequest::getVar('tickets') . '&archive=' . $row['id']) . "'>"; $archive .= "<img src='" . JURI::root(true) . "/components/com_fst/assets/images/archive_ticket.png'>"; $archive .= JText::_("ARCHIVE") . "</a>"; $parser->SetVar('archivebutton', $archive); $parser->SetVar('deletebutton', $delete); // TODO: trhl /*id='ticket_<?php echo $ticket['id'];?>' onmouseover="$('ticket_<?php echo $ticket['id'];?>').style.background = '<?php echo FST_Settings::get('css_hl'); ?>';$('ticket_<?php echo $ticket['id'];?>_2').style.background = '<?php echo FST_Settings::get('css_hl'); ?>';" onmouseout="$('ticket_<?php echo $ticket['id'];?>').style.background = '';$('ticket_<?php echo $ticket['id'];?>_2').style.background = '';"*/ $this->_permissions = FST_Ticket_Helper::getAdminPermissions(); $type = "unassigned"; if ($row['admin_id'] == $this->_permissions['id']) { $type = "mine"; } else { if ($row['admin_id'] > 0) { $type = "other"; } } $style = ""; if (array_key_exists($row['ticket_pri_id'], $this->priorities)) { $pri = $this->priorities[$row['ticket_pri_id']]; if ($pri['backcolor']) { $style .= "background-color: {$pri['backcolor']};"; } } $handler_highlight = "ticket_type_{$type}"; $parser->SetVar('handler_highlight', $handler_highlight); $trhl = " class='ticket_{$row['id']} ' onmouseover='highlightticket({$row['id']})' onmouseout='unhighlightticket({$row['id']})' "; if (FST_Settings::get('support_entire_row')) { $style .= "cursor: pointer;"; $trhl .= " onclick='window.location=\"" . FSTRoute::x('&limitstart=&ticketid=' . $row['id']) . "\"' "; } $trhl .= " style='{$style}' "; $parser->SetVar('trhl', $trhl); } $parser->SetVar("showassigned", $this->showassigned); $parser->SetVar("hidehandler", FST_Settings::get('support_hide_handler')); $parser->SetVar("candelete", FST_Settings::get('support_delete')); $parser->SetVar("view", $this->ticket_view); }
static function getAdminPermissions() { if (empty(FST_Ticket_Helper::$_permissions)) { $mainframe = JFactory::getApplication(); global $option; $user = JFactory::getUser(); $userid = $user->id; $db = JFactory::getDBO(); $query = "SELECT * FROM #__fst_user WHERE user_id = '" . FSTJ3Helper::getEscaped($db, $userid) . "'"; $db->setQuery($query); FST_Ticket_Helper::$_permissions = $db->loadAssoc(); if (!FST_Ticket_Helper::$_permissions) { FST_Ticket_Helper::$_permissions['mod_kb'] = 0; FST_Ticket_Helper::$_permissions['mod_test'] = 0; FST_Ticket_Helper::$_permissions['support'] = 0; FST_Ticket_Helper::$_permissions['seeownonly'] = 1; FST_Ticket_Helper::$_permissions['autoassignexc'] = 1; FST_Ticket_Helper::$_permissions['allprods'] = 1; FST_Ticket_Helper::$_permissions['allcats'] = 1; FST_Ticket_Helper::$_permissions['alldepts'] = 1; FST_Ticket_Helper::$_permissions['artperm'] = 0; FST_Ticket_Helper::$_permissions['id'] = 0; FST_Ticket_Helper::$_permissions['groups'] = 0; FST_Ticket_Helper::$_permissions['reports'] = 0; FST_Ticket_Helper::$_permissions['settings'] = ''; } FST_Ticket_Helper::$_permissions['userid'] = $userid; FST_Ticket_Helper::$_perm_only = ''; FST_Ticket_Helper::$_perm_prods = ''; FST_Ticket_Helper::$_perm_depts = ''; FST_Ticket_Helper::$_perm_cats = ''; FST_Ticket_Helper::$_permissions['perm_where'] = ''; // // check for permission overrides for Joomla 1.6 if (FST_Settings::get('perm_article_joomla') || FST_Settings::get('perm_mod_joomla')) { if (FST_Helper::Is16()) { $newart = 0; $newmod = 0; $user = JFactory::getUser(); if ($user->authorise('core.edit.own', 'com_fst')) { $newart = 1; } if ($user->authorise('core.edit', 'com_fst')) { $newart = 2; $newmod = 1; } if ($user->authorise('core.edit.state', 'com_fst')) { $newart = 3; $newmod = 1; } if (FST_Settings::get('perm_article_joomla') && $newart > FST_Ticket_Helper::$_permissions['artperm']) { FST_Ticket_Helper::$_permissions['artperm'] = $newart; } if (FST_Settings::get('perm_mod_joomla') && $newmod > FST_Ticket_Helper::$_permissions['mod_kb']) { FST_Ticket_Helper::$_permissions['mod_kb'] = $newmod; } // } else { $newart = 0; $newmod = 0; $user = JFactory::getUser(); if ($user->authorize('com_fst', 'create', 'content', 'own')) { $newart = 1; } if ($user->authorize('com_fst', 'edit', 'content', 'own')) { $newart = 2; $newmod = 1; } if ($user->authorize('com_fst', 'publish', 'content', 'all')) { $newart = 3; $newmod = 1; } if (FST_Settings::get('perm_article_joomla') && $newart > FST_Ticket_Helper::$_permissions['artperm']) { FST_Ticket_Helper::$_permissions['artperm'] = $newart; } if (FST_Settings::get('perm_mod_joomla') && $newmod > FST_Ticket_Helper::$_permissions['mod_kb']) { FST_Ticket_Helper::$_permissions['mod_kb'] = $newmod; } } } } return FST_Ticket_Helper::$_permissions; }
function &getTicketCount() { return FST_Ticket_Helper::getTicketCount(); }
static function AdminTo($mailer, &$ticket) { $rcpt = 0; // keep track of how many recipients // if email all admins if (FST_Settings::get('support_email_all_admins')) { if (!FST_Settings::get('support_email_all_admins_only_unassigned') || $ticket['admin_id'] > 0) { // Build a list of all available ticket handlers $handlers = FST_Ticket_Helper::ListHandlers($ticket['prod_id'], $ticket['ticket_dept_id'], $ticket['ticket_cat_id'], FST_Settings::get('support_email_all_admins_ignore_auto'), FST_Settings::get('support_email_all_admins_can_view')); // add handlers to the email to list $rcpt += FST_EMail::AddAdminAddress($mailer, $handlers); } } if ($ticket['admin_id'] < 1) { $rcpt += FST_EMail::AddMultiAddress($mailer, FST_Settings::get('support_email_unassigned')); } else { $rcpt += FST_EMail::AddAdminAddress($mailer, $ticket['admin_id']); } // any cc emails need adding if (FST_Settings::get('support_email_admincc')) { $rcpt += FST_EMail::AddMultiAddress($mailer, FST_Settings::get('support_email_admincc')); } return $rcpt; }
function __construct($identifier, $itemid = -1, &$itemlist = null) { $this->uid = mt_rand(1000, 9999); if (JRequest::getVar('uid') > 0) { $this->uid = JRequest::getVar('uid'); } /*$this->use_comments = FST_Settings::get('announce_comments_allow'); if (!$this->use_comments) return;*/ $this->identifier = $identifier; $this->_permissions = FST_Ticket_Helper::getAdminPermissions(); $this->use_email = FST_Settings::get('commnents_use_email'); //FSJ_Settings::GetComponentSetting( fsj_get_com(), 'comments_email', 1 ); $this->use_website = FST_Settings::get('commnents_use_website'); //FSJ_Settings::GetComponentSetting( fsj_get_com(), 'comments_website', 1 ); $this->tmplpath = JPATH_SITE . DS . 'components' . DS . 'com_fst' . DS . 'tmpl' . DS . 'comments'; $this->dest_email = FST_Settings::get('email_on_comment'); $this->itemid = $itemid; $this->itemlist = $itemlist; $this->post = array(); $this->post['name'] = $this->GetName(); $this->post['email'] = ''; $this->post['website'] = ''; $this->post['body'] = ''; $this->post['created'] = 'now'; $this->post['ident'] = $identifier; $this->post['itemid'] = $itemid; $this->errors = array(); $this->errors['name'] = ''; $this->errors['email'] = ''; $this->errors['website'] = ''; $this->errors['body'] = ''; $this->errors['captcha'] = ''; $this->errors['itemid'] = ''; // text templates $this->add_a_comment = JText::_("ADD_A_COMMENT"); $this->post_comment = JText::_("POST_COMMENT"); $this->comments_hide_add = FST_Settings::get('comments_hide_add'); if (FST_Settings::get('comments_who_can_add') == "registered") { if ($this->_permissions['userid'] == 0) { $this->can_add = 0; } } $captcha = new FST_Captcha(); $this->captcha = $captcha->GetCaptcha(); // set up moderation $commod = FST_Settings::get('comments_moderate'); $this->moderate = 0; if ($commod == "all") { $this->moderate = 1; } elseif ($commod == "guests") { if ($this->_permissions['userid'] == 0) { $this->moderate = 1; } } elseif ($commod == "registered") { if ($this->_permissions['mod_kb'] == 0) { $this->moderate = 1; } } // determine template and if its custom or not $this->IncludeTemplates(); $this->template = "comments_general"; $this->template_type = 3; if (FST_Settings::get('comments_general_use_custom')) { $this->template_type = 2; } if ($this->handler) { $this->template = "comments_" . $this->handler->GetName(); $this->template_type = 3; if (FST_Settings::get('comments_' . $this->handler->GetName() . '_use_custom')) { $this->template_type = 2; } } //print_p($this); //exit; }
function TestRef() { $format = JRequest::getVar('ref'); $ref = FST_Ticket_Helper::createRef(1234, $format); echo $ref; exit; }