continue with the standardization of code

1.9.x
kennyrodas 13 years ago committed by Yannick Warnier
parent eb09e16eea
commit 1352442dd6
  1. 47
      plugin/ticket/config.php
  2. 54
      plugin/ticket/database.php
  3. 84
      plugin/ticket/lang/english.php
  4. 75
      plugin/ticket/lang/french.php
  5. 85
      plugin/ticket/lang/spanish.php
  6. 6
      plugin/ticket/lib/tck_plugin.class.php
  7. 6
      plugin/ticket/s/actualizar_reporte.php
  8. 3
      plugin/ticket/s/asignar_tareas.php
  9. 24
      plugin/ticket/s/course_user_list.php
  10. 11
      plugin/ticket/s/download.php
  11. 4
      plugin/ticket/s/index.php
  12. 82
      plugin/ticket/s/myticket.php
  13. 135
      plugin/ticket/s/new_ticket.php
  14. 8
      plugin/ticket/s/report.php
  15. 240
      plugin/ticket/s/send_ticket.php
  16. 143
      plugin/ticket/s/ticket.class.php
  17. 5
      plugin/ticket/s/ticket_assign_log.php
  18. 7
      plugin/ticket/s/ticket_details.php
  19. 6
      plugin/ticket/s/tutor.php

@ -1,21 +1,46 @@
<?php
/* For licensing terms, see /license.txt */
/* bbb parameters that will be registered in the course settings */
/* Tables names constants */
define('PLUGIN_NAME', 'ticket');
define('TABLE_SUPPORT_ASSIGNED_LOG', 'tck_assigned_log');
define('TABLE_SUPPORT_CATEGORY', 'tck_category');
define('TABLE_SUPPORT_MESSAGE', 'tck_message');
define('TABLE_SUPPORT_PRIORITY', 'tck_priority');
define('TABLE_SUPPORT_PROJECT', 'tck_project');
define('TABLE_SUPPORT_STATUS', 'tck_status');
define('TABLE_SUPPORT_TICKET', 'tck_ticket');
define('TABLE_SUPPORT_MESSAGE_ATTACHMENTS', 'tck_message_attachments');
define("PLUGIN_NAME", "ticket");
define("TABLE_SUPPORT_ASSIGNED_LOG", "tck_assigned_log");
define("TABLE_SUPPORT_CATEGORY", "tck_category");
define("TABLE_SUPPORT_MESSAGE", "tck_message");
define("TABLE_SUPPORT_PRIORITY", "tck_priority");
define("TABLE_SUPPORT_PROJECT", "tck_project");
define("TABLE_SUPPORT_STATUS", "tck_status");
define("TABLE_SUPPORT_TICKET", "tck_ticket");
define("TABLE_SUPPORT_MESSAGE_ATTACHMENTS", "tck_message_attachments");
/* Ticket status constants */
define('NEWTCK', 'NAT'); // New ticket unassigned responsible
define('PENDING', 'PND'); // User waiting answer
define('UNCONFIRMED', 'XCF'); // Waiting for user response
define('CLOSE', 'CLS'); // Close ticket
define('REENVIADO', 'REE'); // @todo delete option. This is a location of USIL
/* Ticket priority constants */
define('NORMAL', 'NRM');
define('HIGH', 'ALT');
define('LOW', 'LOW');
/* Ticket source constants */
define('SRC_EMAIL', 'MAI');
define('SRC_PHONE', 'TEL');
define('SRC_PRESC', 'PRE');
/* Ticket category constants */
define('CAT_DOCU', 'DOC');
define('CAT_FORO', 'FOR');
define('CAT_ANNU', 'ANN');
require_once __DIR__.'/../../main/inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'plugin.class.php';
require_once api_get_path(LIBRARY_PATH).'course.lib.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
include_once api_get_path(LIBRARY_PATH).'export.lib.inc.php';
require_once api_get_path(PLUGIN_PATH).PLUGIN_NAME.'/lib/tck.lib.php';
require_once api_get_path(PLUGIN_PATH).PLUGIN_NAME.'/lib/tck_api.php';
require_once api_get_path(PLUGIN_PATH).PLUGIN_NAME.'/lib/tck_plugin.class.php';
require_once api_get_path(PLUGIN_PATH).PLUGIN_NAME.'/lib/tck_plugin.class.php';
require_once api_get_path(PLUGIN_PATH).PLUGIN_NAME.'/s/ticket.class.php';

@ -2,10 +2,10 @@
$table = Database::get_main_table('tck_assigned_log');
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
ticket_id int(11) DEFAULT NULL,
user_id int(11) DEFAULT NULL,
ticket_id int UNSIGNED DEFAULT NULL,
user_id int UNSIGNED DEFAULT NULL,
assigned_date datetime DEFAULT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
KEY FK_ticket_assigned_log (ticket_id) )";
Database::query($sql);
@ -15,26 +15,26 @@ $sql = "CREATE TABLE ".$table." (
category_id char(3) NOT NULL,
name varchar(100) NOT NULL,
description varchar(255) NOT NULL,
total_tickets int(11) NOT NULL DEFAULT '0',
total_tickets int UNSIGNED NOT NULL DEFAULT '0',
course_required char(1) NOT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (project_id,category_id) )";
Database::query($sql);
$table = Database::get_main_table('tck_message');
$sql = "CREATE TABLE ".$table." (
ticket_id int(11) NOT NULL,
message_id int(11) NOT NULL,
ticket_id int UNSIGNED NOT NULL,
message_id int UNSIGNED NOT NULL,
subject varchar(150) DEFAULT NULL,
message text NOT NULL,
status char(3) NOT NULL,
ip_address varchar(16) DEFAULT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (ticket_id,message_id),
KEY FK_tick_message (ticket_id) )";
@ -43,15 +43,15 @@ Database::query($sql);
$table = Database::get_main_table('tck_message_attch');
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
ticket_id int(11) NOT NULL,
ticket_id int UNSIGNED NOT NULL,
message_id char(2) NOT NULL,
message_attch_id char(2) NOT NULL,
path varchar(255) NOT NULL,
filename varchar(255) NOT NULL,
size varchar(25) DEFAULT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (ticket_id,message_id,message_attch_id),
KEY ticket_message_id_fk (message_id) ))";
@ -63,10 +63,10 @@ $sql = "CREATE TABLE IF NOT EXISTS ".$table." (
priority varchar(20) DEFAULT NULL,
priority_desc varchar(250) DEFAULT NULL,
priority_color varchar(25) DEFAULT NULL,
priority_urgency tinyint(4) DEFAULT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
priority_urgency tinyint DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (priority_id))";
Database::query($sql);
@ -77,10 +77,10 @@ $sql = "CREATE TABLE IF NOT EXISTS ".$table." (
name varchar(50) DEFAULT NULL,
description varchar(250) DEFAULT NULL,
email varchar(50) DEFAULT NULL,
other_area tinyint(1) NOT NULL DEFAULT '0',
sys_insert_user_id int(11) DEFAULT NULL,
other_area tinyint NOT NULL DEFAULT '0',
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (project_id))";
Database::query($sql);
@ -95,24 +95,24 @@ Database::query($sql);
$table = Database::get_main_table('tck_ticket');
$sql = "CREATE TABLE IF NOT EXISTS ".$table." (
ticket_id int(11) NOT NULL AUTO_INCREMENT,
ticket_id int UNSIGNED NOT NULL AUTO_INCREMENT,
ticket_code char(12) DEFAULT NULL,
project_id char(3) DEFAULT NULL,
category_id char(3) NOT NULL,
priority_id char(3) NOT NULL,
course_id int(11) NOT NULL,
request_user int(11) NOT NULL,
course_id int UNSIGNED NOT NULL,
request_user int UNSIGNED NOT NULL,
personal_email varchar(150) DEFAULT NULL,
assigned_last_user int(11) NOT NULL DEFAULT '0',
assigned_last_user int UNSIGNED NOT NULL DEFAULT '0',
status_id char(3) NOT NULL,
total_messages int(11) NOT NULL DEFAULT '0',
total_messages int UNSIGNED NOT NULL DEFAULT '0',
keyword varchar(250) DEFAULT NULL,
source char(3) NOT NULL,
start_date datetime NOT NULL,
end_date datetime DEFAULT NULL,
sys_insert_user_id int(11) DEFAULT NULL,
sys_insert_user_id int UNSIGNED DEFAULT NULL,
sys_insert_datetime datetime DEFAULT NULL,
sys_lastedit_user_id int(11) DEFAULT NULL,
sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
sys_lastedit_datetime datetime DEFAULT NULL,
PRIMARY KEY (ticket_id),
UNIQUE KEY UN_ticket_code (ticket_code),
@ -127,5 +127,3 @@ Database::query($sql);
//VALUES
//('show_tabs', 'tickets', 'checkbox', 'Platform', 'true', 'ShowTabsTitle', 'ShowTabsComment', NULL, 'TabsTickets', 1)";
//Database::query($sql);
?>

@ -1,55 +1,33 @@
<?php
/**
*
* @copyright (c) 2012 University of Geneva
* @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html
* @author Laurent Opprecht <laurent@opprecht.info>
*/
<?php /* License: see /license.txt */
//Needed in order to show the plugin title
$strings['plugin_title'] = "Videoconference";
$strings['plugin_comment'] = "Add a videoconference room in a Chamilo course using BigBlueButton (BBB)";
$strings['Videoconference'] = "Videoconference";
$strings['MeetingOpened'] = "Meeting opened";
$strings['MeetingClosed'] = "Meeting closed";
$strings['MeetingClosedComment'] = "If you have asked for your sessions to be recorded, the recording will be available in the list below when it has been completely generated.";
$strings['CloseMeeting'] = "Close meeting";
$strings['VideoConferenceXCourseX'] = "Videoconference #%s course %s";
$strings['VideoConferenceAddedToTheCalendar'] = "Videoconference added to the calendar";
$strings['VideoConferenceAddedToTheLinkTool'] = "Videoconference added to the link tool";
$strings['GoToTheVideoConference'] = "Go to the videoconference";
$strings['Records'] = "Recording";
$strings['Meeting'] = "Meeting";
$strings['ViewRecord'] = "View recording";
$strings['CopyToLinkTool'] = "Copy to link tool";
$strings['EnterConference'] = "Enter the videoconference";
$strings['RecordList'] = "Recording list";
$strings['ServerIsNotRunning'] = "Videoconference server is not running";
$strings['ServerIsNotConfigured'] = "Videoconference server is not configured";
$strings['XUsersOnLine'] = "%s user(s) online";
$strings['host'] = 'BigBlueButton host';
$strings['host_help'] = 'This is the name of the server where your BigBlueButton server is running. Might be localhost, an IP address (e.g. 192.168.13.54) or a domain name (e.g. my.video.com).';
$strings['salt'] = 'BigBlueButton salt';
$strings['salt_help'] = 'This is the security key of your BigBlueButton server, which will allow your server to authentify the Chamilo installation. Refer to the BigBlueButton documentation to locate it. Try bbb-conf --salt';
$strings['tool_enable'] = 'BigBlueButton videoconference tool enabled';
$strings['tool_enable_help'] = "Choose whether you want to enable the BigBlueButton videoconference tool.
Once enabled, it will show as an additional course tool in all courses' homepage, and teachers will be able to launch a conference at any time. Students will not be able to launch a conference, only join one. If you don't have a BigBlueButton server, please <a target=\"_blank\" href=\"http://bigbluebutton.org/\">set one up</a> or ask the Chamilo official providers for a quote. BigBlueButton is a free (as in freedom *and* beer), but its installation requires a set of technical skills that might not be immediately available to all. You can install it on your own or seek professional help to assist you or do it for you. This help, however, will generate a certain cost. In the pure logic of the free software, we offer you the tools to make your work easier and recommend professionals (the Chamilo Official Providers) that will be able to help you if this were too difficult.<br />";
$strings['big_blue_button_welcome_message'] = 'Welcome message';
$strings['big_blue_button_record_and_store'] = 'Record and store sessions';
$strings['plugin_tool_bbb'] = 'Video';
$strings['ThereAreNotRecordingsForTheMeetings'] = 'There are not recording for the meeting sessions';
$strings['NoRecording'] = 'No recording';
$strings['plugin_title'] = "Tickets";
$strings['plugin_comment'] = "Plugin to include a support tickets system inside Chamilo.";
$strings['TicketNum'] = "Ticket #";
$strings['Date'] = "Date";
$strings['DateLastEdition'] = "Last edited";
$strings['Category'] = "Category";
$strings['User'] = "User";
$strings['Program'] = "Program";
$strings['Responsible'] = "Assigned to";
$strings['Status'] = "Status";
$strings['Message'] = "Messages";
$strings['Description'] = "Description";
$strings['MyTickets'] = "My Tickets";
$strings['MsgWelcome'] = "Welcome to YOUR tickets section. Here, you'll be able to track the state of all the tickets you created in the main tickets section";
$strings['TckSuccessSave'] = "Your ticket has been created successfully";
$strings['ValidUser'] = "Please select a user";
$strings['ValidType'] = "Please select a type";
$strings['ValidSubject'] = "Please select a topic";
$strings['ValidCourse'] = "Please select a course";
$strings['ValidEmail'] = "The e-mail address must be valid";
$strings['ValidMessage'] = "You must enter a message";
$strings['Presential'] = "Presential";
$strings['PersonalEmail'] = "Personal e-mail";
$strings['Optional'] = "Optional";
$strings['ErrorRegisterMessage'] = "The ticket could not be created";
$strings['Source'] = "Source";

