Пример #1
0
 static function core(&$parser, $ticket, $custom_fields = null)
 {
     if ($ticket) {
         $parser->SetVar('ref', $ticket->reference);
         $parser->SetVar("status", "<span style='color:" . $ticket->color . ";'>" . $ticket->status . "</span>");
         $parser->SetVar("status_text", $ticket->status);
         $parser->SetVar("status_color", $ticket->color);
         if ($ticket->user_id == 0) {
             $name = $ticket->unregname . " (" . JText::_("UNREG") . ")";
         } else {
             $name = $ticket->name;
         }
         $parser->SetVar("name", $name);
         $parser->SetVar("lastactivity", FSS_Helper::TicketTime($ticket->lastupdate, FSS_DATETIME_SHORT));
         $parser->SetVar("opened", FSS_Helper::TicketTime($ticket->opened, FSS_DATETIME_SHORT));
         $parser->SetVar("closed", FSS_Helper::TicketTime($ticket->closed, FSS_DATETIME_SHORT));
         $parser->SetVar("department", $ticket->department);
         $parser->SetVar("category", $ticket->category);
         $parser->SetVar("product", $ticket->product);
         $parser->SetVar("priority", "<span style='color:" . $ticket->pricolor . ";'>" . $ticket->priority . "</span>");
         $parser->SetVar("priority_text", $ticket->priority);
         $parser->SetVar("priority_color", $ticket->pricolor);
         if (FSS_Settings::get('time_tracking') != "") {
             if ($ticket->timetaken > 0) {
                 $hours = floor($ticket->timetaken / 60);
                 $mins = sprintf("%02d", $ticket->timetaken % 60);
                 $parser->SetVar("time_taken", "<i class='icon-clock'></i>" . JText::sprintf("TIME_TAKEN_DISP", $hours, $mins));
             } else {
                 $parser->SetVar("time_taken", "<i class='icon-clock'></i>" . JText::sprintf("TIME_TAKEN_DISP", "0", "00"));
             }
         } else {
             $parser->SetVar("time_taken", '');
         }
         $group_names = array();
         if (isset($ticket->groups)) {
             foreach ($ticket->groups as $group) {
                 $group_names[] = $group->groupname;
             }
         }
         $parser->SetVar('groups', implode(", ", $group_names));
         if (empty($ticket->custom) && !empty($ticket->fields)) {
             $ticket->custom = $ticket->fields;
         }
         if (isset($ticket->customfields)) {
             foreach ($ticket->customfields as $field) {
                 if ($field['type'] != "plugin") {
                     continue;
                 }
                 $aparams = FSSCF::GetValues($field);
                 $plugin = FSSCF::get_plugin($aparams['plugin']);
                 $id = $field['id'];
                 $value = "";
                 if (isset($ticket->custom) && array_key_exists($field['id'], $ticket->custom)) {
                     $value = $ticket->custom[$field['id']];
                 }
                 if (is_array($value)) {
                     $value = $value['value'];
                 }
                 $text = $plugin->Display($value, $aparams['plugindata'], array('ticketid' => $ticket->id, 'userid' => $ticket->user_id, 'ticket' => $ticket, 'inlist' => 1), $field['id']);
                 $parser->SetVar("custom" . $id, $text);
                 $parser->SetVar("custom_" . $id, $text);
                 $cf_alias = $field['alias'];
                 $parser->SetVar("custom_" . $cf_alias, $text);
                 $parser->SetVar("custom_" . $id . "_name", $field['description']);
             }
         }
         if (isset($ticket->custom)) {
             $allcustom = array();
             if (count($ticket->custom) > 0) {
                 foreach ($ticket->custom as $id => $value) {
                     if (is_array($value)) {
                         $value = $value['value'];
                     }
                     if (isset($ticket->customfields) && array_key_exists($id, $ticket->customfields)) {
                         $field = $ticket->customfields[$id];
                         if ($field['inlist'] < 1) {
                             continue;
                         }
                         if ($field['type'] == "plugin") {
                             $aparams = FSSCF::GetValues($field);
                             if (array_key_exists("plugin", $aparams) && array_key_exists("plugindata", $aparams)) {
                                 $plugin = FSSCF::get_plugin($aparams['plugin']);
                                 $value = $plugin->Display($value, $aparams['plugindata'], array('ticketid' => $ticket->id, 'userid' => $ticket->user_id, 'ticket' => $ticket, 'inlist' => 1), $field['id']);
                             }
                         }
                         $prefix = "<span class='cust_field_label cust_field_label_{$cf_alias} cust_field_label_{$id}'>" . $ticket->customfields[$id]['description'] . ":</span> ";
                         if ($ticket->customfields[$id]['type'] == "checkbox") {
                             if ($value == "on") {
                                 $text = JText::_("Yes");
                             } else {
                                 $text = JText::_("No");
                             }
                         } else {
                             $text = $value;
                         }
                         $parser->SetVar("custom" . $id, $text);
                         $parser->SetVar("custom_" . $id, $text);
                         $cf_alias = $ticket->customfields[$id]['alias'];
                         $parser->SetVar("custom_" . $cf_alias, $text);
                         $parser->SetVar("custom_" . $id . "_name", $ticket->customfields[$id]['description']);
                         $allcustom[] = $prefix . "<span class='cust_field_value cust_field_value_{$cf_alias} cust_field_value_{$id}'>" . $text . "</span>";
                     }
                 }
             }
             $parser->SetVar("custom", implode(", ", $allcustom));
         }
         if ($ticket->assigned == '') {
             $parser->SetVar('handlername', JText::_("UNASSIGNED"));
         } else {
             $parser->SetVar('handlername', $ticket->assigned);
         }
         $parser->SetVar('username', $ticket->username);
         $parser->SetVar('email', $ticket->useremail);
         $parser->SetVar('handlerusername', $ticket->handlerusername);
         $parser->SetVar('handleremail', $ticket->handleremail);
         // product image
         $prod = self::getProduct($ticket);
         if ($prod) {
             $parser->SetVar('product_img', JURI::root(true) . "/images/fss/products/" . $prod->image);
         }
         $dept = self::getDepartment($ticket);
         if ($dept) {
             $parser->SetVar('department_img', JURI::root(true) . "/images/fss/departments/" . $dept->image);
         }
         if (strpos($parser->template, "{last_poster}") !== false || strpos($parser->template, "{last_poster_username}") !== false) {
             $parser->SetVar('last_poster', '');
             $parser->SetVar('last_poster_username', '');
             $db = JFactory::getDBO();
             $qry = "SELECT user_id, posted FROM #__fss_ticket_messages WHERE ticket_ticket_id = " . $db->escape($ticket->id) . " AND admin IN (0, 1) ORDER BY posted DESC LIMIT 1";
             $db->setQuery($qry);
             $rows = $db->loadObjectList();
             if ($rows) {
                 $row = reset($rows);
                 if ($row) {
                     $user_id = $row->user_id;
                     $user = JFactory::getUser($user_id);
                     $parser->SetVar('last_poster', $user->name);
                     $parser->SetVar('last_poster_username', $user->username);
                 }
             }
         }
     }
 }
