Ejemplo n.º 1
0
?>
">

<input type="hidden" name="customer_id" value="<?php 
echo isset($_REQUEST['customer_id']) ? (int) $_REQUEST['customer_id'] : '';
?>
">

<?php 
module_form::print_form_auth();
$search_bar = array('elements' => array('ticket_id' => array('title' => _l('Number:'), 'field' => array('type' => 'text', 'name' => 'search[ticket_id]', 'value' => isset($search['ticket_id']) ? $search['ticket_id'] : '', 'size' => 5)), 'name' => array('title' => _l('Subject:'), 'field' => array('type' => 'text', 'name' => 'search[generic]', 'value' => isset($search['generic']) ? $search['generic'] : '', 'size' => 10)), 'ticket_content' => array('title' => _l('Message:'), 'field' => array('type' => 'text', 'name' => 'search[ticket_content]', 'value' => isset($search['ticket_content']) ? $search['ticket_content'] : '', 'size' => 10)), 'contact' => array('title' => _l('Contact:'), 'field' => array('type' => 'text', 'name' => 'search[contact]', 'value' => isset($search['contact']) ? $search['contact'] : '', 'size' => 10)), 'date' => array('title' => _l('Date:'), 'fields' => array(array('type' => 'date', 'name' => 'search[date_from]', 'value' => isset($search['date_from']) ? $search['date_from'] : ''), _l('to'), array('type' => 'date', 'name' => 'search[date_to]', 'value' => isset($search['date_to']) ? $search['date_to'] : ''))), 'type' => array('title' => _l('Type:'), 'field' => array('type' => 'select', 'name' => 'search[ticket_type_id]', 'value' => isset($search['ticket_type_id']) ? $search['ticket_type_id'] : '', 'options' => module_ticket::get_types(), 'options_array_id' => 'name')), 'Status' => array('title' => _l('Status:'), 'field' => array('type' => 'select', 'name' => 'search[status_id]', 'value' => isset($search['status_id']) ? $search['status_id'] : '', 'options' => $search_statuses, 'blank' => _l('All'))), 'Priority' => array('title' => _l('Priority:'), 'field' => array('type' => 'select', 'name' => 'search[priority]', 'value' => isset($search['priority']) ? $search['priority'] : '', 'options' => module_ticket::get_ticket_priorities())), 'Staff' => array('title' => _l('Staff:'), 'field' => array('type' => 'select', 'name' => 'search[assigned_user_id]', 'value' => isset($search['assigned_user_id']) ? $search['assigned_user_id'] : '', 'options' => module_ticket::get_ticket_staff_rel()))));
if (class_exists('module_faq', false) && module_config::c('ticket_show_product_list', 1)) {
    $search_bar['elements']['Product'] = array('title' => _l('Product:'), 'field' => array('type' => 'select', 'name' => 'search[faq_product_id]', 'value' => isset($search['faq_product_id']) ? $search['faq_product_id'] : '', 'options' => module_faq::get_faq_products_rel()));
}
if (class_exists('module_envato', false)) {
    $search_bar['elements']['envato'] = array('title' => _l('Envato:'), 'field' => array('type' => 'select', 'name' => 'search[envato_item_id]', 'value' => isset($search['envato_item_id']) ? $search['envato_item_id'] : '', 'options' => array(-1 => 'No product') + module_envato::get_envato_items_rel()));
}
echo module_form::search_bar($search_bar);
if (class_exists('module_envato', false) && module_config::c('envato_show_ticket_earning', 0)) {
    $item_ticket_count = array();
    $envato_count = module_cache::get('ticket', 'envato_ticket_earning');
    //if($envato_count===false){
    while ($ticket = mysql_fetch_assoc($tickets)) {
        $items = module_envato::get_items_by_ticket($ticket['ticket_id']);
        if (count($items)) {
            foreach ($items as $item_id => $item) {
                if (!isset($item_ticket_count[$item_id])) {
                    $item_ticket_count[$item_id] = array('envato_id' => $item_id, 'name' => $item['name'], 'count' => 0, 'cost' => $item['cost']);
                }
                $item_ticket_count[$item_id]['count']++;
                $envato_count += $item['cost'];
Ejemplo n.º 2
0
?>

		</td>
        <?php 
if (class_exists('module_envato', false)) {
    ?>

        <td width="27">
            <?php 
    echo _l('Envato:');
    ?>

        </td>
        <td>
            <?php 
    echo print_select_box(module_envato::get_envato_items_rel(), 'search[envato_item_id]', isset($search['envato_item_id']) ? $search['envato_item_id'] : '');
    ?>

        </td>
        <?php 
}
?>

		<td class="search_action">
			<?php 
echo create_link("Reset", "reset", module_ticket::link_open(false));
?>

			<?php 
echo create_link("Search", "submit");
?>
Ejemplo n.º 3
0
/** 
 * Copyright: dtbaker 2012
 * Licence: Please check CodeCanyon.net for licence details. 
 * More licence clarification available here:  http://codecanyon.net/wiki/support/legal-terms/licensing-terms/ 
 * Deploy: 9809 f200f46c2a19bb98d112f2d32a8de0c4
 * Envato: 4ffca17e-861e-4921-86c3-8931978c40ca
 * Package Date: 2015-11-25 02:55:20 
 * IP Address: 67.79.165.254
 */
if (!module_config::can_i('view', 'Settings') || !module_faq::can_i('edit', 'FAQ')) {
    redirect_browser(_BASE_HREF);
}
$faq_products = module_faq::get_faq_products();
$types = module_ticket::get_types();
if (class_exists('module_envato', false)) {
    $all_items_rel = module_envato::get_envato_items_rel();
}
if (isset($_REQUEST['faq_product_id']) && $_REQUEST['faq_product_id']) {
    $show_other_settings = false;
    $faq_product_id = (int) $_REQUEST['faq_product_id'];
    if ($faq_product_id > 0) {
        $faq_product = module_faq::get_faq_product($faq_product_id);
    } else {
        $faq_product = array();
    }
    if (!$faq_product) {
        $faq_product = array('name' => '', 'envato_item_ids' => '', 'default_type_id' => '');
    }
    ?>

Ejemplo n.º 4
0
 public static function api_filter_ticket($hook, $response, $endpoint, $method)
 {
     $response['ticket'] = true;
     switch ($method) {
         case 'list':
             if (class_exists('module_envato', false)) {
                 // todo: filter this in the api filter so we keep envato code in the envato plugin
                 $all_items_rel = module_envato::get_envato_items_rel();
             }
             $search = isset($_REQUEST['search']) && is_array($_REQUEST['search']) ? $_REQUEST['search'] : array();
             if (!isset($search['status_id'])) {
                 $search['status_id'] = '2,3,5';
             }
             // new/replied/inprogress
             $tickets_mysql = module_ticket::get_tickets($search, true);
             $response['tickets'] = array();
             $extra_keys = module_ticket::get_ticket_extras_keys();
             while ($ticket = mysql_fetch_assoc($tickets_mysql)) {
                 // return user details along with this ticket
                 $user = module_user::get_user($ticket['user_id'], false, true, true);
                 $ticket['user'] = array();
                 foreach (array('user_id', 'customer_id', 'vendor_id', 'email', 'name', 'last_name') as $field) {
                     $ticket['user'][$field] = isset($user[$field]) ? $user[$field] : '';
                 }
                 $staff = module_user::get_user($ticket['assigned_user_id'] ? $ticket['assigned_user_id'] : module_config::c('ticket_default_user_id', 1), false, true, true);
                 $ticket['staff'] = array();
                 foreach (array('user_id', 'customer_id', 'vendor_id', 'email', 'name', 'last_name') as $field) {
                     $ticket['staff'][$field] = isset($staff[$field]) ? $staff[$field] : '';
                 }
                 // find the extra data associated with this ticket.
                 $ticket['extra'] = array();
                 foreach (self::get_ticket_extras($ticket['ticket_id']) as $extra_data) {
                     if (isset($extra_keys[$extra_data['ticket_data_key_id']])) {
                         $ticket['extra'][$extra_keys[$extra_data['ticket_data_key_id']]['key']] = $extra_data['value'];
                     }
                 }
                 if (class_exists('module_envato', false)) {
                     $ticket['user']['envato'] = array();
                     $ticket['user']['envato']['user'] = array();
                     $ticket['user']['envato']['purchases'] = array();
                     $envato_tickets = get_multiple('envato_ticket', array('ticket_id' => $ticket['ticket_id']));
                     foreach ($envato_tickets as $envato_ticket) {
                         if ($envato_ticket && $envato_ticket['envato_ticket_id']) {
                             if (isset($all_items_rel[$envato_ticket['envato_item_id']]) && $envato_ticket['envato_author_id']) {
                                 $envato_author = get_single('envato_author', 'envato_author_id', $envato_ticket['envato_author_id']);
                                 $buys = @unserialize($envato_author['purchase_history']);
                                 $purchase_history = array();
                                 foreach ($buys as $buy) {
                                     $purchase_history[] = $buy;
                                 }
                                 $ticket['user']['envato']['purchases'][$envato_ticket['envato_item_id']] = array('item_name' => $all_items_rel[$envato_ticket['envato_item_id']], 'envato_item_id' => $envato_ticket['envato_item_id'], 'license_code' => $envato_ticket['license_code']);
                                 $ticket['user']['envato']['user'][$envato_author['envato_username']] = array('envato_username' => $envato_author['envato_username'], 'purchase_history' => $purchase_history);
                             }
                         }
                     }
                 }
                 $ticket['url'] = self::link_open($ticket['ticket_id'], false, $ticket);
                 $response['tickets'][] = $ticket;
                 $response['reply_options'] = array(array('title' => 'Mark Thread Resolved', 'field' => array('type' => 'checkbox', 'value' => 1, 'name' => 'resolved', 'checked' => true)));
             }
             break;
         case 'message':
             $search = isset($_REQUEST['search']) && is_array($_REQUEST['search']) ? $_REQUEST['search'] : array();
             $response['tickets'] = array();
             if (empty($search['ticket_ids']) && isset($_REQUEST['ticket_ids'])) {
                 $search['ticket_ids'] = explode(',', $_REQUEST['ticket_ids']);
             }
             if (isset($search['ticket_ids']) && is_array($search['ticket_ids'])) {
                 foreach ($search['ticket_ids'] as $ticket_id) {
                     $ticket_id = (int) trim($ticket_id);
                     if ($ticket_id) {
                         $messages = module_ticket::get_ticket_messages($ticket_id, false);
                         if ($messages) {
                             foreach ($messages as $message_id => $message) {
                                 $user = module_user::get_user($message['from_user_id'], false);
                                 $messages[$message_id]['user'] = array();
                                 foreach (array('customer_id', 'vendor_id', 'email', 'name', 'last_name') as $field) {
                                     $messages[$message_id]['user'][$field] = isset($user[$field]) ? $user[$field] : '';
                                 }
                             }
                             $response['tickets'][$ticket_id] = $messages;
                         }
                     }
                 }
             }
             break;
         case 'reply':
             $ticket_id = (int) $_REQUEST['ticket_id'];
             $message = $_REQUEST['message'];
             $extra_data = isset($_REQUEST['extra_data']) && is_array($_REQUEST['extra_data']) ? $_REQUEST['extra_data'] : array();
             // do we mark is as resolved? similar to bbpress api
             if ($ticket_id && $message) {
                 // send a reply to this particular message.
                 $ticket_data = self::get_ticket($ticket_id);
                 if ($ticket_data && $ticket_data['ticket_id'] == $ticket_id) {
                     $from_user_id = $ticket_data['assigned_user_id'] ? $ticket_data['assigned_user_id'] : module_config::c('ticket_default_user_id', 1);
                     // send this back in initial api response.
                     $ticket_message_id = self::send_reply($ticket_id, $message, $from_user_id, $ticket_data['user_id'], 'admin');
                     $response['ticket_message_id'] = $ticket_message_id;
                     if ($ticket_message_id) {
                         if (!empty($extra_data['resolved'])) {
                             update_insert("ticket_message_id", $ticket_message_id, "ticket_message", array('status_id' => _TICKET_STATUS_RESOLVED_ID));
                             update_insert("ticket_id", $ticket_id, "ticket", array('status_id' => _TICKET_STATUS_RESOLVED_ID));
                             $response['stat'] = 'Changing status to ' . _TICKET_STATUS_RESOLVED_ID;
                         } else {
                             // change the ticket to in progress
                             update_insert("ticket_message_id", $ticket_message_id, "ticket_message", array('status_id' => _TICKET_STATUS_IN_PROGRESS_ID));
                             update_insert("ticket_id", $ticket_id, "ticket", array('status_id' => _TICKET_STATUS_IN_PROGRESS_ID));
                             $response['stat'] = 'Changing status to ' . _TICKET_STATUS_IN_PROGRESS_ID;
                         }
                     }
                     module_cache::clear('ticket');
                 }
             }
             if (empty($response['ticket_message_id'])) {
                 $response['error'] = true;
                 $response['message'] = 'Failed to send message reply.';
             }
             break;
     }
     return $response;
 }