@ -1,48 +1,33 @@
<?php /* License: see /license.txt */
//Needed in order to show the plugin title
$strings['plugin_title'] = "Vidéoconférence";
$strings['plugin_comment'] = "Ajoutez un espace de vidéoconférences aux cours de Chamilo avec BigBlueButton (BBB)";
$strings['Videoconference'] = "Vidéoconférence";
$strings['MeetingOpened'] = "Session ouverte";
$strings['MeetingClosed'] = "Session fermée";
$strings['MeetingClosedComment'] = "Si vous avez demandé l'enregistrement des sessions de conférence, cet enregistrement apparaîtra dans la liste ci-dessous dans quelques instants.";
$strings['CloseMeeting'] = "Fermer la session";
$strings['VideoConferenceXCourseX'] = "Vidéoconférence #%s, cours %s";
$strings['VideoConferenceAddedToTheCalendar'] = "Vidéoconférence ajoutée au calendrier";
$strings['VideoConferenceAddedToTheLinkTool'] = "Vidéoconférence ajoutée comme lien. Vous pouvez éditer et publier le lien sur la page principale du cours depuis l'outil liens.";
$strings['GoToTheVideoConference'] = "Entrer dans la salle de conférence";
$strings['Records'] = "Enregistrement";
$strings['Meeting'] = "Salle de conférence";
$strings['ViewRecord'] = "Voir l'enregistrement";
$strings['CopyToLinkTool'] = "Ajouter comme lien du cours";
$strings['EnterConference'] = "Entrer dans la salle de conférence";
$strings['RecordList'] = "Liste des enregistrements";
$strings['ServerIsNotRunning'] = "Le serveur de vidéoconférence ne fonctionne pas";
$strings['ServerIsNotConfigured'] = "Le serveur de vidéoconférence n'est pas configuré correctement";
$strings['XUsersOnLine'] = "%s utilisateurs dans la salle";
$strings['host'] = 'Hôte de BigBlueButton';
$strings['host_help'] = "C'est le nom du serveur où le serveur de vidéoconférence a été habilité. Cela peut être localhost, une adresse IP (du genre 192.168.13.54) ou un nom de domaine (du genre ma.video.com).";
$strings['salt'] = 'Clef BigBlueButton';
$strings['salt_help'] = "C'est la clef de sécurité de votre serveur BigBlueButton (appelée 'salt' en anglais) qui permet à votre serveur de vérifier l'identité de votre installation de Chamilo et ainsi l'autoriser à se connecter. Veuillez vous référer à la documentation de BigBlueButton pour la localiser, ou utilisez la commande 'bbb-conf --salt' si vous disposez d'un accès en ligne de commande au serveur de vidéoconférence.";
$strings['tool_enable'] = 'Outil de vidéoconférence BigBlueButton activé';
$strings['tool_enable_help'] = "Choisissez si vous souhaitez activer l'outil de vidéoconférence BigBlueButton.
Une fois activé, il apparaîtra comme un outil additionnel sur toutes les pages principales de cours, et les enseignants pourront démarrer une conférence à n'importe quel moment. Les étudiants ne pourront pas lancer de nouvelle session de conférence, seulement se joindre à une session existante. Si vous ne disposez pas d'un serveur de vidéoconférence BigBlueButton, veuillez <a target=\"_blank\" href=\"http://bigbluebutton.org/\">en installer un</a> avant de poursuivre, ou demander un devis à l'un des fournisseurs officiels de Chamilo. BigBlueButton est un outil de logiciel libre (et gratuit), mais son installation pourrait présenter une certaine complexité et demander des compétences qui ne sont peut-être pas à la portée de tous. Vous pouvez l'installer vous-même à partir de la documentation (disponible publiquement) de BigBlueButton, ou recherchez un soutien professionnel. Ce soutien pourrait générer certains coûts (au moins le temps de la personne qui vous assiste dans l'opération). Dans le plus pur esprit du logiciel libre, nous vous fournissons les outils pour simplifier votre travail dans la mesure de nos possibilités, et nous vous recommandons des professionnels (les fournisseurs officiels de Chamilo) pour vous venir en aide au cas où ceux-ci seraient insuffisants.<br />";
$strings['big_blue_button_welcome_message'] = 'Message de bienvenue de BigBlueButton';
$strings['big_blue_button_record_and_store'] = 'Enregistrer les sessions de vidéoconférence';
$strings['plugin_tool_bbb'] = 'Vidéo';
$strings['ThereAreNotRecordingsForTheMeetings'] = 'Aucun enregistrement disponible';
$strings['NoRecording'] = "Pas d'enregistrement";
$strings['plugin_title'] = "Tickets";
$strings['plugin_comment'] = "Plugin de gestion des tickets de support.";
$strings['TicketNum'] = "Ticket #";
$strings['Date'] = "Date";
$strings['DateLastEdition'] = "Dernière modification";
$strings['Category'] = "Catégorie";
$strings['User'] = "Utilisateur";
$strings['Program'] = "Programme";
$strings['Responsible'] = "Assigné à";
$strings['Status'] = "Statut";
$strings['Message'] = "Messages";
$strings['Description'] = "Description";
$strings['MyTickets'] = "Mes tickets";
$strings['MsgWelcome'] = "Ceci est la section MES Tickets, où vous pouvez suivre l'évolution des tickets que vous avez créé";
$strings['TckSuccessSave'] = "Votre ticket a été enregistré";
$strings['ValidUser'] = "Veuillez sélectionner un utilisateur";
$strings['ValidType'] = "Veuillez sélectionner un type";
$strings['ValidSubject'] = "Veuillez sélectionner un sujet";
$strings['ValidCourse'] = "Veuillez sélectionner un cours";
$strings['ValidEmail'] = "L'adresse e-mail doit être correcte";
$strings['ValidMessage'] = "Veuillez introduire un message";
$strings['Presential'] = "Présentiel";
$strings['PersonalEmail'] = "E-mail personnel";
$strings['Optional'] = "Optionnel";
$strings['ErrorRegisterMessage'] = "Le ticket n'a pas pu être enregistré";
$strings['Source'] = "Source";

@ -3,20 +3,31 @@
$strings['plugin_title'] = "TicketSupport";
$strings['plugin_comment'] = "Plugin para el soporte de Tickets de atencion sobre Chamilo.";
$strings['TicketNum'] = "Ticket #";
$strings['Date'] = "Fecha";
$strings['DateLastEdition'] = "Ultima Edici&oacute;n";
$strings['TicketNum'] = "Ticket #";
$strings['Date'] = "Fecha";
$strings['DateLastEdition'] = "Ultima Edici&oacute;n";
$strings['Category'] = "Categoria";
$strings['User'] = "Usuario";
$strings['Program'] = "Programa";
$strings['Responsible'] = "Responsable";
$strings['Status'] = "Estado";
$strings['Message'] = "Mensajes";
$strings['Message'] = "Mensajes";
$strings['Description'] = "Descripcion";
$strings['MyTickets'] = "Mis Tickets";
$strings['MsgWelcome'] = "Bienvenido a su secci&oacute;n MIS TICKETS. Esta secci&oacute;n le permite revisar sus Tickets de Soporte generados en SOPORTE TECNICO";
$strings['TckSuccessSave'] = "Se registró con exito su ticket";
$strings['Tickets'] = "Tickets";
$strings['MyTickets'] = "Mis Tickets";
$strings['MsgWelcome'] = "Bienvenido a su secci&oacute;n MIS TICKETS. Esta secci&oacute;n le permite revisar sus Tickets de Soporte generados en SOPORTE TECNICO";
$strings['TckSuccessSave'] = "Se registró con exito su ticket";
$strings['TckClose'] = "Cerrar Tickets";
$strings['TckNew'] = "Nuevo Ticket";
$strings['TcksNew'] = "Tickets Nuevos";
$strings['Unassigned'] = "No asignados";
$strings['Unassign'] = "Desasignado";
$strings['Read'] = "Leidos";
$strings['Unread'] = "No Leidos";
$strings['RegisterDate'] = "Fecha de Registro";
$strings['Priority'] = "Prioridad";
$strings['AssignedTo'] = "Asignado a";
$strings['ValidUser'] = "Debe seleccionar a un usuario";
$strings['ValidType'] = "Debe seleccionar un tipo";
@ -25,53 +36,33 @@ $strings['ValidCourse'] = "Debe elegir un curso";
$strings['ValidEmail'] = "Debe digitar un email valido";
$strings['ValidMessage'] = "Debe escribir un mensaje";
$strings['Presential'] = "Presencial";
$strings['PersonalEmail'] = "Email Personal";
$strings['Optional'] = "Opcional";
$strings['ErrorRegisterMessage'] = "No se pudo registrar su ticket";
$strings['Source'] = "Fuente";
$strings['DeniedAccess'] = "Acceso denegado.";
$strings['Videoconference'] = "Videoconferencia";
$strings['MeetingOpened'] = "Sala abierta";
$strings['MeetingClosed'] = "Sala cerrada";
$strings['MeetingClosedComment'] = "Si ha pedido grabar la sesión de videoconferencia en los parámetros del curso, esta grabación aparecerá en la lista siguiente una vez generada.";
$strings['CloseMeeting'] = "Cerrar sala";
// Status Tickets
$strings['StsNew'] = "Nuevo";
$strings['StsPending'] = "Pendiente";
$strings['StsUnconfirmed'] = "Por Confirmar";
$strings['StsClose'] = "Cerrado";
$strings['StsReenviado'] = "Reenviado";
$strings['VideoConferenceXCourseX'] = "Videoconferencia #%s, curso %s";
$strings['VideoConferenceAddedToTheCalendar'] = "Videoconferencia añadida al calendario";
$strings['VideoConferenceAddedToTheLinkTool'] = "Videoconferencia añadida como enlace. Puede editar y publicar el enlace en la página principal del curso desde la herramienta de enlace.";
// Priority
$strings['Priority'] = "Prioridad";
$strings['PriorityHigh'] = "Alta";
$strings['PriorityNormal'] = "Normal";
$strings['PriorityLow'] = "Baja";
$strings['GoToTheVideoConference'] = "Ir a la videoconferencia";
// Source
$strings['SrcEmail'] = "Email";
$strings['SrcPhone'] = "Telefono";
$strings['SrcPresential'] = "Presencial";
$strings['Records'] = "Grabación";
$strings['Meeting'] = "Sala de conferencia";
$strings['ViewRecord'] = "Ver grabación";
$strings['CopyToLinkTool'] = "Añadir como enlace del curso";
$strings['EnterConference'] = "Entrar a la videoconferencia";
$strings['RecordList'] = "Lista de grabaciones";
$strings['ServerIsNotRunning'] = "El servidor de videoconferencia no está funcionando";
$strings['ServerIsNotConfigured'] = "El servidor de videoconferencia no está configurado correctamente";
$strings['XUsersOnLine'] = "%s usuario(s) en la sala";
$strings['host'] = 'Host de BigBlueButton';
$strings['host_help'] = 'Este es el nombre del servidor donde su servidor BigBlueButton está corriendo. Puede ser localhost, una dirección IP (ej: 192.168.13.54) o un nombre de dominio (ej: mi.video.com).';
$strings['salt'] = 'Clave BigBlueButton';
$strings['salt_help'] = 'Esta es la llave de seguridad de su servidor BigBlueButton (llamada "salt" en inglés), que permitirá a su servidor de autentifica la instalación de Chamilo (como autorizada). Refiérese a la documentación de BigBlueButton para ubicarla, o use el comando "bbb-conf --salt" si tiene acceso al servidor en línea de comando.';
$strings['tool_enable'] = 'Herramienta de videoconferencia BigBlueButton activada';
$strings['tool_enable_help'] = "Escoja si desea activar la herramienta de videoconferencia BigBlueButton.
Una vez activada, se mostrará como una herramienta adicional en todas las páginas principales de cursos, y los profesores podrán iniciar una conferencia en cualquier momento. Los estudiantes no podrían lanzar una conferencia, solo juntarse a una existente. Si no tiene un servidor de videoconferencia BigBlueButton, por favor <a target=\"_blank\" href=\"http://bigbluebutton.org/\">configure uno</a> antes de seguir, o pida una cotización a uno de los proveedores oficiales de Chamilo. BigBlueButton es una herramienta de software libre (y gratuita), pero su instalación requiere de competencias que quizás no sean inmediatamente disponibles para todos. Puede instalarla usted mismo o buscar ayuda profesional. Esta ayuda podría no obstante generar algunos costos (por lo menos el tiempo de la persona quien lo ayude). En el puro espíritu del software libre, le ofrecemos las herramientas para hacer su trabajo más simple, en la medida de nuestras posibilidades, y le recomendamos profesionales (los proveedores oficiales de Chamilo) para ayudarlo en caso esto fuera demasiado complicado.<br />";
$strings['big_blue_button_welcome_message'] = 'Mensaje de bienvenida de BigBlueButton';
$strings['big_blue_button_record_and_store'] = 'Grabar las sesiones de videoconferencia';
$strings['plugin_tool_bbb'] = 'Video';
$strings['ThereAreNotRecordingsForTheMeetings'] = 'No hay grabaciones de sesiones de videoconferencia';
$strings['NoRecording'] = 'No hay grabación';
//
$strings['TckAssignedMsg'] = "<p>Estimado(a):</p><p> ? ? </p>
<p>Se le ha sido asignado el ticket ? <a href=\"?\">Ticket</a></p>
<p>Mensaje enviado desde el sistema de ticket.</p>";

