ticket_plugin.class.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Class TicketPlugin
  5. *
  6. * @package chamilo.plugin.ticket
  7. *
  8. */
  9. class TicketPlugin extends Plugin
  10. {
  11. /**
  12. * Set the result
  13. * @staticvar null $result
  14. * @return TicketPlugin
  15. */
  16. public static function create()
  17. {
  18. static $result = null;
  19. return $result ? $result : $result = new self();
  20. }
  21. /**
  22. * TicketPlugin constructor.
  23. */
  24. protected function __construct()
  25. {
  26. $settings = array(
  27. 'tool_enable' => 'boolean',
  28. 'allow_student_add' => 'boolean',
  29. 'allow_category_edition' => 'boolean',
  30. 'warn_admin_no_user_in_category' => 'boolean',
  31. 'send_warning_to_all_admins' => 'boolean'
  32. );
  33. parent::__construct(
  34. '3.0',
  35. 'Kenny Rodas Chavez, Genesis Lopez, Francis Gonzales, Yannick Warnier, Julio Montoya',
  36. $settings
  37. );
  38. }
  39. /**
  40. * Install the ticket plugin
  41. */
  42. public function install()
  43. {
  44. // Create database tables and insert a Tab
  45. require_once api_get_path(SYS_PLUGIN_PATH).PLUGIN_NAME.'/database.php';
  46. }
  47. /**
  48. * Uninstall the ticket plugin
  49. */
  50. public function uninstall()
  51. {
  52. $tblSettings = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
  53. $tblTicketTicket = Database::get_main_table(TABLE_TICKET_TICKET);
  54. $tblTicketStatus = Database::get_main_table(TABLE_TICKET_STATUS);
  55. $tblTicketProject = Database::get_main_table(TABLE_TICKET_PROJECT);
  56. $tblTicketPriority = Database::get_main_table(TABLE_TICKET_PRIORITY);
  57. $tblTicketMesAttch = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
  58. $tblTicketMessage = Database::get_main_table(TABLE_TICKET_MESSAGE);
  59. $tblTicketCategory = Database::get_main_table(TABLE_TICKET_CATEGORY);
  60. $tblTicketAssgLog = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
  61. $settings = $this->get_settings();
  62. $plugSetting = current($settings);
  63. // Delete settings
  64. $sql = "DELETE FROM $tblSettings WHERE variable = 'ticket_tool_enable'";
  65. Database::query($sql);
  66. $sql = "DROP TABLE IF EXISTS $tblTicketTicket";
  67. Database::query($sql);
  68. $sql = "DROP TABLE IF EXISTS $tblTicketStatus";
  69. Database::query($sql);
  70. $sql = "DROP TABLE IF EXISTS $tblTicketProject";
  71. Database::query($sql);
  72. $sql = "DROP TABLE IF EXISTS $tblTicketPriority";
  73. Database::query($sql);
  74. $sql = "DROP TABLE IF EXISTS $tblTicketMesAttch";
  75. Database::query($sql);
  76. $sql = "DROP TABLE IF EXISTS $tblTicketMessage";
  77. Database::query($sql);
  78. $sql = "DROP TABLE IF EXISTS $tblTicketCategory";
  79. Database::query($sql);
  80. $sql = "DROP TABLE IF EXISTS $tblTicketAssgLog";
  81. Database::query($sql);
  82. $sql = "DROP TABLE IF EXISTS $tblTicketTicket";
  83. Database::query($sql);
  84. $rsTab = $this->deleteTab($plugSetting['comment']);
  85. if ($rsTab) {
  86. echo "<script>location.href = '".$_SERVER['REQUEST_URI']."';</script>";
  87. }
  88. }
  89. }