Пример #2
0
 function CanEditField($field)
 {
     if (is_array($field) && $field['type'] == "plugin") {
         $aparams = FSSCF::GetValues($field);
         $plugin = FSSCF::get_plugin($aparams['plugin']);
         if (!$plugin->CanEdit()) {
             return false;
         }
     }
     $peruser = "";
     if (is_array($field)) {
         $peruser = $field['peruser'];
     } else {
         $peruser = $field->peruser;
     }
     if ($peruser == 1) {
         $owner = $this->ticket['user_id'];
         $user = JFactory::getUser();
         $userid = $user->get('id');
         if ($owner == $userid) {
             return true;
         }
     } else {
         if ($this->ticket['can_edit']) {
             return true;
         }
     }
     return false;
 }
Пример #3
0
 function CanEditField($field)
 {
     if (is_array($field) && $field['type'] == "plugin") {
         $aparams = FSSCF::GetValues($field);
         $plugin = FSSCF::get_plugin($aparams['plugin']);
         if (!$plugin->CanEdit()) {
             return false;
         }
     }
     return true;
 }
Пример #4
0
 static function FieldOutput(&$field, &$fieldvalues, $context)
 {
     $value = "";
     if (count($fieldvalues) > 0) {
         foreach ($fieldvalues as $fieldvalue) {
             if ($fieldvalue['field_id'] == $field['id']) {
                 $value = $fieldvalue['value'];
                 break;
             }
         }
     }
     if ($field['type'] == "plugin") {
         $aparams = FSSCF::GetValues($field);
         $plugin = FSSCF::get_plugin($aparams['plugin']);
         $value = $plugin->Display($value, $aparams['plugindata'], $context, $field['id']);
     }
     if ($field['type'] == "area") {
         $value = str_replace("\n", "<br />", $value);
     }
     if ($field['type'] == "checkbox") {
         if ($value == "on") {
             return "Yes";
         }
         return "No";
     }
     return $value;
 }