@ -31,9 +31,9 @@ class TicketPlugin extends Plugin
$lang = api_get_setting('platformLanguage');
}
$link_url = api_get_path(WEB_PLUGIN_PATH).'ticket/s/myticket.php';
$home_menu = '<li class="show_menu"><a href="'.$link_url.'" target="_self"><span>Ticket</span></a></li>';
// Write
if (file_exists($homep.$menuf.'_'.$lang.$ext)) {
if (is_writable($homep.$menuf.'_'.$lang.$ext)) {
@ -56,7 +56,7 @@ class TicketPlugin extends Plugin
fputs($fp, $home_menu);
fclose($fp);
}
}
function uninstall() {

@ -1,11 +1,13 @@
<?php
require_once '../../../main/inc/global.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
$work_id = $_POST['work_id'];
$forum_id = $_POST['forum_id'];
$rs_id = $_POST['rs_id'];
api_protect_course_script();
if (!api_is_allowed_to_edit()){
Display::display_error_message("Acceso Denegado");
Display::display_error_message($plugin->get_lang("DeniedAccess"));
}else{
$sql ="UPDATE ".Database::get_main_table('rp_reporte_semanas')." SET work_id = '$work_id' , forum_id = '$forum_id' WHERE id ='$rs_id'";
Database::query($sql);

@ -1,5 +1,6 @@
<?php
require_once '../../../main/inc/global.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
api_protect_course_script();
if (!api_is_allowed_to_edit()){

@ -1,25 +1,27 @@
<?php
$language_file = array ('registration');
require_once '../../../main/inc/global.inc.php';
require_once '../../../main/inc/lib/course.lib.php';
$language_file = array('registration');
require_once '../config.php';
$plugin = TicketPlugin::create();
$user_id=intval($_GET['user_id']);
$list_course_all_info=array();
$list_course=array();
$user_info = api_get_user_info($user_id);
$courses_list=CourseManager::get_courses_list_by_user_id($user_id,false,true);
?>
<div class="row">
<div class="label2">Usuario:</div>
<div class="label2"><?php echo get_lang('User')?>:</div>
<div class="formw2" id="user_request"><?php echo $user_info['firstname']." ".$user_info['lastname'] ;?></div>
</div>
<div class="row" id="divCourse">
<div class="label2" >Curso:</div>
<div class="label2"><?php echo get_lang('Course')?>:</div>
<div class="formw2" id="courseuser">
<select class="chzn-select" name = "course_id" id="course_id" style="width:95%;">
<option value="0">---Seleccionar---</option>
<?php for($k=0;$k<count($courses_list);$k++) { ?>
<option value = "<?php echo $courses_list[$k]['course_id']?>"><?php echo $courses_list[$k]['title']?></option>
<?php } ?>
<option value="0">---<?php echo get_lang('Select')?>---</option>
<?php
foreach ($courses_list as $key => $course) {
$courseinfo = CourseManager::get_course_information($course['code']);
echo '<option value="'. $courseinfo['code'].'"> '.$courseinfo['title'].'</option>';
}
?>
</select>
</div>
</div>

@ -1,5 +1,7 @@
<?php
require_once '../../../main/inc/global.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
require_once api_get_path(LIBRARY_PATH).'document.lib.php';
@ -11,8 +13,8 @@ if(!isset($_GET['file']) || ! isset($_GET['title']) || !isset($_GET['ticket_id']
}
if(!api_is_platform_admin()){
$ticket_id = $_GET['ticket_id'];
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGES);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKETS);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_message_attachments = Database::get_main_table(TABLE_SUPPORT_MESSAGE_ATTACHMENTS);
$sql ="SELECT DISTINCT ticket.request_user FROM $table_support_tickets ticket, $table_support_messages message, $table_support_message_attachments attch
WHERE ticket.ticket_id = message.ticket_id AND attch.message_id = message.message_id AND ticket.ticket_id = $ticket_id";
@ -36,6 +38,5 @@ $full_file_name = $path_message_attach.$file_url;
if (Security::check_abs_path($full_file_name, $path_message_attach)) {
DocumentManager::file_send_for_download($full_file_name,TRUE, $title);
}
exit;
?>
exit;

@ -1,4 +1,4 @@
<?php
require_once '../../../main/inc/global.inc.php';
header('location:'.api_get_path(WEB_PATH).'main/support/myticket.php?message=success');
require_once '../config.php';
header('location:'.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/myticket.php?message=success');
?>

@ -7,11 +7,6 @@ require_once '../config.php';
$plugin = TicketPlugin::create();
$tool_name = $plugin->get_lang('DateLastEdition');
//echo $tool_name;die();
require_once 'ticket.class.php';
include_once api_get_path(LIBRARY_PATH).'export.lib.inc.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
api_block_anonymous_users();
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
@ -20,13 +15,13 @@ $htmlHeadXtra[] = '<script type="text/javascript">
function load_history_ticket (div_course,ticket_id) {
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(objeto) {
beforeSend: function(object) {
$("div#"+div_course).html("<img src=\'../../../main/inc/lib/javascript/indicator.gif\' />"); },
type: "POST",
url: "ticket_assign_log.php",
data: "ticket_id="+ticket_id,
success: function(datos) {
$("div#div_"+ticket_id).html(datos);
success: function(data) {
$("div#div_"+ticket_id).html(data);
$("div#div_"+ticket_id).attr("class","blackboard_show");
$("div#div_"+ticket_id).attr("style","");
}
@ -41,9 +36,11 @@ function clear_course_list (div_course) {
$( "#keyword_start_date_start" ).datepicker({ dateFormat: '."'dd/mm/yy'".' });
$( "#keyword_start_date_end" ).datepicker({ dateFormat: '."'dd/mm/yy'".' });
});
$(document).ready(function() {
$("#advanced_search_form").css("display","none");
});
});
function display_advanced_search_form () {
if ($("#advanced_search_form").css("display") == "none") {
$("#advanced_search_form").css("display","block");
@ -62,9 +59,9 @@ div.row div.label2 {
}
div.row div.formw2 {
width:65%;
float:left
float:left;
}
.blackboard_show {
.blackboard_show {
float:left;
position:absolute;
border:1px solid black;
@ -77,12 +74,15 @@ div.row div.formw2 {
display: none;
}
</style>';
$this_section = 'tickets';
unset($_SESSION['this_section']);
$table = new SortableTable('Tickets', array('TicketManager', 'get_total_tickets_by_user_id'), array('TicketManager', 'get_tickets_by_user_id') , 2, 20, 'DESC');
if ($table->per_page == 0){
$table->per_page = 20;
}
if(isset($_GET['action'])){
global $table;
$action = $_GET['action'];
@ -100,14 +100,14 @@ if(isset($_GET['action'])){
TicketManager::send_alert($_GET['ticket_id'],$user_id);
break;
case 'export':
$data = array( array( get_lang('TicketNum'), get_lang('Date'), get_lang('DateLastEdition'), get_lang('Category'), get_lang('User'), get_lang('Program'), get_lang('Responsible'), get_lang('Status'), get_lang('Message'), get_lang('Description') ) );
$data = array( array( $plugin->get_lang('TicketNum'), $plugin->get_lang('Date'), $plugin->get_lang('DateLastEdition'), $plugin->get_lang('Category'), $plugin->get_lang('User'), $plugin->get_lang('Program'), $plugin->get_lang('Responsible'), $plugin->get_lang('Status'), $plugin->get_lang('Message'), $plugin->get_lang('Description') ) );
$datos = $table->get_clean_html();
foreach ($datos as $ticket){
$ticket[0] = substr(strip_tags($ticket[0]), 0,12);
$ticket_rem = array(utf8_decode( strip_tags($ticket[0])), utf8_decode(api_html_entity_decode($ticket[1])), utf8_decode(strip_tags($ticket[2])), utf8_decode(strip_tags($ticket[3])), utf8_decode(strip_tags($ticket[4])), utf8_decode(strip_tags($ticket[5])), utf8_decode(strip_tags($ticket[6])), utf8_decode(strip_tags($ticket[7])), utf8_decode(strip_tags($ticket[8])), utf8_decode(strip_tags($ticket[10])) );
$data[] = $ticket_rem;
}
Export::export_table_xls($data,"Tickets");
Export::export_table_xls($data, $plugin->get_lang('Tickets'));
exit;
break;
case 'close_tickets':
@ -117,11 +117,11 @@ if(isset($_GET['action'])){
break;
}
}
$nameTools = api_xml_http_response_encode(get_lang('Mis tickets'));
//$nameTools = api_xml_http_response_encode($plugin->get_lang('MyTickets'));
$user_id = api_get_user_id();
$isAdmin = api_is_platform_admin();
Display::display_header(get_lang('Mis tickets'));
Display::display_header($plugin->get_lang('MyTickets'));
if ($isAdmin){
$get_parameter = '&keyword='. $_GET['keyword'] .'&keyword_status='. $_GET['keyword_status'] .'&keyword_category='. $_GET['keyword_category'] .'&keyword_request_user='. $_GET['keyword_request_user'];
$get_parameter .= '&keyword_admin='. $_GET['keyword_admin'] .'&keyword_start_date='. $_GET['keyword_start_date'].'&keyword_unread='. $_GET['keyword_unread'] ;
@ -142,8 +142,8 @@ if ($isAdmin){
$select_types .= "</select>";
//select admins
$select_admins .= '<select class ="chzn-select" style="width: 200px; " name = "keyword_admin" id="keyword_admin" ">';
$select_admins .= '<option value="">---Seleccionar---</option>';
$select_admins .= '<option value = "0">No asignados</option>';
$select_admins .= '<option value="">---'.get_lang('Select').'---</option>';
$select_admins .= '<option value = "0">'.$plugin->get_lang('Unassigned').'</option>';
$admins = UserManager::get_user_list_like(array("status"=>"1"),array("username"),true);
foreach ($admins as $admin) {
$select_admins.= "<option value = '".$admin['user_id']."'>".$admin['lastname']." ,".$admin['firstname']."</option>";
@ -151,7 +151,7 @@ if ($isAdmin){
$select_admins .= "</select>";
//select status
$select_status .= '<select class ="chzn-select" style="width: 200px; " name = "keyword_status" id="keyword_status" >';
$select_status .= '<option value="">---Seleccionar---</option>';
$select_status .= '<option value="">---'.get_lang('Select').'---</option>';
$status = TicketManager::get_all_tickets_status();
foreach ($status as $stat) {
$select_status.= "<option value = '".$stat['status_id']."'>".$stat['name']."</option>";
@ -159,16 +159,17 @@ if ($isAdmin){
$select_status .= "</select>";
//select priority
$select_priority .= '<select style="width: 200px; " name = "keyword_priority" id="keyword_priority" >';
$select_priority .= '<option value="">Todas</option>';
$select_priority .= '<option value="NRM">Normal</option>';
$select_priority .= '<option value="ALT">Alta</option>';
$select_priority .= '<option value="">'.get_lang('All').'</option>';
$select_priority .= '<option value="NRM">'.get_lang('PriorityNormal').'</option>';
$select_priority .= '<option value="ALT">'.get_lang('PriorityHigh').'</option>';
$select_priority .= '<option value="LOW">'.get_lang('PriorityLow').'</option>';
$select_priority .= "</select>";
//select unread
$select_unread = '<select style="width: 100px; " name = "keyword_unread" id="keyword_unread" >';
$select_unread .= '<option value="">Todos</option>';
$select_unread .= '<option value="yes">No leidos</option>';
$select_unread .= '<option value="no">Leidos</option>';
$select_unread .= '<option value="">'.get_lang('All').'</option>';
$select_unread .= '<option value="yes">'.get_lang('Read').'</option>';
$select_unread .= '<option value="no">'.get_lang('Unread').'</option>';
$select_unread .= "</select>";
// Create a search-box
$form = new FormValidator('search_simple','get','','',null,false);
@ -181,16 +182,15 @@ if ($isAdmin){
echo '<div class="actions" style="width:100%;">';
if (api_is_platform_admin()) {
/*echo '<span style="float:right;">'.
'<a href="'.api_get_self().'?action=close_tickets">'.Display::return_icon('warning.png',get_lang('Cerrar Tickets'),'','32').'</a>'.
'<a href="'.api_get_self().'?action=close_tickets">'.Display::return_icon('warning.png',$plugin->get_lang('TckClose'),'','32').'</a>'.
'</span>';*/
echo '<span style="float:right;">'.
'<a href="'.api_get_self().'?action=export'.$get_parameter.$get_parameter2.'">'.Display::return_icon('import_excel.png',get_lang('Export'),'','32').'</a>'.
'</span>';
echo '<span style="float:right;">'.
'<a href="'.api_get_path(WEB_PLUGIN_PATH).'ticket/s/new_ticket.php">'.Display::return_icon('add.png',get_lang('Nuevo Ticket'),'','32').'</a>'.
'<a href="'.api_get_path(WEB_PLUGIN_PATH).'ticket/s/new_ticket.php">'.Display::return_icon('add.png',$plugin->get_lang('TckNew'),'','32').'</a>'.
'</span>';
echo '<span style="float:right;">'.
'<a href="'.api_get_self().'?keyword_unread=yes">Nuevos</a>'.
'</span>';
}
$form->display();
@ -198,45 +198,45 @@ if ($isAdmin){
echo '<form action="'.api_get_self().'" method="get" name="advanced_search" id="advanced_search" display:"none">
<div id="advanced_search_form" style="display: block;">
<div class="row">
<div class="form_header">B&uacute;squeda avanzada</div>
<div class="form_header">'.get_lang('AdvancedSearch').'</div>
</div>
<table width="100%">
<tbody>
<tr>
<td width="30%"><div class="row">
<div class="label2">Categoria</div>
<div class="label2">'.get_lang('Category').'</div>
<div class="formw2">'.$select_types.'</div>
</div></td>
<td width="25%"><div class="row">
<div class="label2">Usuario</div>
<div class="label2">'.get_lang('User').'</div>
<div class="formw2"><input id="keyword_request_user" name="keyword_request_user" type="text"></div>
</div></td>
<td width="25%"><div class="row">
<div class="label2">Fecha de Registro:</div>
<div class="label2">'.$plugin->get_lang('RegisterDate').':</div>
<div class="formw2"><input id="keyword_start_date_start" name="keyword_start_date_start" type="text"></div>
</div></td>
<td width="20%"><div class="row">
<div class="label2"><input type="checkbox" name="keyword_dates" value="1">Hasta:</div>
<div class="label2"><input type="checkbox" name="keyword_dates" value="1">'.get_lang('Untill').':</div>
<div class="formw2"><input id="keyword_start_date_end" name="keyword_start_date_end" type="text"></div>
</div></td>
</tr>
<tr >
<td><div class="row">
<div class="label2">Asignado a:</div>
<div class="label2">'.$plugin->get_lang('AssignedTo').':</div>
<div class="formw2">'.$select_admins.'</div>
</div></td>
<td><div class="row">
<div class="label2">Estado:</div>
<div class="label2">'.get_lang('Status').':</div>
<div class="formw2">'.$select_status.'</div>
</div></td>
<td><div class="row">
<div class="row">
<div class="label2">Prioridad:</div>
<div class="label2">'.$plugin->get_lang('Priority').':</div>
<div class="formw2">'.$select_priority.'</div>
</div></td>
<td><div class="row">
<div class="row">
<div class="label2">Prioridad:</div>
<div class="label2">'.$plugin->get_lang('Priority').':</div>
<div class="formw2">'.$select_unread.'</div>
</div></td>
@ -244,12 +244,12 @@ if ($isAdmin){
<tr>
<td width="30%">
<div class="row" >
<div class="label2">Curso</div>
<div class="label2">'.get_lang('Course').'</div>
<div class="formw2"><input id="keyword_course" name="keyword_course" type="text"></div>
</div>
</td>
<td colspan= "3"><div class="row">
<button name="submit_advanced" type="submit">B&uacute;squeda Avanzada</button>
<button name="submit_advanced" type="submit">'.get_lang('AdvancedSearch').'</button>
</div></td>
</tr>
</tbody>
@ -272,8 +272,8 @@ if($isAdmin){
$table->set_header(5, $plugin->get_lang('Responsible'), true);
$table->set_header(6, $plugin->get_lang('Status'), true);
$table->set_header(7, $plugin->get_lang('Message'), true);
$table->set_header(8, get_lang('Accion'), true);
$table->set_header(9, get_lang('Descripcion'), true,array("style"=>"width:200px"));
$table->set_header(8, get_lang('Actions'), true);
$table->set_header(9, get_lang('Description'), true,array("style"=>"width:200px"));
}else{
echo '<center><h1>'.$plugin->get_lang('MyTickets').'</h1></center>';
echo '<center><p>'.$plugin->get_lang('MsgWelcome').'</p></center>';
@ -285,7 +285,7 @@ if($isAdmin){
$table->set_header(2, $plugin->get_lang('DateLastEdition'), true);
$table->set_header(3, $plugin->get_lang('Category'));
$table->set_header(4, $plugin->get_lang('Status'), false);
$table->set_header(5, get_lang('Accion'), false);
$table->set_header(5, get_lang('Actions'), false);
}
$table->display();

@ -1,19 +1,14 @@
<?php
/* INIT SECTION */
/* INIT SECTION */
$language_file = array('messages','userInfo', 'admin');
$cidReset = true;
require_once '../config.php';//require_once '../../../main/inc/global.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
require_once 'ticket.class.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
api_block_anonymous_users();
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
//$nameTools = api_xml_http_response_encode(get_lang('Soporte Virtual'));
$htmlHeadXtra[]='
<script>
$(document).ready(function(){
@ -131,7 +126,6 @@ div.divTicket {
margin-left: 15%;
}
</style>';
$types = TicketManager::get_all_tickets_categories();
$htmlHeadXtra[] = '<script language="javascript">
@ -162,6 +156,8 @@ function show_form_send_ticket(){
echo '<form enctype="multipart/form-data" action="'.api_get_self().'" method="post" name="send_ticket" id="send_ticket"
onsubmit="return validate()" style="width:100%">';
echo '<input name="user_id_request" id="user_id_request" type="hidden" value="">';
// Category
$select_types = '<div class="row">
<div class="label2">'.get_lang('Category').': </div>
<div class="formw2">';
@ -173,62 +169,110 @@ function show_form_send_ticket(){
$select_types .= "</select>";
$select_types .= '</div></div>';
echo $select_types;
// Course
$courses_list = CourseManager::get_courses_list_by_user_id($user_id,false,true);
$select_course = '<div id="user_request" >
</div>';
echo $select_course;
//select status
$select_status = '<div class="row" >
<div class="label2" >'.get_lang('Status').': </div>
<div class="formw2">';
$select_status .= '<select style="width: 95%; " name = "status_id" id="status_id" value="PND">';
$status = TicketManager::get_all_tickets_status();
foreach ($status as $stat) {
if($stat['status_id']=='PND'){
$select_status .= "<option value = '".$stat['status_id']."' selected >".$stat['name']."</option>";
// Status
$status = array();
$status[NEWTCK] = $plugin->get_lang('StsNew');
$status[PENDING] = $plugin->get_lang('StsPending');
$status[UNCONFIRMED] = $plugin->get_lang('StsUnconfirmed');
$status[CLOSE] = $plugin->get_lang('StsClose');
$status[REENVIADO] = $plugin->get_lang('StsReenviado');
$select_status = '
<div class="row" >
<div class="label2" >'.get_lang('Status').': </div>
<div class="formw2">
<select style="width: 95%; " name = "status_id" id="status_id">';
//$status = TicketManager::get_all_tickets_status();
foreach ($status as $sts_key => $sts_name) {
if($sts_key=='PND'){
$select_status .= "<option value = '".$sts_key."' selected >".$sts_name."</option>";
}else{
$select_status.= "<option value = '".$stat['status_id']."'>".$stat['name']."</option>";
$select_status.= "<option value = '".$sts_key."'>".$sts_name."</option>";
}
}
$select_status .= "</select>";
$select_status .= '</div></div>';
$select_status .= '
</select>
</div>
</div>';
echo $select_status;
echo '<div class="row">
// Source
$source = array();
$source[SRC_EMAIL] = $plugin->get_lang('SrcEmail');
$source[SRC_PHONE] = $plugin->get_lang('SrcPhone');
$source[SRC_PRESC] = $plugin->get_lang('SrcPresential');
$select_source = '
<div class="row">
<div class="label2">'.$plugin->get_lang('Source').':</div>
<div class="formw2">
<select style="width: 95%; " name="source_id" id="source_id" >
<option value="MAI">'.get_lang('Email').'</option>
<option value="TEL">'.get_lang('Phone').'</option>
<option value="PRE">'.$plugin->get_lang('Presential').'</option>
<select style="width: 95%; " name="source_id" id="source_id" >';
foreach ($source as $src_key => $src_name) {
$select_source.= "<option value = '".$src_key."'>".$src_name."</option>";
}
$select_source .='
</select>
</div>
</div>';
echo $select_source;
// Subject
echo '<div class="row" ><div class ="label2">'.get_lang('Subject').':</div>
<div class="formw2"><input type = "text" id ="subject" name="subject" value="" required ="" style="width:94%"/></div>
</div>';
// Email
echo '<div class="row" id="divEmail" ><div class ="label2">'.$plugin->get_lang('PersonalEmail').':</div>
<div class="formw2"><input type = "email" id ="personal_email" name="personal_email" value="" style="width:94%"/></div>
</div>';
echo '<input name="project_id" id="project_id" type="hidden" value="">';
echo '<input name="other_area" id="other_area" type="hidden" value="">';
echo '<input name="email" id="email" type="hidden" value="">';
// Message
echo '<div class="row">
<div class="label2">'.get_lang('Message').'</div>
<div class="formw2">
<input type="hidden" id="content" name="content" value="" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PATH).'main/Support/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<iframe id="content___Frame" src="/main/inc/lib/fckeditor/editor/fckeditor.html?InstanceName=content&amp;Toolbar=Messages" width="95%" height="250" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border: 0px; background-color: transparent; background-image: none; width: 95%; height: 250px;">
</iframe>
</div>
</div>';
// Phone
echo '<div class="row" ><div class ="label2">'.get_lang('Phone').' ('.$plugin->get_lang('Optional').'):</div>
<div class="formw2"><input type = "text" id ="phone" name="phone" value="" onkeyup="valid(this,'."'allowspace'".')" onblur="valid(this,'."'allowspace'".')" style="width:94%"/></div>
</div>';
echo '<div class="row">
<div class="label2"><p></p></div>
<div class="formw2">
<input type="checkbox" name="priority_id" />'.$plugin->get_lang('PriorityHigh').'<br/></div>
</div>';
// Priority
$select_priority = '<div class="row" >
<div class="label2" >'.$plugin->get_lang('Priority').': </div>
<div class="formw2">';
$priority = array();
$priority[NORMAL] = $plugin->get_lang('PriorityNormal');
$priority[HIGH] = $plugin->get_lang('PriorityHigh');
$priority[LOW] = $plugin->get_lang('PriorityLow');
$select_priority .= '<select style="width: 85px; " name = "priority_id" id="priority_id">';
foreach ($priority as $prty_key => $prty_name) {
if($sts_key== NORMAL){
$select_priority .= "<option value = '".$prty_key."' selected >".$prty_name."</option>";
}else{
$select_priority.= "<option value = '".$prty_key."'>".$prty_name."</option>";
}
}
$select_priority .= "</select>";
$select_priority .= '</div></div>';
echo $select_priority;
// Input file attach
echo '<div class="row">
<div class="label2">'.get_lang('FilesAttachment').'</div>
<div class="formw2">
@ -254,26 +298,23 @@ function show_form_send_ticket(){
echo '</form></div>';
}
function save_ticket(){
$category_id = $_POST['category_id'];
$content = $_POST['content'];
global $plugin;
$category_id = $_POST['category_id'];
$content = $_POST['content'];
if ($_POST['phone']!="") $content.= '<p style="color:red">&nbsp;'.get_lang('Phone').': '.$_POST['phone'].'</p>';
$course_id = $_POST['course_id'];
$project_id = $_POST['project_id'];
$subject = $_POST['subject'];
$other_area = (int)$_POST['other_area'];
$email = $_POST['email'];
$course_id = $_POST['course_id'];
$project_id = $_POST['project_id'];
$subject = $_POST['subject'];
$other_area = (int)$_POST['other_area'];
$email = $_POST['email'];
$personal_email = $_POST['personal_email'];
$source = $_POST['source_id'];
$user_id = $_POST['user_id_request'];
$priority = 'NRM';
if (isset($_POST['priority_id'])){
$priority = 'ALT';
}
$source = $_POST['source_id'];
$user_id = $_POST['user_id_request'];
$priority = $_POST['priority_id'];
$status = $_POST['status_id'];
$file_attachments = $_FILES;
if(TicketManager::insert_new_ticket($category_id, $course_id, $project_id, $other_area, $email, $subject, $content,$personal_email, $file_attachments,$source,$priority,$status,$user_id,api_get_user_id())){
header('location:'.api_get_path(WEB_PATH).'main/support/myticket.php?message=success');
header('location:'.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/myticket.php?message=success');
}else{
Display::display_header(get_lang('ComposeMessage'));
Display::display_error_message($plugin->get_lang('ErrorRegisterMessage'));
@ -371,7 +412,7 @@ function get_user_data($from, $number_of_items, $column, $direction)
<span style="float: right;">&nbsp;</span>
<form id="search_simple" name="search_simple" method="get" action="'.api_get_self().'" class="form-search">
<fieldset>
<span><label for="keyword">'.get_lang('langSeachAUser').': &nbsp;</label><input type="text" name="keyword" size="25"></span>
<span><label for="keyword">'.get_lang('langSearchAUser').': &nbsp;</label><input type="text" name="keyword" size="25"></span>
<span><button type="submit" name="submit" class="btn btn">'.get_lang('Search').'</button></span>
<div class="clear"></div>
</fieldset>

@ -2,19 +2,17 @@
/* INIT SECTION */
$language_file= array('messages','userInfo', 'admin','trad4all');
$cidReset = true;
require_once '../../../main/inc/global.inc.php';
require_once 'ticket.class.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
api_block_anonymous_users();
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
if(!api_is_allowed_to_edit()){
api_not_allowed();
}
$nameTools = api_xml_http_response_encode(get_lang('Soporte Virtual'));
//$nameTools = api_xml_http_response_encode(get_lang('Soporte Virtual'));
$this_section = 'Reportes';
unset($_SESSION['this_section']);

@ -1,25 +1,20 @@
<?php
/* INIT SECTION */
$language_file= array('messages','userInfo', 'admin');
$cidReset = true;
require_once '../../../main/inc/global.inc.php';
require_once 'ticket.class.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
/* INIT SECTION */
$language_file = array('messages','userInfo', 'admin');
$cidReset = true;
require_once '../config.php';
$plugin = TicketPlugin::create();
api_block_anonymous_users();
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
$nameTools = api_xml_http_response_encode(get_lang('Soporte Virtual'));
$htmlHeadXtra[]='
<script language="javascript">
<script>
$(document).ready(function(){
if(document.getElementById("divEmail")){
document.getElementById("divEmail").style.display="none";
}
if(document.getElementById("divEmail")){
document.getElementById("divEmail").style.display="none";
}
});
function changeType() {
var selected = document.getElementById("category_id").selectedIndex;
@ -38,39 +33,36 @@ var id = document.getElementById("category_id").options[selected].value ;
document.getElementById("course_id").value=0;
}else{
document.getElementById("divCourse").style.display = "";
document.getElementById("course_id").disabled=false;
document.getElementById("course_id").disabled=false;
document.getElementById("course_id").value=0;
document.getElementById("personal_email").value="";
document.getElementById("personal_email").value="";
}
}
function validate() {
fckEditor1val = FCKeditorAPI.__Instances["content"].GetHTML();
function validate() {
var re = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
fckEditor1val = FCKeditorAPI.__Instances["content"].GetHTML();
document.getElementById("content").value= fckEditor1val;
var selected = document.getElementById("category_id").selectedIndex;
var re = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
var id = document.getElementById("category_id").options[selected].value ;
var id = document.getElementById("category_id").options[selected].value;
if( id == 0){
alert("Debe seleccionar un tipo");
return false;
alert("'.$plugin->get_lang("ValidType").'");
return false;
}else if(document.getElementById("subject").value == ""){
alert("Debe escribir un asunto");
alert("'.$plugin->get_lang("ValidSubject").'");
return false;
}else if(parseInt(course_required[id]) == 1 && document.getElementById("course_id").value == 0){
alert("Debe elegir un curso");
alert("'.$plugin->get_lang("ValidCourse").'");
return false;
}else if(id !="CUR" && parseInt(course_required[id]) != 1 && !re.test(document.getElementById("personal_email").value)){
alert("Debe digitar un email valido");
alert("'.$plugin->get_lang("ValidEmail").'");
return false;
}else if(fckEditor1val ==""){
alert("Debe escribir un mensaje");
alert("'.$plugin->get_lang("ValidMessage").'");
return false;
}
}
</script>';
$htmlHeadXtra[] = '<script type="text/javascript">
var counter_image = 1;
function remove_image_form(id_elem1) {
var elem1 = document.getElementById(id_elem1);
@ -120,17 +112,11 @@ div.row div.formw2 {
width:90%;
float:left
}
div.formulario {
width:65%;
float: right;
border: 1px;
border-color: #000000;
border-left-style: solid;
padding-left :20px;
}
div.faqs {
width: 33%;
float: left;
div.divTicket {
width: 70%;
float: center;
margin-left: 15%;
}
</style>';
$types = TicketManager::get_all_tickets_categories();
@ -138,62 +124,36 @@ $htmlHeadXtra[] = '<script language="javascript">
var projects = '.js_array($types,'projects','project_id'). '
var course_required = '.js_array($types,'course_required','course_required').'
var other_area = '.js_array($types,'other_area','other_area').'
var email = '.js_array($types,'email','email').'
var email = '.js_array($types,'email','email').'
document.getElementById("divCourse").style.display="none";
</script>';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/jquery.fcbkcomplete.js" type="text/javascript" language="javascript"></script>';
$htmlHeadXtra[] = '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/tag/style.css" rel="stylesheet" type="text/css" />';
$htmlHeadXtra[] ='
<!-- ################## FACEBOOK ################## INI -->
<script>
$(document).ready(function(){
$("#likebox_right").hover(function(){ jQuery(this).stop(true,false).animate({right: 0}, 500); }, function(){ jQuery("#likebox_right").stop(true,false).animate({right: -305},500); });
});
var r={"allowspace":/[^\w|\s|\s|\-|\*]/g}
function valid(o,w){
o.value = o.value.replace(r[w],"");
}
</script>
<style>
#likebox_div{ width:300px; height:400px; overflow:hidden; }
#likebox_right{ z-index:10005; border:2px solid #3c95d9; background-color:#fff; width:300px; height:400px; position:fixed; right:-305px; }
#likebox_right img{ position:absolute; top:120px; left:-35px; }
#likebox_right iframe{ border:0px solid #3c95d9; overflow:hidden; position:static; height:400px; left:-2px; top:-3px; }
</style>
<div id="likebox_right" style="top: 17%;">
<div id="likebox_div">
<img alt="" src="'.api_get_path(WEB_IMG_PATH).'btn_face.png">
<iframe src="http://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2FUSILVIRTUAL&amp;width=300&amp;height=400&amp;show_faces=true&amp;colorscheme=light&amp;stream=true&amp;show_border=true&amp;header=true" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:400px;" allowTransparency="true"></iframe>
</div>
</div>
<!-- ################## FACEBOOK ################## FIN -->
';
function js_str($s) {
return '"'.addcslashes($s, "\0..\37\"\\").'"';
return '"'.addcslashes($s, "\0..\37\"\\").'"';
}
function js_array($array,$name,$key) {
$temp=array();
$return = "new Array(); ";
foreach ($array as $value){
$return .= $name."['".$value['category_id']."'] ='".$value[$key]."'; ";
}
return $return;
$temp=array();
$return = "new Array(); ";
foreach ($array as $value){
$return .= $name."['".$value['category_id']."'] ='".$value[$key]."'; ";
}
return $return;
}
function show_form_send_ticket(){
global $types;
global $types, $plugin;
$courses_list = CourseManager::get_courses_list_by_user_id(api_get_user_id(),false,true);
echo '<div class="divTicket">';
echo '<form enctype="multipart/form-data" action="'.api_get_self().'" method="post" name="send_ticket" id="send_ticket"
onsubmit="return validate()" style="width:100%">';
$select_types = '<div class="row">
<div class="label2">Tipo:</div>
<div class="label2">'.get_lang('Category').': </div>
<div class="formw2">';
$select_types .= '<select style="width: 95%; " name = "category_id" id="category_id" onChange="changeType();">';
$select_types .= '<option value="0">---Seleccionar---</option>';
$select_types .= '<option value="0">---'.get_lang('Select').'---</option>';
foreach ($types as $type) {
$select_types.= "<option value = '".$type['category_id']."'>".$type['name'].": <br/>".$type['description']."</option>";
}
@ -201,38 +161,37 @@ function show_form_send_ticket(){
$select_types .= '</div></div>';
echo $select_types;
$select_course = '<div class="row" id="divCourse" >
<div class="label2" >Curso:</div>
<div class="label2" >'.get_lang('Course').':</div>
<div class="formw2">';
$select_course .= '<select class="chzn-select" name = "course_id" id="course_id" style="width: 56%; display:none;">';
$select_course .= '<option value="0">---Seleccionar---</option>';
$select_course .= '<select class="chzn-select" name = "course_id" id="course_id" style="width: 40%; display:none;">';
$select_course .= '<option value="0">---'.get_lang('Select').'---</option>';
foreach ($courses_list as $course) {
$select_course.= "<option value = '".$course['course_id']."'>".$course['title']."</option>";
}
$select_course .= "</select>";
$select_course .= '</div></div>';
echo $select_course;
echo '<div class="row" ><div class ="label2">Asunto:</div>
echo '<div class="row" ><div class ="label2">'.get_lang('Subject').':</div>
<div class="formw2"><input type = "text" id ="subject" name="subject" value="" required ="" style="width:94%"/></div>
</div>';
echo '<div class="row" id="divEmail" ><div class ="label2">Email Personal:</div>
echo '<div class="row" id="divEmail" ><div class ="label2">'.$plugin->get_lang('PersonalEmail').':</div>
<div class="formw2"><input type = "email" id ="personal_email" name="personal_email" value="" style="width:94%"/></div>
</div>';
echo '<input name="project_id" id="project_id" type="hidden" value="">';
echo '<input name="other_area" id="other_area" type="hidden" value="">';
echo '<input name="email" id="email" type="hidden" value="">';
echo '<div class="row">
<div class="label2">mensaje</div>
<div class="label2">'.get_lang('Message').'</div>
<div class="formw2">
<input type="hidden" id="content" name="content" value="" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PATH).'main/Support/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<iframe id="content___Frame" src="/main/inc/lib/fckeditor/editor/fckeditor.html?InstanceName=content&amp;Toolbar=Messages" width="95%" height="250" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border: 0px; background-color: transparent; background-image: none; width: 95%; height: 250px;">
</iframe>
</div>
</div>
';
echo '<div class="row" ><div class ="label2">Tel&eacute;fono (opcional):</div>
<div class="formw2"><input type = "text" id ="telefono" name="telefono" value="" onkeyup="valid(this,'."'allowspace'".')" onblur="valid(this,'."'allowspace'".')" style="width:94%"/></div>
</div>';
</div>';
echo '<div class="row" ><div class ="label2">'.get_lang('Phone').' ('.$plugin->get_lang('Optional').'):</div>
<div class="formw2"><input type = "text" id ="phone" name="phone" value="" onkeyup="valid(this,'."'allowspace'".')" onblur="valid(this,'."'allowspace'".')" style="width:94%"/></div>
</div>';
echo '<div class="row">
<div class="label2">'.get_lang('FilesAttachment').'</div>
<div class="formw2">
@ -252,14 +211,16 @@ function show_form_send_ticket(){
echo '<div class="row">
<div class="label2">
</div>
<div class="formw2"> <button class="save" name="compose" type="submit">Enviar mensaje</button>
<div class="formw2"><button class="save" name="compose" type="submit" id="btnsubmit">'.get_lang('SendMessage').'</button>
</div>
</div>';
echo '</form></div>';
}
function save_ticket(){
$category_id = $_POST['category_id'];
$content = $_POST['content'];
if ($_POST['telefono']!="") $content.= '<p style="color:red">&nbsp;Tel&eacute;fono: '.$_POST['telefono'].'</p>';
if ($_POST['phone']!="") $content.= '<p style="color:red">&nbsp;'.get_lang('Phone').': '.$_POST['phone'].'</p>';
$course_id = $_POST['course_id'];
$project_id = $_POST['project_id'];
$subject = $_POST['subject'];
@ -268,101 +229,18 @@ function save_ticket(){
$personal_email = $_POST['personal_email'];
$file_attachments = $_FILES;
if(TicketManager::insert_new_ticket($category_id, $course_id, $project_id, $other_area, $email, $subject, $content,$personal_email, $file_attachments)){
header('location:'.api_get_path(WEB_PATH).'main/support/myticket.php?message=success');
header('location:'.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/myticket.php?message=success');
}else{
Display::display_header(get_lang('ComposeMessage'));
Display::display_error_message("No se pudo registrar su ticket");
Display::display_error_message($plugin->get_lang('ErrorRegisterMessage'));
}
}
if(!isset($_POST['compose'])){
Display::display_header(get_lang('ComposeMessage'));
echo '<div class="formulario">';
show_form_send_ticket();
echo '</div>';
echo '<div class="faqs">';
echo '<h1><center>Preguntas Frecuentes</center></h1>';
echo '<table width="100%" height="100%" >';
echo '<tr>';
echo '<td id="C1"><a href="javascript:show_question(1)" Title="Click Aqui"><u><b><h3>1. No puedo ingresar a mi Plataforma de Evaluaciones en L&iacute;nea </p></b></h3></a></td>';
echo '</tr>';
echo '<tr>';
echo '<td id="A1" style="display:none;align:justify;">
<ul>
<li>Recuerde que sus datos de acceso son los mismos que los de INFOSIL y por ende los mismos que del Campus Virtual.</li>
<li>Si no puede ingresar con los mismos datos de INFOSIL, genere un ticket enviando su contrase&ntilde;a de infosil.</li>
</ul>
</td>';
echo '</tr>';
echo '<tr>';
echo '<td id="C2"><a href="javascript:show_question(2)" Title="Click Aqui"><u><b><h3>2. No visualizo un documento dentro del Itinerario de Aprendizaje</p></b></h3></a></td>';
echo '</tr>';
echo '<tr>';
echo '<td id="A2" style="display:none;align:justify;">
<ul>
<li>Compruebe que su navegador web sea Mozilla Firefox y se encuentre actualizado.</li>
<li>Genere un ticket y adjunte el print de pantalla donde se visualice el error- por favor guarde esta imagen en formato JPG.</li>
</ul>
</td>';
echo '</tr>';
echo '<tr>';
echo '<td id="C3"><a href="javascript:show_question(3)" Title="Click Aqui"><u><b><h3>3. No puedo participar en el Foro. No visualizo la participaci&oacute;n realizada en el Foro.</p></b></h3></a></td>';
echo '</tr>';
echo '<tr>';
echo '<td id="A3" style="display:none;align:justify;">
<ul>
<li>Verifique con su docente que la fecha y hora de participaci&oacute;n en el foro no haya vencido.</li>
<li>Recuerde que Ud. no puede borrar sus participaciones realizadas en el foro y tampoco podr&aacute; hacerlo el equipo de soporte virtual, sin autorizaci&oacute;n previa del docente o tutor del curso.</li>
<li>Cuando responda el Foro, si previamente redact&oacute; su participaci&oacute;n en un Word, c&oacute;pielo a un block de notas para que no se copien caracteres extra&ntilde;os y exista la posibilidad de error, las im&aacute;genes dentro del foro se adjuntan mediante el bot&oacute;n de subir imagen, nunca copie directamente desde su documento o desde internet.</li>
</ul>
</td>';
echo '</tr>';
echo '<tr>';
echo '<td id="C4"><a href="javascript:show_question(4)" Title="Click Aqui"><u><b><h3>4. No puedo ver los videos del Itinerario de Aprendizaje</p></b></h2></a></td>';
echo '</tr>';
echo '</tr>';
echo '<tr>';
echo '<td id="A4" style="display:none;align:justify;">
<ul>
<li>Instale el Adobe Flash Player y el Java Player (versi&oacute;n10)
<br/><a href="http://www.adobe.com/software/flash/about/" target="_new">Descargar Adobe Flash Player Aqu&iacute;</a>
<br/><a href="http://www.java.com/es/download/index.jsp" target="_new">Descargar Java Player Aqu&iacute;</a>
</li>
</li>
<li>Elimine los cookies y temporales de su PC <br/><a href="http://campusvirtual.usil.edu.pe/home/content/HowToDeleteCacheCookies_updateJUL2012.pdf" target="_new">(ver manual)</a></li>
</ul>
</td>';
echo '</tr>';
echo '<tr>';
echo '<td ><h2><u>OTRAS CONSULTAS</u></h2></td>';
echo '</tr>';
echo '<tr>';
echo '<td id="C5"><a href="javascript:show_question(5)" Title="Click Aqui"><u><b><h3>No puedo acceder al INFOSIL</p></b></h3></a></td>';
echo '<tr>';
echo '<td id="A5" style="display:none;align:justify;">
<ul>
<li>Cont&aacute;ctese con <a href="mailto:helpdesk@usil.edu.pe"> helpdesk@usil.edu.pe</a>
El personal de soporte virtual s&oacute;lo podr&aacute; ayudarlo en problemas referentes al
<b>Campus Virtual USIL.</b>
</li>
</ul>
</td>';
echo '</tr>';
echo '<tr>';
echo '<td id="C6"><a href="javascript:show_question(6)" Title="Click Aqui"><u><b><h3>No tengo acceso al Correo USIL</p></b></h3></a></td>';
echo '<tr>';
echo '<td id="A6" style="display:none;align:justify;">
<ul>
<li>Cont&aacute;ctese con <a href="mailto:helpdesk@usil.edu.pe"> helpdesk@usil.edu.pe</a>
El personal de soporte virtual s&oacute;lo podr&aacute; ayudarlo en problemas referentes al
<b>Campus Virtual USIL.</b>
</li>
</ul>
</td>';
echo '</tr>';
echo '</table>';
echo '</div>';
show_form_send_ticket();
}else{
save_ticket();
}
Display::display_footer();
Display::display_footer();

@ -1,11 +1,11 @@
<?php
class TicketManager{
class TicketManager {
function TicketManager(){
}
public static function get_all_tickets_categories(){
$table_support_category = Database::get_main_table("tck_category");
$table_support_project = Database::get_main_table("tck_project");
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$table_support_project = Database::get_main_table(TABLE_SUPPORT_PROJECT);
$sql = "SELECT category.*, project.other_area , project.email FROM ".$table_support_category." category,".$table_support_project." project WHERE project.project_id = category.project_id ORDER BY category.total_tickets DESC;";
$result = Database::query($sql);
$types = array();
@ -15,7 +15,7 @@ class TicketManager{
return $types;
}
public static function get_all_tickets_status(){
$table_support_status = Database::get_main_table("tck_status");
$table_support_status = Database::get_main_table(TABLE_SUPPORT_STATUS);
$sql = "SELECT * FROM ".$table_support_status;
$result = Database::query($sql);
$types = array();
@ -25,17 +25,17 @@ class TicketManager{
return $types;
}
public static function insert_new_ticket($category_id, $course_id,$project_id,$other_area, $email,$subject, $content,$personalemail="",$file_attachments,$source='VRT',$priority='NRM',$status='',$request_user ='',$assigned_user=0){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_category = Database::get_main_table("tck_category");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$now = api_get_utc_datetime();
$user_id = api_get_user_id();
if($status == ''){
$status = 'NAT';
$status = NEWTCK;
if($other_area > 0){
$status = 'REE';
$status = REENVIADO;
}
}
if($request_user == ''&& $source == 'VRT'){
$request_user = $user_id;
}
@ -49,7 +49,7 @@ class TicketManager{
}
if($ticket_id != 0){
$ticket_code ="A".str_pad((int) $ticket_id,11,"0",STR_PAD_LEFT);
$sql_update_code = "UPDATE ".$table_support_tickets ." SET ticket_code = '$ticket_code' WHERE ticket_id = '$ticket_id'";
$sql_update_code = "UPDATE ".$table_support_tickets." SET ticket_code = '$ticket_code' WHERE ticket_id = '$ticket_id'";
Database::query($sql_update_code);
$data_files = array();
$sql_update_total = "UPDATE ".$table_support_category." SET total_tickets = total_tickets +1 WHERE category_id = '$category_id';";
@ -95,9 +95,9 @@ class TicketManager{
}
public static function insert_message($ticket_id,$subject,$content,$file_attachments,$user_id,$status='NOL',$envioconfirmacion=false){
global $data_files;
$table_support_messages = Database::get_main_table("tck_message");
$table_support_tickets = Database::get_main_table("tck_tickets");
$table_support_message_attachments = Database::get_main_table("tck_message_attachments");
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_message_attachments = Database::get_main_table(TABLE_SUPPORT_MESSAGE_ATTACHMENTS);
if ($envioconfirmacion){
$formulario = '<form action="ticket_details.php?ticket_id='.$ticket_id.'" id="confirmticket" method="POST" >
<p>Esta respuesta le result&oacute; satisfactoria</p>
@ -140,7 +140,7 @@ class TicketManager{
$user_id = api_get_user_id();
$new_file_name = add_ext_on_mime(stripslashes($file_attach['name']), $file_attach['type']);
$file_name =$file_attach['name'];
$table_support_message_attachments = Database::get_main_table("tck_message_attachments");
$table_support_message_attachments = Database::get_main_table(TABLE_SUPPORT_MESSAGE_ATTACHMENTS);
if (!filter_extension($new_file_name)) {
Display :: display_error_message(get_lang('UplUnableToSaveFileFilteredExtension'));
} else {
@ -164,20 +164,19 @@ class TicketManager{
}
}
public static function get_tickets_by_user_id($from, $number_of_items, $column, $direction ,$user_id=null){
$table_support_category = Database::get_main_table("tck_category");
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_priority = Database::get_main_table("tck_priority");
$table_support_status = Database::get_main_table("tck_status");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_priority = Database::get_main_table(TABLE_SUPPORT_PRIORITY);
$table_support_status = Database::get_main_table(TABLE_SUPPORT_STATUS);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
$table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
if(is_null($direction)) $direction ="DESC";
if(is_null($user_id) || $user_id==0){
$user_id = api_get_user_id();
}
$isAdmin = UserManager::is_admin($user_id);
$tbl_tckts = "soportevirtual.tck_ticket";
$tbl_categories =" soportevirtual.tck_category";
$sql = "SELECT ticket.*, ticket.ticket_id AS col0,ticket.start_date AS col1, ticket.sys_lastedit_datetime AS col2 ,cat.name AS col3,user.username AS col4, priority.priority AS col5 ,
priority.priority AS col6, status.name AS col7 , ticket.total_messages AS col8, msg.message AS col9, ticket.request_user AS user_id , ticket.assigned_last_user AS responsable
FROM ".$table_support_tickets." ticket ,".$table_support_category." cat , ".$table_support_priority ." priority, ".$table_support_status ." status , ".Database::get_main_table(TABLE_MAIN_USER)." user, tck_message msg
@ -206,7 +205,7 @@ class TicketManager{
$keyword_priority = Database::escape_string(trim($_GET['keyword_priority']));
$keyword_range = Database::escape_string(trim($_GET['keyword_dates']));
$keyword_course = Database::escape_string(trim($_GET['keyword_course']));
if($keyword_category !=''){
$sql.=" AND ticket.category_id = '$keyword_category' ";
}
@ -239,7 +238,7 @@ class TicketManager{
$sql .= " AND ticket.course_id IN ( ";
$sql .= "SELECT id FROM $course_table WHERE (title LIKE '%".$keyword_course."%' OR code LIKE '%".$keyword_course."%' OR visual_code LIKE '%".$keyword_course."%' )) ";
}
}
if($keyword_unread == 'yes'){
$sql.= " AND ticket.ticket_id IN (SELECT ticket.ticket_id FROM $table_support_tickets ticket, $table_support_messages message, $table_main_user user WHERE ticket.ticket_id = message.ticket_id AND message.status = 'NOL' AND message.sys_insert_user_id = user.user_id AND user.user_id NOT IN (SELECT user_id FROM $table_main_admin) AND ticket.status_id != 'REE' GROUP BY ticket.ticket_id)";
@ -310,7 +309,7 @@ class TicketManager{
$now = api_strtotime(api_get_utc_datetime());
$last_edit_date = api_strtotime($row['sys_lastedit_datetime']);
$dif = $now - $last_edit_date ;
if($dif > 172800 && $row['priority_id'] == 'NRM' && $row['status_id']!='CLS'){
$actions .= '<a href="myticket.php?ticket_id='.$row['ticket_id'].'&amp;action=alert"><img src="../../../main/img/exclamation.png" border="0" /></a>';
}
@ -318,9 +317,9 @@ class TicketManager{
$ticket=array($row['col0'],api_format_date($row['col1'],'%d/%m/%y - %I:%M:%S %p'),api_format_date($row['col2'],'%d/%m/%y - %I:%M:%S %p'),$row['col3'],$row['col7'],$actions);
}
if($unread > 0){
$ticket['0']=$ticket['0'].'&nbsp;&nbsp;('.$unread.')<a href="ticket_details.php?ticket_id='.$row['ticket_id'].'"><img src="../../../main/img/message_new.png" border="0" title="'.$unread.' Nuevo(s) Mensajes"/></a>';
}
if ($isAdmin)
$ticket['0'].= '&nbsp;&nbsp;<a href="javascript:void(0)" onclick="load_history_ticket(\'div_'.$row['ticket_id'].'\','.$row['ticket_id'].')">
@ -332,11 +331,11 @@ class TicketManager{
return $tickets;
}
public static function get_total_tickets_by_user_id($user_id=null){
$table_support_category = Database::get_main_table("tck_category");
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_priority = Database::get_main_table("tck_priority");
$table_support_status = Database::get_main_table("tck_status");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_priority = Database::get_main_table(TABLE_SUPPORT_PRIORITY);
$table_support_status = Database::get_main_table(TABLE_SUPPORT_STATUS);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
$table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
if(is_null($user_id) || $user_id==0){
@ -347,7 +346,7 @@ class TicketManager{
if(!api_is_platform_admin()){
$sql.=" AND request_user = '$user_id' ";
}
//Search simple
if(isset($_GET['submit_simple'])){
if($_GET['keyword']!=''){
@ -368,7 +367,7 @@ class TicketManager{
$keyword_priority = Database::escape_string(trim($_GET['keyword_priority']));
$keyword_range = Database::escape_string(trim($_GET['keyword_dates']));
$keyword_course = Database::escape_string(trim($_GET['keyword_course']));
if($keyword_category !=''){
$sql.=" AND ticket.category_id = '$keyword_category' ";
}
@ -401,7 +400,7 @@ class TicketManager{
$sql .= " AND ticket.course_id IN ( ";
$sql .= "SELECT id FROM $course_table WHERE (title LIKE '%".$keyword_course."%' OR code LIKE '%".$keyword_course."%' OR visual_code LIKE '%".$keyword_course."%' )) ";
}
}
if($keyword_unread == 'yes'){
$sql.= " AND ticket.ticket_id IN (SELECT ticket.ticket_id FROM $table_support_tickets ticket, $table_support_messages message, $table_main_user user WHERE ticket.ticket_id = message.ticket_id AND message.status = 'NOL' AND message.sys_insert_user_id = user.user_id AND user.user_id NOT IN (SELECT user_id FROM $table_main_admin) AND ticket.status_id != 'REE' GROUP BY ticket.ticket_id)";
@ -413,13 +412,13 @@ class TicketManager{
return $obj->total;
}
public static function get_ticket_detail_by_id($ticket_id,$user_id){
$table_support_category = Database::get_main_table("tck_category");
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_priority = Database::get_main_table("tck_priority");
$table_support_status = Database::get_main_table("tck_status");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_message_attachments = Database::get_main_table("tck_message_attachments");
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_priority = Database::get_main_table(TABLE_SUPPORT_PRIORITY);
$table_support_status = Database::get_main_table(TABLE_SUPPORT_STATUS);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_support_message_attachments = Database::get_main_table(TABLE_SUPPORT_MESSAGE_ATTACHMENTS);
$sql = "SELECT ticket.* ,cat.name , status.name as status, priority.priority FROM ".$table_support_tickets." ticket, ".$table_support_category." cat ,".$table_support_priority." priority , ".$table_support_status." status
WHERE ticket.ticket_id = '$ticket_id' AND cat.category_id = ticket.category_id AND priority.priority_id = ticket.priority_id AND status.status_id = ticket.status_id ";
if(!UserManager::is_admin($user_id)){
@ -459,22 +458,22 @@ class TicketManager{
$message['admin'] = true;
}
$message['user_created']= '<a href="'.api_get_path(WEB_PATH).'main/admin/user_information.php?user_id='.$row['user_id'].'">'.$row['firstname'].' '.$row['lastname'].'</a>';
$sql_atachment ="SELECT * FROM ".$table_support_message_attachments." WHERE message_id = ".$row['message_id']." AND ticket_id= '$ticket_id' ";
$sql_atachment ="SELECT * FROM ".TABLE_SUPPORT_MESSAGE_ATTACHMENTS." WHERE message_id = ".$row['message_id']." AND ticket_id= '$ticket_id' ";
$result_attach = Database::query($sql_atachment);
while ($row2 = Database::fetch_assoc($result_attach)){
$archiveURL =$archiveURL=api_get_path(WEB_CODE_PATH).'support/download.php?ticket_id='.$ticket_id.'&file=';
$archiveURL =$archiveURL=api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/download.php?ticket_id='.$ticket_id.'&file=';
$row2['attachment_link']= $attach_icon.'&nbsp;<a href="'.$archiveURL.$row2['path'].'&title='.$row2['filename'].'">'.$row2['filename'].'</a>&nbsp;('.$row2['size'].')';
$message['atachments'][]= $row2;
}
$ticket['messages'][] = $message;
}
}
}
return $ticket;
}
public static function assign_ticket_user($ticket_id, $user_id){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_assigned_log = Database::get_main_table("tck_assigned_log");
$now = api_get_utc_datetime();
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_assigned_log = Database::get_main_table(TABLE_SUPPORT_ASSIGNED_LOG);
$now = api_get_utc_datetime();
$sql_update = "UPDATE ".$table_support_tickets." SET assigned_last_user = '$user_id' WHERE ticket_id = '$ticket_id' ";
Database::query($sql_update);
if(Database::affected_rows()>0){
@ -484,14 +483,14 @@ class TicketManager{
if ($insert_id != $user_id){
$info = api_get_user_info($user_id);
$mensaje = '<p>Estimado(a):</p><p>'.$info['firstname']." ".$info['lastname']."</p>
<p>Te asignaron el ticket $ticket_id ".'<a href="http://campusvirtual.usil.edu.pe/main/support/ticket_details.php?ticket_id='.$ticket_id.'">Ticket</a></p>
<p>Te asignaron el ticket $ticket_id ".'<a href="'.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/ticket_details.php?ticket_id='.$ticket_id.'">Ticket</a></p>
<p>Centro de Educaci&oacute;n Virtual</p>';
api_mail_html($info['firstname']." ".$info['lastname'], $info['mail'], "[TICKETS] Asignacion de Ticket #$ticket_id ", $mensaje,'Plataforma Virtual', 'plataformavirtual@usil.edu.pe', array('cc'=>'plataformavirtual@usil.edu.pe'));
}
}
}
public static function update_message_status($ticket_id,$user_id){
$table_support_messages = Database::get_main_table("tck_message");
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$sql = "UPDATE ".$table_support_messages." SET status = 'LEI' , sys_lastedit_user_id ='".api_get_user_id()."' ,sys_lastedit_datetime ='".$now."' WHERE ticket_id ='$ticket_id' ";
if(api_is_platform_admin()){
@ -502,15 +501,15 @@ class TicketManager{
}
Database::query($sql);
if(Database::affected_rows()>0){
Database::query("UPDATE ".Database::get_main_table("tck_ticket")." SET status_id = 'PND' WHERE ticket_id ='$ticket_id' AND status_id = 'NAT'");
Database::query("UPDATE ".Database::get_main_table(TABLE_SUPPORT_TICKET)." SET status_id = 'PND' WHERE ticket_id ='$ticket_id' AND status_id = 'NAT'");
return true;
}else{
return false;
}
}
public static function update_ticket_status($status_id,$ticket_id, $user_id){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$now = api_get_utc_datetime();
$sql = "UPDATE ".$table_support_tickets." SET status_id = '$status_id' , sys_lastedit_user_id ='$user_id' ,sys_lastedit_datetime ='".$now."' WHERE ticket_id ='$ticket_id'";
Database::query($sql);
@ -521,8 +520,8 @@ class TicketManager{
}
}
public static function get_number_of_messages(){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
$table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
$user_info = api_get_user_info();
@ -537,55 +536,53 @@ class TicketManager{
$res = Database::query($sql);
$obj = Database::fetch_object($res);
return $obj->unread;
}
public static function send_alert($ticket_id,$user_id){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$now = api_get_utc_datetime();
$sql = "UPDATE ".$table_support_tickets." SET priority_id = 'ALT', sys_lastedit_user_id ='$user_id' ,sys_lastedit_datetime ='".$now."' WHERE ticket_id = '$ticket_id'";
Database::query($sql);
}
public static function close_ticket($ticket_id, $user_id){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$now = api_get_utc_datetime();
$sql = "UPDATE ".$table_support_tickets." SET status_id = 'CLS' , sys_lastedit_user_id ='$user_id' ,sys_lastedit_datetime ='".$now."' ,end_date ='".$now."' WHERE ticket_id ='$ticket_id'";
Database::query($sql);
}
public static function close_old_tickets(){
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$now = api_get_utc_datetime();
$sql = "UPDATE ".$table_support_tickets." SET status_id = 'CLS' , sys_lastedit_user_id ='".api_get_user_id()."' ,sys_lastedit_datetime ='".$now."',end_date ='".$now."' WHERE DATEDIFF('$now',sys_lastedit_datetime) > 7 AND status_id != 'CLS' AND status_id != 'NAT' AND status_id != 'REE'";
Database::query($sql);
}
public static function get_assign_log($ticket_id){
$table_support_assigned_log = Database::get_main_table("tck_assigned_log");
$sql = "SELECT log.* FROM ".$table_support_assigned_log." log WHERE log.ticket_id = '$ticket_id' ORDER BY log.assigned_date";
$table_support_assigned_log = Database::get_main_table(TABLE_SUPPORT_ASSIGNED_LOG);
$sql = "SELECT log.* FROM ".TABLE_SUPPORT_ASSIGNED_LOG." log WHERE log.ticket_id = '$ticket_id' ORDER BY log.assigned_date";
$result = Database::query($sql);
$history = array();
while ($row = Database::fetch_assoc($result)){
if ($row['user_id'] != 0) $assignuser = api_get_user_info($row['user_id']);
$insertuser = api_get_user_info($row['sys_insert_user_id']);
$row['assigned_date'] = api_convert_and_format_date(api_get_local_time($row['assigned_date']), '%d/%m/%y-%H:%M:%S',_api_get_timezone());
$row['assignuser']= ($row['user_id'] != 0)?('<a href="'.api_get_path(WEB_PATH).'main/admin/user_information.php?user_id='.$row['user_id'].'" target="_blank">'.$assignuser['username'].'</a>'):"Desasignado";
$row['assignuser']= ($row['user_id'] != 0)?('<a href="'.api_get_path(WEB_PATH).'main/admin/user_information.php?user_id='.$row['user_id'].'" target="_blank">'.$assignuser['username'].'</a>') : get_lang('Unassign');
$row['insertuser']= '<a href="'.api_get_path(WEB_PATH).'main/admin/user_information.php?user_id='.$row['sys_insert_user_id'].'" target="_blank">'.$insertuser['username'].'</a>';
$history[]=$row;
}
return $history;
}
public static function export_tickets_by_user_id($from, $number_of_items, $column, $direction ,$user_id=null){
$table_support_category = Database::get_main_table("tck_category");
$table_support_tickets = Database::get_main_table("tck_ticket");
$table_support_priority = Database::get_main_table("tck_priority");
$table_support_status = Database::get_main_table("tck_status");
$table_support_messages = Database::get_main_table("tck_message");
$table_support_category = Database::get_main_table(TABLE_SUPPORT_CATEGORY);
$table_support_tickets = Database::get_main_table(TABLE_SUPPORT_TICKET);
$table_support_priority = Database::get_main_table(TABLE_SUPPORT_PRIORITY);
$table_support_status = Database::get_main_table(TABLE_SUPPORT_STATUS);
$table_support_messages = Database::get_main_table(TABLE_SUPPORT_MESSAGE);
$table_main_user = Database::get_main_table(TABLE_MAIN_USER);
if(is_null($direction)) $direction ="DESC";
if(is_null($user_id) || $user_id==0){
$user_id = api_get_user_id();
}
$tbl_tckts = "soportevirtual.tck_ticket";
$tbl_categories =" soportevirtual.tck_category";
$sql = "SELECT ticket.ticket_code, ticket.sys_insert_datetime , ticket.sys_lastedit_datetime , cat.name as category , CONCAT(user.lastname,' ', user.firstname) AS fullname , status.name as status , ticket.total_messages as messages , ticket.assigned_last_user as responsable
FROM ".$table_support_tickets." ticket ,".$table_support_category." cat , ".$table_support_priority ." priority, ".$table_support_status ." status , ".Database::get_main_table(TABLE_MAIN_USER)." user
WHERE cat.category_id = ticket.category_id AND ticket.priority_id = priority.priority_id AND ticket.status_id = status.status_id AND user.user_id = ticket.request_user ";
@ -609,7 +606,7 @@ class TicketManager{
$keyword_range = Database::escape_string(trim($_GET['keyword_dates']));
$keyword_unread = Database::escape_string(trim($_GET['keyword_unread']));
$keyword_course = Database::escape_string(trim($_GET['keyword_course']));
if($keyword_category !=''){
$sql.=" AND ticket.category_id = '$keyword_category' ";
}
@ -647,16 +644,16 @@ class TicketManager{
}else if($keyword_unread == 'no'){
$sql.= " AND ticket.ticket_id NOT IN (SELECT ticket.ticket_id FROM $table_support_tickets ticket, $table_support_messages message, $table_main_user user WHERE ticket.ticket_id = message.ticket_id AND message.status = 'NOL' AND message.sys_insert_user_id = user.user_id AND user.status != 1 AND ticket.status_id != 'REE' GROUP BY ticket.ticket_id)";
}
}
//$sql .= " ORDER BY col$column $direction";
$sql .= " LIMIT $from,$number_of_items";
$result = Database::query($sql);
$tickets[0] = array(utf8_decode('Ticket#'), utf8_decode('Fecha'), utf8_decode('Fecha Edicion'), utf8_decode('Categoria'), utf8_decode('Usuario'), utf8_decode('Estado'), utf8_decode('Mensajes'), utf8_decode('Responsable') , utf8_decode('Programa') ) ;
while ($row = Database::fetch_assoc($result)){
if( $row['responsable'] != 0){
$row['responsable']= api_get_user_info($row['responsable']);

@ -1,7 +1,8 @@
<?php
$language_file = array ('registration');
require_once '../../../main/inc/global.inc.php';
require_once 'ticket.class.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
$ticket_id = intval($_POST['ticket_id']);
$history = TicketManager::get_assign_log($ticket_id);
?>

@ -1,9 +1,8 @@
<?php
$language_file= array('messages','userInfo', 'admin');
$cidReset = true;
require_once '../../../main/inc/global.inc.php';
require_once 'ticket.class.php';
require_once api_get_path(LIBRARY_PATH).'mail.lib.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
api_block_anonymous_users();
$interbreadcrumb[]= array ('url' =>'myticket.php','name' => get_lang('MisTickets'));
@ -324,7 +323,7 @@ function show_form_send_message(){
</div>
<div class="formw2">
<input type="hidden" id="content" name="content" value="" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PATH).'main/Support/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<input type="hidden" id="content___Config" value="ToolbarSet=Messages&amp;Width=95%25&amp;Height=250&amp;ToolbarSets={ %22Messages%22: [ [ %22Bold%22,%22Italic%22,%22-%22,%22InsertOrderedList%22,%22InsertUnorderedList%22,%22Link%22,%22RemoveLink%22 ] ], %22MessagesMaximized%22: [ ] }&amp;LoadPlugin=[%22customizations%22]&amp;EditorAreaStyles=body { background: #ffffff; }&amp;ToolbarStartExpanded=false&amp;CustomConfigurationsPath=/main/inc/lib/fckeditor/myconfig.js&amp;EditorAreaCSS=/main/css/chamilo/default.css&amp;ToolbarComboPreviewCSS=/main/css/chamilo/default.css&amp;DefaultLanguage=es&amp;ContentLangDirection=ltr&amp;AdvancedFileManager=true&amp;BaseHref='.api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/s/&amp;&amp;UserIsCourseAdmin=true&amp;UserIsPlatformAdmin=true" style="display:none">
<iframe id="content___Frame" src="/main/inc/lib/fckeditor/editor/fckeditor.html?InstanceName=content&amp;Toolbar=Messages" width="95%" height="250" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border: 0px; background-color: transparent; background-image: none; width: 95%; height: 250px;">
</iframe>
</div>

@ -1,7 +1,9 @@
<?php
require_once '../../../main/inc/global.inc.php';
require_once '../config.php';
$plugin = TicketPlugin::create();
require_once 'tutor_report.lib.php';
include_once api_get_path(LIBRARY_PATH).'export.lib.inc.php';
$htmlHeadXtra[] = '
<script type="text/javascript">
$(document).ready(function (){

Loading…
Cancel
Save