Пример #5
0
 function store($data)
 {
     $row = $this->getTable();
     if (!$row->bind($data)) {
         print $this->_db->getErrorMsg();
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     if (!$row->check()) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     if (!$row->store()) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     // sort code for all products
     $db = JFactory::getDBO();
     $query = "DELETE FROM #__fss_field_prod WHERE field_id = " . FSSJ3Helper::getEscaped($db, $row->id);
     $db->setQuery($query);
     $db->Query();
     // store new product ids
     if (!$row->allprods) {
         $query = "SELECT * FROM #__fss_prod ORDER BY title";
         $db->setQuery($query);
         $products = $db->loadObjectList();
         foreach ($products as $product) {
             $id = $product->id;
             $value = JRequest::getVar("prod_" . $product->id);
             if ($value != "") {
                 $query = "INSERT INTO #__fss_field_prod (field_id, prod_id) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . "," . FSSJ3Helper::getEscaped($db, $id) . ")";
                 $db->setQuery($query);
                 $db->Query();
             }
         }
     }
     // sort code for all departments
     $query = "DELETE FROM #__fss_field_dept WHERE field_id = " . FSSJ3Helper::getEscaped($db, $row->id);
     $db->setQuery($query);
     $db->Query();
     // store new department ids
     if (!$row->alldepts) {
         $query = "SELECT * FROM #__fss_ticket_dept ORDER BY title";
         $db->setQuery($query);
         $products = $db->loadObjectList();
         foreach ($products as $product) {
             $id = $product->id;
             $value = JRequest::getVar("dept_" . $product->id);
             if ($value != "") {
                 $query = "INSERT INTO #__fss_field_dept (field_id, ticket_dept_id) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . "," . FSSJ3Helper::getEscaped($db, $id) . ")";
                 $db->setQuery($query);
                 $db->Query();
             }
         }
     }
     // sort code for all categories
     $query = "DELETE FROM #__fss_field_values WHERE field_id = " . FSSJ3Helper::getEscaped($db, $row->id);
     $db->setQuery($query);
     $db->Query();
     if ($row->type == "text") {
         $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'text_min=" . FSSJ3Helper::getEscaped($db, JRequest::getInt('text_min', 0)) . "')";
         $db->setQuery($query);
         $db->Query();
         $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'text_max=" . FSSJ3Helper::getEscaped($db, JRequest::getInt('text_max', 60)) . "')";
         $db->setQuery($query);
         $db->Query();
         $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'text_size=" . FSSJ3Helper::getEscaped($db, JRequest::getInt('text_size', 40)) . "')";
         $db->setQuery($query);
         $db->Query();
     } else {
         if ($row->type == "area") {
             $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'area_width=" . FSSJ3Helper::getEscaped($db, JRequest::getInt('area_width', 60)) . "')";
             $db->setQuery($query);
             $db->Query();
             $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'area_height=" . FSSJ3Helper::getEscaped($db, JRequest::getInt('area_height', 4)) . "')";
             $db->setQuery($query);
             $db->Query();
         } else {
             if ($row->type == "combo") {
                 $values = explode("\n", JRequest::getVar('combo_values', ''));
                 $offset = 0;
                 foreach ($values as $value) {
                     $value = trim($value);
                     if ($value == '') {
                         continue;
                     }
                     $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'" . sprintf("%03d", $offset) . "|" . FSSJ3Helper::getEscaped($db, $value) . "')";
                     $db->setQuery($query);
                     $db->Query();
                     $offset++;
                 }
             } else {
                 if ($row->type == "radio") {
                     $values = explode("\n", JRequest::getVar('radio_values', ''));
                     $offset = 0;
                     foreach ($values as $value) {
                         $value = trim($value);
                         if ($value == '') {
                             continue;
                         }
                         $query = "INSERT INTO #__fss_field_values (field_id, value) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'" . sprintf("%03d", $offset) . "|" . FSSJ3Helper::getEscaped($db, $value) . "')";
                         $db->setQuery($query);
                         $db->Query();
                         $offset++;
                     }
                 } else {
                     if ($row->type == "plugin") {
                         $plugin = JRequest::getVar("plugin", "");
                         $data = "";
                         if ($plugin) {
                             $plo = FSSCF::get_plugin($plugin);
                             $data = $plo->SaveSettings();
                         }
                         $query = "INSERT INTO #__fss_field_values (field_id, value, data) VALUES (" . FSSJ3Helper::getEscaped($db, $row->id) . ",'plugin=" . FSSJ3Helper::getEscaped($db, $plugin) . "', '" . $db->escape($data) . "')";
                         $db->setQuery($query);
                         $db->Query();
                     }
                 }
             }
         }
     }
     $this->_id = $row->id;
     $this->_data = $row;
     return true;
 }
Пример #6
0
 function pluginForm()
 {
     $plugin = JRequest::GetVar('plugin', '');
     if ($plugin == "") {
         exit;
     }
     $plugin = FSSCF::get_plugin($plugin);
     echo $plugin->DisplaySettings(null);
     exit;
 }