Browse Source

Merge branch '1.11.x' of https://github.com/chamilo/chamilo-lms into 1.11.x

Alex Aragon 8 years ago
parent
commit
648636e2ff
57 changed files with 1711 additions and 928 deletions
  1. 115 1
      app/Migrations/Schema/V111/Version111.php
  2. 2 2
      app/Resources/public/css/base.css
  3. 1 1
      app/config/sonata/sonata_media.yml
  4. 17 10
      main/admin/course_import.php
  5. 88 88
      main/inc/lib/TicketManager.php
  6. 1 1
      main/inc/lib/add_course.lib.inc.php
  7. 10 0
      main/inc/lib/database.constants.inc.php
  8. 7 5
      main/inc/lib/database.lib.php
  9. 2 0
      main/inc/lib/export.lib.inc.php
  10. 1 0
      main/inc/lib/import.lib.php
  11. 2 1
      main/inc/lib/plugin.lib.php
  12. 37 0
      main/lang/brazilian/trad4all.inc.php
  13. 159 72
      main/lang/dutch/trad4all.inc.php
  14. 4 2
      main/lang/english/trad4all.inc.php
  15. 4 2
      main/lang/french/trad4all.inc.php
  16. 188 7
      main/lang/portuguese/trad4all.inc.php
  17. 145 0
      main/lang/slovenian/trad4all.inc.php
  18. 8 4
      main/lang/spanish/trad4all.inc.php
  19. 7 0
      main/template/default/layout/footer.tpl
  20. 1 1
      main/ticket/assign_tickets.php
  21. 7 7
      main/ticket/categories.php
  22. 2 2
      main/ticket/categories_add_user.php
  23. 1 1
      main/ticket/course_user_list.php
  24. 1 1
      main/ticket/download.php
  25. 2 2
      main/ticket/index.php
  26. 48 48
      main/ticket/myticket.php
  27. 29 30
      main/ticket/new_ticket.php
  28. 1 1
      main/ticket/report.php
  29. 1 1
      main/ticket/ticket_assign_log.php
  30. 32 33
      main/ticket/ticket_details.php
  31. 0 0
      main/ticket/ticket_plugin.class.php
  32. 1 1
      main/ticket/tutor.php
  33. 0 0
      main/ticket/tutor_report.lib.php
  34. 2 2
      main/ticket/update_report.php
  35. 8 0
      plugin/courseblock/CourseBlockPlugin.php
  36. 1 0
      plugin/courseblock/lang/english.php
  37. 0 1
      plugin/ticket/README.md
  38. 0 23
      plugin/ticket/config.php
  39. 0 249
      plugin/ticket/database.php
  40. 0 1
      plugin/ticket/index.php
  41. 0 11
      plugin/ticket/install.php
  42. 0 102
      plugin/ticket/lang/english.php
  43. 0 89
      plugin/ticket/lang/french.php
  44. 0 93
      plugin/ticket/lang/spanish.php
  45. 0 8
      plugin/ticket/plugin.php
  46. 0 14
      plugin/ticket/start.php
  47. 0 11
      plugin/ticket/uninstall.php
  48. 1 0
      src/Chamilo/CoreBundle/Composer/ScriptHandler.php
  49. 58 0
      src/Chamilo/TicketBundle/Entity/AssignedLog.php
  50. 91 0
      src/Chamilo/TicketBundle/Entity/Category.php
  51. 44 0
      src/Chamilo/TicketBundle/Entity/CategoryRelUser.php
  52. 92 0
      src/Chamilo/TicketBundle/Entity/Message.php
  53. 93 0
      src/Chamilo/TicketBundle/Entity/MessageAttachment.php
  54. 90 0
      src/Chamilo/TicketBundle/Entity/Priority.php
  55. 83 0
      src/Chamilo/TicketBundle/Entity/Project.php
  56. 48 0
      src/Chamilo/TicketBundle/Entity/Status.php
  57. 176 0
      src/Chamilo/TicketBundle/Entity/Ticket.php

+ 115 - 1
app/Migrations/Schema/V111/Version111.php

@@ -144,8 +144,122 @@ class Version111 extends AbstractMigrationChamilo
             $this->addSql('UPDATE plugin_ticket_ticket t INNER JOIN plugin_ticket_message as m  ON(t.ticket_id = m.ticket_id and message_id =1)  SET t.subject = m.subject');
             $this->addSql('UPDATE plugin_ticket_ticket t INNER JOIN plugin_ticket_message as m  ON(t.ticket_id = m.ticket_id and message_id =1)  SET t.message = m.message');
             $this->addSql('DELETE FROM plugin_ticket_message WHERE message_id = 1');
+
+            $this->addSql('RENAME TABLE plugin_ticket_assigned_log TO ticket_assigned_log');
+            $this->addSql('RENAME TABLE plugin_ticket_category TO ticket_category');
+            $this->addSql('RENAME TABLE plugin_ticket_category_rel_user TO ticket_category_rel_user');
+            $this->addSql('RENAME TABLE plugin_ticket_message TO ticket_message');
+            $this->addSql('RENAME TABLE plugin_ticket_message_attachments TO ticket_message_attachments');
+            $this->addSql('RENAME TABLE plugin_ticket_priority TO ticket_priority');
+            $this->addSql('RENAME TABLE plugin_ticket_project TO ticket_project');
+            $this->addSql('RENAME TABLE plugin_ticket_status TO ticket_status');
+            $this->addSql('RENAME TABLE plugin_ticket_ticket TO ticket_ticket');
+
+            $this->addSql('UPDATE ticket_project SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_project SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+            $this->addSql('ALTER TABLE ticket_project DROP project_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL, CHANGE email email VARCHAR(255) DEFAULT NULL, CHANGE other_area other_area INT DEFAULT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('ALTER TABLE ticket_status ADD code VARCHAR(255) NOT NULL, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL;');
+            $this->addSql('UPDATE ticket_status SET code = status_id ');
+            $this->addSql('ALTER TABLE ticket_status DROP status_id');
+            $this->addSql('ALTER TABLE ticket_category_rel_user CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE category_id category_id INT DEFAULT NULL, CHANGE user_id user_id INT DEFAULT NULL;');
+
+
+            $this->addSql('UPDATE ticket_category SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_category SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+            $this->addSql('UPDATE ticket_category SET course_required = 0 WHERE course_required IS NULL OR course_required = ""');
+
+            $this->addSql('UPDATE ticket_category SET project_id = 1 WHERE project_id IS NULL OR project_id = ""');
+
+            $this->addSql('ALTER TABLE ticket_category DROP category_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE project_id project_id INT DEFAULT NULL, CHANGE name name VARCHAR(255) NOT NULL, CHANGE description description LONGTEXT DEFAULT NULL, CHANGE total_tickets total_tickets INT NOT NULL, CHANGE course_required course_required TINYINT(1) NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+            $this->addSql('ALTER TABLE ticket_category ADD CONSTRAINT FK_8325E540166D1F9C FOREIGN KEY (project_id) REFERENCES ticket_project (id);');
+            $this->addSql('CREATE INDEX IDX_8325E540166D1F9C ON ticket_category (project_id);');
+
+            $this->addSql('ALTER TABLE ticket_category_rel_user ADD CONSTRAINT FK_5B8A98712469DE2 FOREIGN KEY (category_id) REFERENCES ticket_category (id);');
+            $this->addSql('ALTER TABLE ticket_category_rel_user ADD CONSTRAINT FK_5B8A987A76ED395 FOREIGN KEY (user_id) REFERENCES user (id);');
+
+            $this->addSql('CREATE INDEX IDX_5B8A98712469DE2 ON ticket_category_rel_user (category_id);');
+            $this->addSql('CREATE INDEX IDX_5B8A987A76ED395 ON ticket_category_rel_user (user_id);');
+
+            $this->addSql('ALTER TABLE ticket_message_attachments DROP message_attch_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE message_id message_id INT DEFAULT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE filename filename LONGTEXT NOT NULL, CHANGE size size INT NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            // missing
+            $this->addSql('ALTER TABLE ticket_message_attachments ADD CONSTRAINT FK_70BF9E26700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+            $this->addSql('CREATE INDEX IDX_70BF9E26700047D2 ON ticket_message_attachments (ticket_id);');
+            $this->addSql('ALTER TABLE ticket_message_attachments RENAME INDEX ticket_message_id_fk TO IDX_70BF9E26537A1329;');
+
+
+            $this->addSql('UPDATE ticket_priority SET sys_insert_user_id = 1 WHERE sys_insert_user_id IS NULL');
+            $this->addSql('UPDATE ticket_priority SET sys_insert_datetime = NOW() WHERE sys_insert_datetime IS NULL');
+
+            $this->addSql('ALTER TABLE ticket_priority ADD code VARCHAR(255) NOT NULL, ADD name VARCHAR(255) NOT NULL, ADD description LONGTEXT DEFAULT NULL, ADD color VARCHAR(255) NOT NULL, ADD urgency VARCHAR(255) NOT NULL, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('UPDATE ticket_priority SET code = priority_id');
+            $this->addSql('UPDATE ticket_priority SET name = priority');
+            $this->addSql('UPDATE ticket_priority SET description = priority_desc');
+            $this->addSql('UPDATE ticket_priority SET color = priority_color');
+            $this->addSql('UPDATE ticket_priority SET urgency = priority_urgency');
+
+            $this->addSql('ALTER TABLE ticket_priority DROP priority_id, DROP priority, DROP priority_desc, DROP priority_color, DROP priority_urgency');
+
+
+            $this->addSql('ALTER TABLE ticket_ticket MODIFY ticket_id INT UNSIGNED NOT NULL;');
+            $this->addSql('DROP INDEX UN_ticket_code ON ticket_ticket;');
+            $this->addSql('DROP INDEX FK_ticket_category ON ticket_ticket;');
+            $this->addSql('ALTER TABLE ticket_ticket DROP PRIMARY KEY;');
+
+            $this->addSql('UPDATE ticket_ticket t SET priority_id = (SELECT id FROM ticket_priority t2 WHERE t2.code = t.priority_id)');
+            $this->addSql('UPDATE ticket_ticket t SET status_id = (SELECT id FROM ticket_status t2 WHERE t2.code = t.status_id)');
+
+            $this->addSql('ALTER TABLE ticket_ticket ADD id INT NOT NULL, ADD code VARCHAR(255) NOT NULL, CHANGE project_id project_id INT DEFAULT NULL, CHANGE priority_id priority_id INT DEFAULT NULL, CHANGE course_id course_id INT DEFAULT NULL, CHANGE session_id session_id INT DEFAULT NULL, CHANGE personal_email personal_email VARCHAR(255) NOT NULL, CHANGE assigned_last_user assigned_last_user INT DEFAULT NULL, CHANGE status_id status_id INT DEFAULT NULL, CHANGE total_messages total_messages INT NOT NULL, CHANGE keyword keyword VARCHAR(255) DEFAULT NULL, CHANGE source source VARCHAR(255) DEFAULT NULL, CHANGE start_date start_date DATETIME DEFAULT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL, CHANGE subject subject VARCHAR(255) NOT NULL, CHANGE message message LONGTEXT DEFAULT NULL;');
+
+            $this->addSql('UPDATE ticket_ticket SET code = ticket_code');
+            $this->addSql('UPDATE ticket_ticket SET id = ticket_id');
+            $this->addSql('ALTER TABLE ticket_ticket DROP ticket_id, DROP ticket_code, DROP request_user');
+            $this->addSql('ALTER TABLE ticket_ticket MODIFY COLUMN id INT NOT NULL PRIMARY KEY AUTO_INCREMENT');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768497B19F9 FOREIGN KEY (priority_id) REFERENCES ticket_priority (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET project_id = 1 WHERE project_id is NULL or project_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768166D1F9C FOREIGN KEY (project_id) REFERENCES ticket_project (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET course_id = NULL WHERE course_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768591CC992 FOREIGN KEY (course_id) REFERENCES course (id);');
+
+            $this->addSql('UPDATE ticket_ticket SET session_id = NULL WHERE session_id = 0');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C768613FECDF FOREIGN KEY (session_id) REFERENCES session (id);');
+
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C7686BF700BD FOREIGN KEY (status_id) REFERENCES ticket_status (id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768166D1F9C ON ticket_ticket (project_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768591CC992 ON ticket_ticket (course_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C768613FECDF ON ticket_ticket (session_id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C7686BF700BD ON ticket_ticket (status_id);');
+
+            $this->addSql('ALTER TABLE ticket_ticket RENAME INDEX fk_ticket_priority TO IDX_EDE2C768497B19F9;');
+            $this->addSql('ALTER TABLE ticket_assigned_log CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE user_id user_id INT DEFAULT NULL, CHANGE assigned_date assigned_date DATETIME NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL;');
+            $this->addSql('ALTER TABLE ticket_assigned_log ADD CONSTRAINT FK_54B65868700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+
+            $this->addSql('DELETE FROM ticket_assigned_log WHERE user_id = 0 OR user_id IS NULL');
+
+            $this->addSql('ALTER TABLE ticket_assigned_log ADD CONSTRAINT FK_54B65868A76ED395 FOREIGN KEY (user_id) REFERENCES user (id);');
+            $this->addSql('CREATE INDEX IDX_54B65868A76ED395 ON ticket_assigned_log (user_id);');
+            $this->addSql('ALTER TABLE ticket_assigned_log RENAME INDEX fk_ticket_assigned_log TO IDX_54B65868700047D2;');
+
+            $this->addSql('ALTER TABLE ticket_category_rel_user RENAME INDEX fk_5b8a98712469de2 TO IDX_5B8A98712469DE2;');
+            $this->addSql('ALTER TABLE ticket_category_rel_user RENAME INDEX fk_5b8a987a76ed395 TO IDX_5B8A987A76ED395;');
+
+            $this->addSql('ALTER TABLE ticket_message DROP message_id, CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE ticket_id ticket_id INT DEFAULT NULL, CHANGE subject subject VARCHAR(255) DEFAULT NULL, CHANGE message message LONGTEXT DEFAULT NULL, CHANGE status status VARCHAR(255) NOT NULL, CHANGE ip_address ip_address VARCHAR(255) NOT NULL, CHANGE sys_insert_user_id sys_insert_user_id INT NOT NULL, CHANGE sys_insert_datetime sys_insert_datetime DATETIME NOT NULL, CHANGE sys_lastedit_user_id sys_lastedit_user_id INT DEFAULT NULL;');
+
+            $this->addSql('ALTER TABLE ticket_message ADD CONSTRAINT FK_BA71692D700047D2 FOREIGN KEY (ticket_id) REFERENCES ticket_ticket (id);');
+            $this->addSql('ALTER TABLE ticket_message RENAME INDEX fk_tick_message TO IDX_BA71692D700047D2;');
+            $this->addSql('ALTER TABLE ticket_ticket CHANGE category_id category_id INT DEFAULT NULL;');
+            $this->addSql('ALTER TABLE ticket_ticket ADD CONSTRAINT FK_EDE2C76812469DE2 FOREIGN KEY (category_id) REFERENCES ticket_category (id);');
+            $this->addSql('CREATE INDEX IDX_EDE2C76812469DE2 ON ticket_ticket (category_id);');
+
+            $this->addSql('ALTER TABLE ticket_message_attachments ADD CONSTRAINT FK_70BF9E26537A1329 FOREIGN KEY (message_id) REFERENCES ticket_message (id);');
         }
-}    /**
+    }
+
+    /**
      * @param Schema $schema
      */
     public function postUp(Schema $schema)

+ 2 - 2
app/Resources/public/css/base.css

@@ -4727,12 +4727,12 @@ div#chat-remote-video video {
     box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
     text-align: left;
     background-color: #fff;
-    min-height: 235px;
+    min-height: 250px;
     border: 1px solid #DFDFDF;
     border-radius: 5px;
 }
 .hot-courses .grid-courses .items{
-   min-height: 275px;
+   min-height: 300px;
 }
 .grid-courses .items .title{
     line-height: 1.4;

+ 1 - 1
app/config/sonata/sonata_media.yml

@@ -4,7 +4,7 @@ sonata_media:
         media: Chamilo\MediaBundle\Entity\Media
         gallery: Chamilo\MediaBundle\Entity\Gallery
         gallery_has_media: Chamilo\MediaBundle\Entity\GalleryHasMedia
-        category: Chamilo\ClassificationBundle\Entity\Category
+#        category: Chamilo\ClassificationBundle\Entity\Category
 
     db_driver: doctrine_orm # | doctrine_mongodb
     default_context: default

+ 17 - 10
main/admin/course_import.php

@@ -9,6 +9,9 @@
 
 /**
  * Validates imported data.
+ *
+ * @param array $courses
+ * @return array $errors
  */
 function validate_data($courses)
 {
@@ -20,14 +23,14 @@ function validate_data($courses)
         // 1. Check whether mandatory fields are set.
         $mandatory_fields = array ('Code', 'Title', 'CourseCategory');
         foreach ($mandatory_fields as $field) {
-            if (!isset($course[$field]) || strlen($course[$field]) == 0) {
+            if (empty($course[$field])) {
                 $course['error'] = get_lang($field.'Mandatory');
                 $errors[] = $course;
             }
         }
 
         // 2. Check current course code.
-        if (isset ($course['Code']) && strlen($course['Code']) != 0) {
+        if (!empty($course['Code'])) {
             // 2.1 Check whether code has been already used by this CVS-file.
             if (isset($coursecodes[$course['Code']])) {
                 $course['error'] = get_lang('CodeTwiceInFile');
@@ -61,12 +64,14 @@ function validate_data($courses)
             }
         }
 
-        // 4. Check whether course category exists.
-        if (isset($course['CourseCategory']) && strlen($course['CourseCategory']) != 0) {
+        if(!empty($course['CourseCategory'])) {
             $categoryInfo = CourseCategory::getCategory($course['CourseCategory']);
             if (empty($categoryInfo)) {
                 CourseCategory::addNode($course['CourseCategory'], $course['CourseCategoryName'] ? $course['CourseCategoryName'] : $course['CourseCategory'], 'TRUE', null);
             }
+        } else {
+            $course['error'] = get_lang('NoCourseCategorySupplied');
+            $errors[] = $course;
         }
     }
 
@@ -74,8 +79,9 @@ function validate_data($courses)
 }
 
 /**
- * @param array $teachers
+ * Get the teacher list
  *
+ * @param array $teachers
  * @return array
  */
 function getTeacherListInArray($teachers)
@@ -149,7 +155,7 @@ function save_data($courses)
  */
 function parse_csv_data($file)
 {
-    $courses = Import::csvToArray($file);
+    $courses = Import::csv_reader($file);
     return $courses;
 }
 
@@ -186,6 +192,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
             Display :: display_error_message(get_lang('YouMustImportAFileAccordingToSelectedOption'));
         } else {
             $courses = parse_csv_data($_FILES['import_file']['tmp_name']);
+
             $errors = validate_data($courses);
             if (count($errors) == 0) {
                 save_data($courses);
@@ -219,10 +226,10 @@ $form->display();
 
 <blockquote>
 <pre>
-<strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;Teacher;Language
-BIO0015;Biology;BIO;teacher1;english
-BIO0016;Maths;MATH;teacher2|teacher3;english
-BIO0017;Language;LANG;;english
+<strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;<strong>CourseCategoryName</strong>;Teacher;Language
+BIO0015;Biology;BIO;Science;teacher1;english
+BIO0016;Maths;MATH;Engineerng;teacher2|teacher3;english
+BIO0017;Language;LANG;;;english
 </pre>
 </blockquote>
 

+ 88 - 88
plugin/ticket/src/ticket.class.php → main/inc/lib/TicketManager.php

@@ -39,9 +39,15 @@ class TicketManager
         $table_support_project = Database::get_main_table(TABLE_TICKET_PROJECT);
 
         $order = empty($order) ? 'category.total_tickets DESC' : $order;
-        $sql = "SELECT category.*, project.other_area , project.email
-                FROM $table_support_category category, $table_support_project project
-                WHERE project.project_id = category.project_id
+        $sql = "SELECT 
+                    category.*, 
+                    category.id category_id,
+                    project.other_area, 
+                    project.email
+                FROM 
+                $table_support_category category, 
+                $table_support_project project
+                WHERE project.id = category.project_id
                 ORDER BY $order";
         $result = Database::query($sql);
         $types = array();
@@ -268,7 +274,6 @@ class TicketManager
         $status = '',
         $assigned_user = 0
     ) {
-        global $plugin;
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
         $table_support_category = Database::get_main_table(
             TABLE_TICKET_CATEGORY
@@ -327,7 +332,6 @@ class TicketManager
             'category_id' => $category_id,
             'priority_id' => $priority,
             'course_id' => $course_id,
-            'request_user' => 0,
             'personal_email' => $personalEmail,
             'status_id' => $status,
             'start_date' => $now,
@@ -347,7 +351,7 @@ class TicketManager
 
             Display::addFlash(Display::return_message(
                 sprintf(
-                    $plugin->get_lang('TicketXCreated'),
+                    get_lang('TicketXCreated'),
                     $ticket_code
                 ),
                 'normal',
@@ -359,7 +363,7 @@ class TicketManager
 
                 Display::addFlash(Display::return_message(
                     sprintf(
-                        $plugin->get_lang('TicketXAssignedToUserX'),
+                        get_lang('TicketXAssignedToUserX'),
                         $ticket_code,
                         $assignedUserInfo['complete_name']
                     ),
@@ -370,7 +374,7 @@ class TicketManager
 
             // Update code
             $sql = "UPDATE $table_support_tickets
-                    SET ticket_code = '$ticket_code'
+                    SET code = '$ticket_code'
                     WHERE ticket_id = '$ticket_id'";
             Database::query($sql);
 
@@ -416,7 +420,7 @@ class TicketManager
             if (empty($category_id)) {
                 if ($plugin->get('send_warning_to_all_admins')) {
                     $warningSubject = sprintf(
-                        $plugin->get_lang('TicketXCreatedWithNoCategory'),
+                        get_lang('TicketXCreatedWithNoCategory'),
                         $ticket_code
                     );
                     Display::addFlash(Display::return_message($warningSubject));
@@ -436,20 +440,20 @@ class TicketManager
                 $categoryInfo = TicketManager::getCategory($category_id);
                 $usersInCategory = TicketManager::getUsersInCategory($category_id);
 
-                $message = '<h2>'.$plugin->get_lang('TicketInformation').'</h2><br />'.$helpDeskMessage;
+                $message = '<h2>'.get_lang('TicketInformation').'</h2><br />'.$helpDeskMessage;
 
                 if ($plugin->get('warn_admin_no_user_in_category')) {
                     $usersInCategory = TicketManager::getUsersInCategory($category_id);
                     if (empty($usersInCategory)) {
                         $subject = sprintf(
-                            $plugin->get_lang('WarningCategoryXDoesntHaveUsers'),
+                            get_lang('WarningCategoryXDoesntHaveUsers'),
                             $categoryInfo['name']
                         );
 
                         if ($plugin->get('send_warning_to_all_admins')) {
                             Display::addFlash(Display::return_message(
                                 sprintf(
-                                    $plugin->get_lang('CategoryWithNoUserNotificationSentToAdmins'),
+                                    get_lang('CategoryWithNoUserNotificationSentToAdmins'),
                                     $categoryInfo['name']
                                 ),
                                 null,
@@ -490,9 +494,9 @@ class TicketManager
             if ($other_area) {
                 // Send email to "other area" email
                 api_mail_html(
-                    $plugin->get_lang('VirtualSupport'),
+                    get_lang('VirtualSupport'),
                     $email,
-                    $plugin->get_lang('IncidentResentToVirtualSupport'),
+                    get_lang('IncidentResentToVirtualSupport'),
                     $helpDeskMessage,
                     $user['firstname'].' '.$user['lastname'],
                     $personalEmail,
@@ -502,9 +506,9 @@ class TicketManager
 
                 // Send email to user
                 api_mail_html(
-                    $plugin->get_lang('VirtualSupport'),
+                    get_lang('VirtualSupport'),
                     $user['email'],
-                    $plugin->get_lang('IncidentResentToVirtualSupport'),
+                    get_lang('IncidentResentToVirtualSupport'),
                     $helpDeskMessage,
                     $user['firstname'].' '.$user['lastname'],
                     $personalEmail,
@@ -512,8 +516,8 @@ class TicketManager
                     $data_files
                 );
 
-                $studentMessage = sprintf($plugin->get_lang('YourQuestionWasSentToTheResponableAreaX'), $email, $email);
-                $studentMessage .= sprintf($plugin->get_lang('YourAnswerToTheQuestionWillBeSentToX'), $personalEmail);
+                $studentMessage = sprintf(get_lang('YourQuestionWasSentToTheResponableAreaX'), $email, $email);
+                $studentMessage .= sprintf(get_lang('YourAnswerToTheQuestionWillBeSentToX'), $personalEmail);
                 self::insert_message(
                     $ticket_id, get_lang('MessageResent'), $studentMessage, null, 1
                 );
@@ -534,7 +538,6 @@ class TicketManager
      */
     public static function assign_ticket_user($ticket_id, $user_id)
     {
-        global $plugin;
         $ticket_id = intval($ticket_id);
         $user_id = intval($user_id);
 
@@ -566,7 +569,7 @@ class TicketManager
 
             $sql = "UPDATE $table_support_tickets
                     SET assigned_last_user = $user_id
-                    WHERE ticket_id = $ticket_id";
+                    WHERE id = $ticket_id";
             $result = Database::query($sql);
             if (Database::affected_rows($result) > 0) {
                 $insert_id = api_get_user_id();
@@ -574,12 +577,12 @@ class TicketManager
                     'ticket_id' => $ticket_id,
                     'user_id' => $user_id,
                     'assigned_date' => $now,
-                    'sys_insert_user_id' => $insert_id,
+                    'sys_insert_user_id' => $insert_id
                 ];
                 Database::insert($table_support_assigned_log, $params);
 
                 $subject = '';
-                $content = sprintf($plugin->get_lang('AssignedChangeFromXToY'), $oldUserName, $userCompleteName);
+                $content = sprintf(get_lang('AssignedChangeFromXToY'), $oldUserName, $userCompleteName);
 
                 self::insert_message(
                     $ticket_id,
@@ -593,14 +596,14 @@ class TicketManager
                 if ($insert_id !== $user_id) {
                     $info = api_get_user_info($user_id);
                     $sender = api_get_user_info($insert_id);
-                    $href = api_get_path(WEB_PLUGIN_PATH).PLUGIN_NAME.'/src/ticket_details.php?ticket_id='.$ticket_id;
+                    $href = api_get_path(WEB_CODE_PATH).'/ticket/ticket_details.php?ticket_id='.$ticket_id;
                     $message = sprintf(
-                        $plugin->get_lang('TicketAssignedMsg'),
+                        get_lang('TicketAssignedMsg'),
                         $info['complete_name'],
                         $href,
                         $ticket_id
                     );
-                    $mailTitle = sprintf($plugin->get_lang('TicketAssignX'), $ticket_id);
+                    $mailTitle = sprintf(get_lang('TicketAssignX'), $ticket_id);
                     api_mail_html(
                         $info['complete_name'],
                         $info['mail'],
@@ -645,7 +648,7 @@ class TicketManager
         $table_support_message_attachments = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
         if ($sendConfirmation) {
             $form = '<form action="ticket_details.php?ticket_id=' . $ticket_id . '" id="confirmticket" method="POST" >
-                         <p>' . $plugin->get_lang('TicketWasThisAnswerSatisfying') . '</p>
+                         <p>' . get_lang('TicketWasThisAnswerSatisfying') . '</p>
                          <button class="btn btn-primary responseyes" name="response" id="responseyes" value="1">' . get_lang('Yes') . '</button>
                          <button class="btn btn-danger responseno" name="response" id="responseno" value="0">' . get_lang('No') . '</button>
                      </form>';
@@ -667,7 +670,6 @@ class TicketManager
 
         $params = [
             'ticket_id' => $ticket_id,
-            'message_id' => $message_id,
             'subject' => $subject,
             'message' => $content,
             'ip_address' => $_SERVER['REMOTE_ADDR'],
@@ -689,7 +691,7 @@ class TicketManager
                         FROM $table_support_messages
                         WHERE ticket_id ='$ticket_id'
                     )
-                WHERE ticket_id = $ticket_id ";
+                WHERE id = $ticket_id ";
         Database::query($sql);
 
         $sql = "SELECT COUNT(*) as total_attach
@@ -807,7 +809,6 @@ class TicketManager
         $direction,
         $user_id = 0
     ) {
-        global $plugin;
         $table_support_category = Database::get_main_table(TABLE_TICKET_CATEGORY);
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
         $table_support_priority = Database::get_main_table(TABLE_TICKET_PRIORITY);
@@ -821,12 +822,13 @@ class TicketManager
 
         $sql = "SELECT DISTINCT 
                 ticket.*,
-                ticket.ticket_id AS col0,
+                ticket.id ticket_id,
+                ticket.id AS col0,
                 ticket.start_date AS col1,
                 ticket.sys_lastedit_datetime AS col2,
                 cat.name AS col3,
-                priority.priority AS col5,
-                priority.priority  AS col6,
+                priority.name AS col5,
+                priority.name AS col6,
                 status.name AS col7,
                 ticket.total_messages AS col8,
                 ticket.message AS col9,
@@ -837,9 +839,9 @@ class TicketManager
                 $table_support_priority priority,
                 $table_support_status status
             WHERE
-                cat.category_id = ticket.category_id AND
-                ticket.priority_id = priority.priority_id AND
-                ticket.status_id = status.status_id                
+                cat.id = ticket.category_id AND
+                ticket.priority_id = priority.id AND
+                ticket.status_id = status.id                
         ";
         if (!$isAdmin) {
             $sql .= " AND (ticket.assigned_last_user = $user_id)";
@@ -857,7 +859,7 @@ class TicketManager
             if ($_GET['keyword'] != '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
                 $sql .= " AND (
-                            ticket.ticket_code = '$keyword' OR 
+                            ticket.code = '$keyword' OR 
                             ticket.ticket_id = '$keyword'                            
                         )";
             }
@@ -1002,7 +1004,7 @@ class TicketManager
                 }
             } else {
                 if ($row['status_id'] !== self::STATUS_FORWARDED) {
-                    $row['assigned_last_user'] = '<span style="color:#ff0000;">' . $plugin->get_lang('ToBeAssigned') . '</span>';
+                    $row['assigned_last_user'] = '<span style="color:#ff0000;">' . get_lang('ToBeAssigned') . '</span>';
                 } else {
                     $row['assigned_last_user'] = '<span style="color:#00ff00;">' . get_lang('MessageResent') . '</span>';
                 }
@@ -1030,7 +1032,7 @@ class TicketManager
                 }
                 $row['col0'] = Display::return_icon(
                                 $img_source, get_lang('Info')
-                        ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['ticket_code'] . '</a>';
+                        ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['code'] . '</a>';
                 // @todo fix
                 /*if ($row['col7'] == 'PENDIENTE') {
                     $row['col7'] = '<span style="color: #f00; font-weight:bold;">' . $row['col7'] . '</span>';
@@ -1051,7 +1053,7 @@ class TicketManager
                 $row['col0'] = Display::return_icon(
                         $img_source,
                         get_lang('Info')
-                    ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['ticket_code'] . '</a>';
+                    ) . '<a href="ticket_details.php?ticket_id=' . $row['col0'] . '">' . $row['code'] . '</a>';
                 $now = api_strtotime(api_get_utc_datetime());
                 $last_edit_date = api_strtotime($row['sys_lastedit_datetime']);
                 $dif = $now - $last_edit_date;
@@ -1108,21 +1110,21 @@ class TicketManager
         $table_main_user = Database::get_main_table(TABLE_MAIN_USER);
         $table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
 
-        $sql = "SELECT COUNT(ticket.ticket_id) AS total
+        $sql = "SELECT COUNT(ticket.id) AS total
                 FROM $table_support_tickets ticket ,
                 $table_support_category cat ,
                 $table_support_priority priority,
                 $table_support_status status                
 	        WHERE 
-	            cat.category_id = ticket.category_id AND 
-	            ticket.priority_id = priority.priority_id AND 
-	            ticket.status_id = status.status_id";
+	            cat.id = ticket.category_id AND 
+	            ticket.priority_id = priority.id AND 
+	            ticket.status_id = status.id";
 
         // Search simple
         if (isset($_GET['submit_simple'])) {
             if ($_GET['keyword'] != '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
-                $sql .= " AND (ticket.ticket_code = '$keyword'
+                $sql .= " AND (ticket.code = '$keyword'
                           OR user.firstname LIKE '%$keyword%'
                           OR user.lastname LIKE '%$keyword%'
                           OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'
@@ -1214,31 +1216,31 @@ class TicketManager
         }
 
         if ($keyword_unread == 'yes') {
-            $sql .= " AND ticket.ticket_id IN ( ";
-            $sql .= "SELECT ticket.ticket_id
+            $sql .= " AND ticket.id IN ( ";
+            $sql .= "SELECT ticket.id
                      FROM  $table_support_tickets ticket,
                      $table_support_messages message,
                      $table_main_user user
-                     WHERE ticket.ticket_id = message.ticket_id
+                     WHERE 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 != '".self::STATUS_FORWARDED."'
-                     GROUP BY ticket.ticket_id)";
+                     GROUP BY ticket.id)";
         } else {
             if ($keyword_unread == 'no') {
-                $sql .= " AND ticket.ticket_id NOT IN ( ";
-                $sql .= " SELECT ticket.ticket_id
+                $sql .= " AND ticket.id NOT IN ( ";
+                $sql .= " SELECT ticket.id 
                           FROM  $table_support_tickets ticket,
                           $table_support_messages message,
                           $table_main_user user
-                          WHERE ticket.ticket_id = message.ticket_id
+                          WHERE 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 != '".self::STATUS_FORWARDED."'
-                          GROUP BY ticket.ticket_id)";
+                          GROUP BY ticket.id)";
             }
         }
         $res = Database::query($sql);
@@ -1277,16 +1279,16 @@ class TicketManager
                     ticket.*, 
                     cat.name,
                     status.name as status, 
-                    priority.priority
+                    priority.name 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 ";
+                    ticket.id = $ticket_id
+                    AND cat.id = ticket.category_id
+                    AND priority.id = ticket.priority_id
+                    AND status.id = ticket.status_id ";
         $result = Database::query($sql);
         $ticket = array();
         if (Database::num_rows($result) > 0) {
@@ -1311,9 +1313,10 @@ class TicketManager
                         $row['course_url'] = '<a href="'.$course['course_public_url'].'">'.$course['name'].'</a>';
                     }
                 }
-                $userInfo = api_get_user_info($row['request_user']);
-                $row['user_url'] = '<a href="' . api_get_path(WEB_PATH) . 'main/admin/user_information.php?user_id=' . $row['request_user'] . '">
-                ' . api_get_person_name($userInfo['firstname'], $userInfo['lastname']) . '</a>';
+
+                $userInfo = api_get_user_info($row['sys_insert_user_id']);
+                $row['user_url'] = '<a href="' . api_get_path(WEB_PATH) . 'main/admin/user_information.php?user_id=' . $userInfo['user_id'] . '">
+                ' . $userInfo['complete_name']. '</a>';
                 $ticket['usuario'] = $userInfo;
                 $ticket['ticket'] = $row;
             }
@@ -1345,8 +1348,8 @@ class TicketManager
                 $sql = "SELECT *
                         FROM $table_support_message_attachments
                         WHERE
-                            message_id = " . $row['message_id'] . " AND
-                            ticket_id= '$ticket_id'  ";
+                            message_id = " . $row['id'] . " AND
+                            ticket_id = '$ticket_id'  ";
                 $result_attach = Database::query($sql);
                 while ($row2 = Database::fetch_assoc($result_attach)) {
                     $archiveURL = $archiveURL = $webPath . "plugin/" . PLUGIN_NAME . '/src/download.php?ticket_id=' . $ticket_id . '&file=';
@@ -1407,18 +1410,17 @@ class TicketManager
      */
     public static function sendNotification($ticketId, $userId, $title, $message)
     {
-        global $plugin;
         $userInfo = api_get_user_info($userId);
         $ticketInfo = self::get_ticket_detail_by_id($ticketId, $userId);
         $requestUserInfo = $ticketInfo['usuario'];
-        $ticketCode = $ticketInfo['ticket']['ticket_code'];
+        $ticketCode = $ticketInfo['ticket']['code'];
         $status = $ticketInfo['ticket']['status'];
         $priority = $ticketInfo['ticket']['priority'];
 
         $titleEmail = "[$ticketCode] $title";
-        $messageEmail = $plugin->get_lang('TicketNum').": $ticketCode <br />";
-        $messageEmail .= $plugin->get_lang('Status').": $status <br />";
-        $messageEmail .= $plugin->get_lang('Priority').": $priority <br />";
+        $messageEmail = get_lang('TicketNum').": $ticketCode <br />";
+        $messageEmail .= get_lang('Status').": $status <br />";
+        $messageEmail .= get_lang('Priority').": $priority <br />";
         $messageEmail .= '<hr /><br />';
         $messageEmail .= $message;
 
@@ -1453,12 +1455,11 @@ class TicketManager
      *
      * @return bool
      */
-    public function updateTicket(
+    public static function updateTicket(
         $params,
         $ticketId,
         $userId
     ) {
-        global $plugin;
         $now = api_get_utc_datetime();
 
         $table = Database::get_main_table(TABLE_TICKET_TICKET);
@@ -1468,14 +1469,15 @@ class TicketManager
             'sys_lastedit_user_id' => $userId,
             'sys_lastedit_datetime' => $now
         ];
-        Database::update($table, $newParams, ['ticket_id = ? ' => $ticketId]);
+        Database::update($table, $newParams, ['id = ? ' => $ticketId]);
 
          self::sendNotification(
             $ticketId,
             $userId,
-            $plugin->get_lang('TicketUpdated'),
-            $plugin->get_lang('TicketUpdated')
+            get_lang('TicketUpdated'),
+            get_lang('TicketUpdated')
         );
+
         return true;
     }
 
@@ -1490,7 +1492,6 @@ class TicketManager
         $ticket_id,
         $user_id
     ) {
-        global $plugin;
         $table_support_tickets = Database::get_main_table(TABLE_TICKET_TICKET);
 
         $ticket_id = intval($ticket_id);
@@ -1509,8 +1510,8 @@ class TicketManager
             self::sendNotification(
                 $ticket_id,
                 $user_id,
-                $plugin->get_lang('TicketUpdated'),
-                $plugin->get_lang('TicketUpdated')
+                get_lang('TicketUpdated'),
+                get_lang('TicketUpdated')
             );
             return true;
         } else {
@@ -1531,11 +1532,11 @@ class TicketManager
         $table_main_admin = Database::get_main_table(TABLE_MAIN_ADMIN);
         $user_info = api_get_user_info();
         $user_id = $user_info['user_id'];
-        $sql = "SELECT COUNT( DISTINCT ticket.ticket_id) AS unread
+        $sql = "SELECT COUNT( DISTINCT ticket.id) AS unread
                 FROM $table_support_tickets ticket,
                 $table_support_messages message ,
                 $table_main_user user
-                WHERE ticket.ticket_id = message.ticket_id
+                WHERE ticket.id = message.ticket_id
                 AND message.status = 'NOL'
                 AND user.user_id = message.sys_insert_user_id ";
         if (!api_is_platform_admin()) {
@@ -1578,7 +1579,6 @@ class TicketManager
      */
     public static function close_ticket($ticket_id, $user_id)
     {
-        global $plugin;
         $ticket_id = intval($ticket_id);
         $user_id = intval($user_id);
 
@@ -1589,14 +1589,14 @@ class TicketManager
                     sys_lastedit_user_id ='$user_id',
                     sys_lastedit_datetime ='" . $now . "',
                     end_date ='$now'
-                WHERE ticket_id ='$ticket_id'";
+                WHERE id ='$ticket_id'";
         Database::query($sql);
 
         self::sendNotification(
             $ticket_id,
             $user_id,
-            $plugin->get_lang('TicketClosed'),
-            $plugin->get_lang('TicketClosed')
+            get_lang('TicketClosed'),
+            get_lang('TicketClosed')
         );
     }
 
@@ -1692,7 +1692,7 @@ class TicketManager
             $user_id = api_get_user_id();
         }
 
-        $sql = "SELECT ticket.ticket_code, ticket.sys_insert_datetime ,
+        $sql = "SELECT 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 ,
@@ -1703,15 +1703,15 @@ class TicketManager
                 $table_support_status status ,
                 $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
+                    cat.id = ticket.category_id
+                    AND ticket.priority_id = priority.id
+                    AND ticket.status_id = status.id
                     AND user.user_id = ticket.request_user ";
-        //Search simple
+        // Search simple
         if (isset($_GET['submit_simple'])) {
-            if ($_GET['keyword'] != '') {
+            if ($_GET['keyword'] !== '') {
                 $keyword = Database::escape_string(trim($_GET['keyword']));
-                $sql .= " AND (ticket.ticket_code = '$keyword'
+                $sql .= " AND (ticket.code = '$keyword'
                           OR user.firstname LIKE '%$keyword%'
                           OR user.lastname LIKE '%$keyword%'
                           OR concat(user.firstname,' ',user.lastname) LIKE '%$keyword%'

+ 1 - 1
main/inc/lib/add_course.lib.inc.php

@@ -693,7 +693,7 @@ class AddCourse
                 'category' =>'certificates'
             ],
             'documents_default_visibility' => ['default' =>'visible', 'category' =>'document'],
-            'show_course_in_user_language' => ['default' => 2],
+            'show_course_in_user_language' => ['default' => 2, 'category' => null],
         ];
 
         $counter = 1;

+ 10 - 0
main/inc/lib/database.constants.inc.php

@@ -332,3 +332,13 @@ define('TABLE_GRADE_MODEL_COMPONENTS', 'grade_components');
 define('TABLE_HOOK_OBSERVER', 'hook_observer');
 define('TABLE_HOOK_CALL', 'hook_call');
 define('TABLE_HOOK_EVENT', 'hook_event');
+
+define('TABLE_TICKET_ASSIGNED_LOG', 'ticket_assigned_log');
+define('TABLE_TICKET_CATEGORY', 'ticket_category');
+define('TABLE_TICKET_MESSAGE', 'ticket_message');
+define('TABLE_TICKET_PRIORITY', 'ticket_priority');
+define('TABLE_TICKET_PROJECT', 'ticket_project');
+define('TABLE_TICKET_STATUS', 'ticket_status');
+define('TABLE_TICKET_TICKET', 'ticket_ticket');
+define('TABLE_TICKET_CATEGORY_REL_USER', 'ticket_category_rel_user');
+define('TABLE_TICKET_MESSAGE_ATTACHMENTS', 'ticket_message_attachments');

+ 7 - 5
main/inc/lib/database.lib.php

@@ -127,8 +127,8 @@ class Database
      * @param string $entityRootPath
      *
      * @throws \Doctrine\ORM\ORMException
-     * 
-     * @return 
+     *
+     * @return
      */
     public function connect($params = array(), $sysPath = '', $entityRootPath = '', $returnConnection = false)
     {
@@ -140,7 +140,8 @@ class Database
                 'ChamiloUserBundle' => 'Chamilo\UserBundle\Entity',
                 'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity',
                 'ChamiloCourseBundle' => 'Chamilo\CourseBundle\Entity',
-                'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity'
+                'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity',
+                'ChamiloTicketBundle' => 'Chamilo\TicketBundle\Entity'
             )
         );
 
@@ -178,7 +179,7 @@ class Database
         $listener = new \Gedmo\Sortable\SortableListener();
         $entityManager->getEventManager()->addEventSubscriber($listener);
         $connection = $entityManager->getConnection();
-        
+        $connection->executeQuery('SET sql_mode = "";');
         if ($returnConnection) {
             return $connection;
         }
@@ -660,6 +661,7 @@ class Database
             $path.'src/Chamilo/CoreBundle/Entity',
             $path.'src/Chamilo/UserBundle/Entity',
             $path.'src/Chamilo/CourseBundle/Entity',
+            $path.'src/Chamilo/TicketBundle/Entity',
             //$path.'vendor/sonata-project/user-bundle/Entity',
             //$path.'vendor/sonata-project/user-bundle/Model',
             //$path.'vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Entity',
@@ -692,7 +694,7 @@ class Database
      * @param string $table
      * @return \Doctrine\DBAL\Schema\Column[]
      */
-    public static function listTableColumns($table) 
+    public static function listTableColumns($table)
     {
         return self::getManager()->getConnection()->getSchemaManager()->listTableColumns($table);
     }

+ 2 - 0
main/inc/lib/export.lib.inc.php

@@ -37,6 +37,8 @@ class Export
      * Export tabular data to CSV-file
      * @param array $data
      * @param string $filename
+     *
+     * @return mixed csv file | false if no data to export
      */
     public static function arrayToCsv($data, $filename = 'export')
     {

+ 1 - 0
main/inc/lib/import.lib.php

@@ -16,6 +16,7 @@ class Import
 {
     /**
      * @param string $path
+     * @param bool $setFirstRowAsHeader
      * @return CsvReader
      */
     public static function csv_reader($path, $setFirstRowAsHeader = true)

+ 2 - 1
main/inc/lib/plugin.lib.php

@@ -19,6 +19,7 @@ class AppPlugin
         'header_center',
         'header_left',
         'header_right',
+        'pre_footer',
         'footer_left',
         'footer_center',
         'footer_right',
@@ -427,7 +428,7 @@ class AppPlugin
                     "subkey = ? AND category = ? AND type = ? " => array($plugin_name, 'Plugins','setting')
                 )
             );
-            
+
             $settings_filtered = array();
             foreach ($plugin_settings as $item) {
                 $settings_filtered[$item['variable']] = $item['selected_value'];

+ 37 - 0
main/lang/brazilian/trad4all.inc.php

@@ -7558,5 +7558,42 @@ $NewLogoUpdated = "Novo logotipo carregado";
 $CurrentLogo = "Logo atual";
 $UpdateLogo = "Logotipo atualização";
 $FollowedStudentBosses = "chefes de estudantes seguiram";
+$DatabaseManager = "Gerenciador de banco";
+$CourseTemplate = "Template de Curso";
+$PickACourseAsATemplateForThisNewCourse = "Escolha um curso como modelo para este novo curso";
+$TeacherCanSelectCourseTemplateTitle = "Professor pode selecionar um curso como modelo";
+$TeacherCanSelectCourseTemplateComment = "Permitir escolher um curso como modelo para o novo curso que o professor está criando";
+$TheForumAutoLaunchSettingIsOnStudentsWillBeRedirectToTheForumTool = "Início automático do fórum está ligado. Os alunos serão redirecionados para a ferramenta fórum ao entrar neste curso.";
+$RedirectToForumList = "Redirecionar para lista de fóruns";
+$EnableForumAutoLaunch = "Ativar auto-lançamento do  fórum";
+$NowDownloadYourCertificateClickHere = "Agora você pode baixar o seu certificado clicando aqui";
+$AdditionallyYouHaveObtainedTheFollowingSkills = "Além disso, você tem alcançado as seguintes habilidades";
+$IHaveObtainedSkillXOnY = "Tenho conseguido habilidade %s em %s";
+$AnotherAttempt = "Outra tentativa";
+$RemainingXAttempts = "Restante %d tentativas";
+$Map = "Mapa";
+$MyLocation = "Minha localização";
+$ShowCourseInUserLanguage = "Mostrar curso de idioma do usuário";
 $AccessData = "Dados de acesso";
+$InvalidImageDimensions = "Dimensões da imagem não corresponder às exigências. Por favor, verifique as sugestões ao lado do campo de imagem.";
+$CouldNotResetPasswordBecauseLDAP = "Não foi possível redefinir a senha, contacte o helpdesk.";
+$Quote = "Citar";
+$ValueTooSmall = "O valor é muito pequeno.";
+$ValueTooBig = "O valor é muito grande.";
+$YouAreATeacherOfThisCourse = "Você é um professor deste curso";
+$StudentBossList = "Lista de chefes de estudante";
+$ShowScoreEveryAttemptShowAnswersLastAttempt = "Mostrar as respostas corretas somente na última tentativa estabelecida (só funciona com um limite de tentativas pré-configurada)";
+$MissingChartLibraryPleaseCheckLog = "Faltando biblioteca gráfico. Verifique o log de erro para mais detalhes.";
+$UserXIndicated = "Usuário %s indicados:";
+$AcquiredLevel = "Nível adquirida";
+$ManageSkillsLevels = "Gerir níveis de competências";
+$AddProfile = "Adicionar perfil";
+$AddLevel = "Adicionar nível";
+$ChangeAcquiredLevel = "Mudança adquirida de nível";
+$NoLevelAcquiredYet = "Nenhum nível ainda adquirido";
+$RecordAudio = "Gravar audio";
+$StartRecordingAudio = "Comece a gravar";
+$StopRecordingAudio = "Parar a gravação";
+$SaveRecordedAudio = "Salvar o áudio gravado";
+$GradeFromX = "Grades de curso: %s";
 ?>

+ 159 - 72
main/lang/dutch/trad4all.inc.php

@@ -9,24 +9,43 @@ $CriteriaToEarnTheBadge = "Criteria om de badge te verdienen";
 $DesignNewBadge = "Ontwerp een nieuwe badge";
 $TotalX = "Totaal: %s";
 $CreateBadge = "Badge aanmaken";
+$SocialWallWhatAreYouThinkingAbout = "Waar denk je aan?";
+$BuyCourses = "Inschrijven";
+$MySessions = "Mijn sessies";
+$AssignedCourses = "Toegekende cursussen";
 $SignatureFormula = "Groetjes";
+$SessionName = "Naam sessie";
+$ExerciseProgressInfo = "Vordering van de student in de oefeningen";
+$SessionDurationXDaysLeft = "Deze sessie is tijdsgebonden. De cursus is afgelopen in %s dagen.";
+$DRH = "Human Resources Manager";
+$Calendar = "Kalender";
+$YouShouldAddItemsBeforeAttachAudio = "Voeg eerst items toe aan je leerpad, zodat je de geluidsbestanden aan deze items kunt koppelen.";
+$InactiveDays = "Dagen inactiviteit";
+$FollowedHumanResources = "Gevolgde HR medewerkers";
+$FollowedStudents = "Gevolgde cursisten";
+$FollowedTeachers = "Gevolgde leerkrachten";
 $HereIsYourFeedback = "In onderstaande bijlage kan je feedback vinden.";
 $LoginToGoToThisCourse = "Gelieve in te loggen om het document te bekijken";
+$ActiveUsers = "Actieve deelnemers";
+$SearchStudent = "Zoek cursist";
+$Username = "Gebruikersnaam ('log-in')";
 $YouAreReg = "Je bent aangemeld op";
+$SelectAnOption = "Kies een optie";
 $CourseVisibilityHidden = "Verborgen - Volledig verborgen voor alle gebruikers behalve de platformbeheerders";
 $HandedOutDate = "Ingediend datum";
 $HandedOut = "Aantal ingediend";
 $HandOutDateLimit = "Deadline";
+$CheckEasyPasswords = "Controleer op te eenvoudige wachtwoorden";
 $ShowAllEvents = "Alles tonen";
 $Month = "Maand";
-$Hour = "Uur";
+$Hour = "uur";
 $Minutes = "Minuten";
 $AddSuccess = "Het agenda-item is toegevoegd.";
 $AgendaDeleteSuccess = "Het agenda-item is verwijderd.";
 $NoAgendaItems = "Er zijn geen agenda-items.";
 $ClassName = "Klasnaam";
 $ItemTitle = "Itemtitel";
-$Day = "dag";
+$Day = "Dag";
 $month_default = "standaardmaand";
 $year_default = "standaardjaar";
 $Hour = "uur";
@@ -37,7 +56,7 @@ $OldToNew = "oud naar nieuw";
 $NewToOld = "nieuw naar oud";
 $Now = "nu";
 $AddEvent = "Agenda-item toevoegen";
-$Detail = "detail";
+$Detail = "Detail";
 $MonthView = "Maandoverzicht";
 $WeekView = "Weekoverzicht";
 $DayView = "Dagoverzicht";
@@ -141,8 +160,8 @@ $MessageDeleted = "Het bericht werd verwijderd";
 $ConfirmDeleteMessage = "Ben je zeker dat je het geselecteerde bericht wil verwijderen?";
 $DeleteMessage = "Verwijder bericht";
 $ReadMessage = "Lees bericht";
-$SendInviteMessage = "Verstuur uitnodiging";
-$SendMessageInvitation = "Ben je zeker dat je deze uitnodigingen wil versturen ?";
+$SendInviteMessage = "Verstuur vriendschapsverzoek";
+$SendMessageInvitation = "Ben je zeker dat je deze vriendschapsverzoeken wil versturen ?";
 $MessageTool = "Berichtenmodule";
 $WriteAMessage = "Schrijf een bericht";
 $AlreadyReadMessage = "Bericht reeds gelezen";
@@ -213,7 +232,7 @@ $BackH = "Terug naar startpagina";
 $OtherCategory = "Andere categorie";
 $AllowedToUnsubscribe = "Toegelaten";
 $NotAllowedToUnsubscribe = "Niet toegelaten";
-$CourseVisibilityClosed = "Volledig gesloten, de cursus is enkel toegankelijk voor de cursusbeheerder";
+$CourseVisibilityClosed = "Gesloten – geen toegang tot deze cursus";
 $CourseVisibilityClosed = "Gesloten – geen toegang tot deze cursus";
 $CourseVisibilityModified = "Gewijzigd (de instellingen werden gewijzigd via het rollen-rechten systeem)";
 $WorkEmailAlert = "Waarschuw via email bij een nieuwe publicatie";
@@ -824,6 +843,7 @@ $DownloadFile = "Upload volgend bestand naar de server";
 $Builder = "Leerpad aanmaken";
 $AllowTeachersToCreateSessionsComment = "Leerkrachten kunnen hun eigen sessies aanmaken, bewerken en verwijderen.";
 $AllowTeachersToCreateSessionsTitle = "Sta leerkrachten toe om sessies te maken";
+$SelectACategory = "Kies een categorie";
 $MailSubjectReplyShort = "RE:";
 $ScormBuilder = "Leerpadfunctie – SCORM-cursusfunctie";
 $CreateDoc = "Nieuw document";
@@ -1090,6 +1110,7 @@ $LinkURL = "URL van de hyperlink";
 $OpenInNewWindow = "Open in nieuw venster";
 $LimitUsersListDefaultMaxComment = "In schermen waar gebruikers kunnen toegevoegd worden aan cursussen of klassen, wordt standaard gefilterd op de eerste letter (A) indien de eerste niet-gefilterde lijst een groter aantal gebruikers bevat dan dit getal";
 $HideDLTTMarkupComment = "Verberg de [=...=] opmaak wanneer de taalvariabele niet vertaald is";
+$SignUp = "Schrijf je in!";
 $UserDeleted = "De gebruiker is verwijderd.";
 $NoClassesForThisCourse = "Er zijn geen klassen ingeschreven in deze cursus";
 $CourseUsage = "Cursusgebruik";
@@ -1394,7 +1415,7 @@ $ExtendedProfileRegistrationRequiredComment = "Welke van de onderstaande velden
 $NoReplyEmailAddress = "No-reply e-mail-adres";
 $NoReplyEmailAddressComment = "Dit is het e-mail-adres dat gebruikt wordt wanneer een e-mail moet verstuurd worden waarin uitdrukkelijk wordt verzocht die niet te beantwoorden. Meestal wordt dit e-mail-adres zodanig geconfigureerd op uw server dat inkomende mails worden genegeerd/verwijderd.";
 $SurveyEmailSenderNoReply = "Afzender e-mail voor survey (no-reply)";
-$SurveyEmailSenderNoReplyComment = "Moeten de e-mail-uitnodigingen die verstuurd worden voor surveys gebruik maken van het e-mail-adres van coach/docent, of van het speciale no-reply adres (opgegeven in de algemene configuratie)?";
+$SurveyEmailSenderNoReplyComment = "Moeten de email-uitnodigingen die verstuurd worden voor surveys gebruik maken van het mailadres van coach/docent, of van het speciale no-reply adres (opgegeven in de algemene configuratie)?";
 $CourseCoachEmailSender = "E-mail-adres van begeleider/docent";
 $NoReplyEmailSender = "\"No-reply\" e-mail-adres";
 $OpenIdAuthenticationComment = "Activeer de OpenID URL-gebaseerde authenticatie (er verschijnt een extra login-formulier op de homepage)";
@@ -1840,8 +1861,8 @@ $ContactsGroupsComment = "Dit scherm is een lijst van contacten gesorteerd per g
 $YouDontHaveContactsInThisGroup = "Geen contacten gevonden";
 $SelectTheCheckbox = "Selecteer het keuzevak";
 $YouDontHaveInvites = "Leeg";
-$SocialInvitesComment = "Wachtende invitaties";
-$InvitationSentBy = "Invitatie verzonden door";
+$SocialInvitesComment = "Hangende vriendschapsverzoeken";
+$InvitationSentBy = "Vriendschapsverzoek verzonden door";
 $RequestContact = "Verzoek tot contact";
 $SocialUnknow = "Onbekend";
 $SocialParent = "Mijn ouders";
@@ -1852,7 +1873,7 @@ $SocialDeleted = "Contact verwijderd";
 $MessageOutboxComment = "Verstuurde berichten";
 $MyPersonalData = "Mijn persoonlijke gegevens";
 $AlterPersonalData = "Persoonlijke gegevens wijzigen";
-$Invites = "Uitnodigingen";
+$Invites = "Vriendschapsverzoeken";
 $ContactsGroups = "Contactgroepen";
 $MyInbox = "Mijn inbox";
 $ViewSharedProfile = "Gedeeld profiel bekijken";
@@ -1861,7 +1882,7 @@ $ExtraInformation = "Extra informatie";
 $SearchContacts = "Contacten zoeken";
 $SocialSeeContacts = "Contacten bekijken";
 $SocialUserInformationAttach = "Gelieve eerst een bericht in te vullen vooraleer het te verzenden";
-$MessageInvitationNotSent = "Uw uitnodigingsbericht is niet verstuurd";
+$MessageInvitationNotSent = "Uw vriendschapsverzoek is niet verstuurd";
 $SocialAddToFriends = "Toevoegen aan mijn contacten";
 $ChangeContactGroup = "Wijzig contact groep";
 $Friend = "Vriend";
@@ -1872,7 +1893,7 @@ $ViewUser = "Bekijk deze gebruiker";
 $RSSFeeds = "RSS feed";
 $NoFriendsInYourContactList = "Geen vrienden in uw contactenlijst";
 $TryAndFindSomeFriends = "Probeer vrienden te vinden";
-$SendInvitation = "Invitatie versturen";
+$SendInvitation = "Vriendschapsverzoek";
 $SocialInvitationToFriends = "Uitnodigen tot mijn vriendengroep";
 $MyCertificates = "Mijn certificaten";
 $NewGroupCreate = "Nieuwe groep(en) aanmaken";
@@ -1919,7 +1940,7 @@ $CreateGroup = "Groep(en) aanmaken";
 $ProceedToCreateGroup = "Ga verder naar het aanmaken van groep(en)";
 $StudentRegAllowed = "Studenten mogen zichzelf inschrijven in groepen.";
 $GroupAllowStudentUnregistration = "De gebruikers mogen zichzelf uitschrijven uit groepen.";
-$AllGroups = "alle groepen";
+$AllGroups = "Alle groepen";
 $StudentUnsubscribe = "Uitschrijven uit de groep";
 $StudentDeletesHimself = "U bent uitgeschreven uit de groep. Terug naar";
 $DefaultSettingsForNewGroups = "Standaardinstellingen voor nieuwe groepen";
@@ -2114,11 +2135,7 @@ $OogieUnknownError = "De conversie is mislukt voor een onbekende reden.<br />Gel
 $OogieBadExtension = "Gelieve enkel presentatie up te loaden. Bestandsnamen dienen te eindigen met .ppt of .odp";
 $WoogieBadExtension = "Gelieve enkel text bestanden up te loaden. De bestandsnaam dient te eindigen met .doc, .docx of .odt";
 $ShowAudioRecorder = "Geef de geluidsopnemer weer.";
-$SearchFeatureSearchExplanation = "Om de cursussen-database te doorzoeken, gelieve volgende syntax te gebruiken:
-   term tag:tag_name -exclude +include \"exact phrase\"
-Bijvoorbeeld:
-   car tag:truck -ferrari +ford \"high consumption\".
-Dit zal alle resultaten tonen voor het woord 'car' met de tag 'truck', behalve met het woord 'ferrari' maar met het woord ford en de exacte zin 'high consumption'.";
+$SearchFeatureSearchExplanation = "Om de cursussen-database te doorzoeken, gelieve volgende syntax te gebruiken:\n   term tag:tag_name -exclude +include \"exact phrase\"\nBijvoorbeeld:\n   car tag:truck -ferrari +ford \"high consumption\".\nDit zal alle resultaten tonen voor het woord 'car' met de tag 'truck', behalve met het woord 'ferrari' maar met het woord ford en de exacte zin 'high consumption'.";
 $ViewLearningPath = "Toon cursus";
 $SearchFeatureDocumentTagsIfIndexing = "Tags die moeten toegevoegd worden aan het document, indien geïndexeerd";
 $ReturnToLearningPaths = "Terug naar leerpaden";
@@ -2157,6 +2174,7 @@ $AddAssignmentToCourse = "Voeg een taak toe aan de cursus";
 $AddForumToCourse = "Voeg een forum toe aan de cursus";
 $SaveAudioAndOrganization = "Geluid en organisatie bewaren";
 $UploadOnlyMp3Files = "Gelieve enkel MP3 bestanden te uploaden";
+$NoPosts = "Geen berichten";
 $TypeMessage = "Gelieve een tekst te tikken!";
 $ConfirmReset = "Bent u zeker dat u alle berichten wilt verwijderen?";
 $ClearList = "Wissen";
@@ -2321,10 +2339,10 @@ $HotspotValidateError2 = "Vereiste aantal muiskliks op de afbeelding voor het re
 $HotspotRequired = "Beschrijving en gewist zijn verplicht voor elke hotspot - commentaar is optioneel";
 $HotspotChoose = "<div style=\"padding:2px 3px;\">• Om een hotspot aan te maken: selecteer een vorm naast de kleuren en teken de hotspot op de afbeelding.</div><div style=\"padding:2px 3px;\">• Om een hotspot te verplaatsen, selecteer de kleur, klik op een andere plaats in de afbeelding en teken de hotspot.</div><div style=\"padding:2px 3px;\">• Om een hotspot bij te voegen: klik op de [+hotspot] knop.</div><div style=\"padding:2px 3px;\">• Om een polygoon vorm te sluiten: rechtsklikken en selecteer \"Sluit polygoon\".</div>";
 $Fault = "Fout";
-$HotSpot = "Hot spot";
+$HotSpot = "Hotspot";
 $ClickNumber = "Aantal klikken.";
 $HotspotGiveAnswers = "Gelieve een antwoord op te geven";
-$Addlimits = "Grenzen toevoegen";
+$Addlimits = "Begrenzing toevoegen";
 $AreYouSure = "Weet u zeker";
 $StudentScore = "Score student";
 $backtoTesthome = "Terug naar startpagina test";
@@ -2448,7 +2466,7 @@ $BackToResultList = "Terg naar resultatenlijst";
 $EditingScoreCauseProblemsToExercisesInLP = "Als u een de score van een vraag wijzigt, vergeet niet dat dit een oefening is die in een cursus werd toegevoegd.";
 $SelectExercise = "Oefening selecteren";
 $YouHaveToSelectATest = "U moet een test selecteren";
-$HotspotDelineation = "Hotspot contour";
+$HotspotDelineation = "Hotspot schets";
 $CreateQuestions = "Vragen maken";
 $MoreOAR = "Meer gebieden op eigen risico";
 $LessOAR = "Minder gebieden op risico";
@@ -2487,7 +2505,7 @@ $NewDir = "Naam van de nieuwe map";
 $DirCr = "Map is aangemaakt.";
 $Download = "Downloaden";
 $Group = "Groepen";
-$Edit = "wijzig";
+$Edit = "Wijzig";
 $GroupForum = "groepsforum";
 $Language = "Taal";
 $LoginName = "Gebruikersnaam";
@@ -2519,7 +2537,7 @@ $OfficialCode = "Officiële code";
 $FirstName = "Voornaam";
 $LastName = "Familienaam";
 $Status = "Statuut";
-$Email = "Email";
+$Email = "E-mail";
 $SlideshowConversion = "Conversie van de presentatie";
 $UploadFile = "Bestand uploaden";
 $AvailableFrom = "Beschikbaar vanaf";
@@ -2592,7 +2610,7 @@ $Total = "Totaal";
 $Take = "neem";
 $One = "Eén";
 $Several = "Verschillende";
-$Notice = "Merk op";
+$Notice = "Mededelingen";
 $Date = "Datum";
 $Among = "uit";
 $Show = "Weergeven";
@@ -2637,7 +2655,7 @@ $Statistics = "Statistieken";
 $GroupList = "Groepenlijst";
 $Previous = "Vorige";
 $DestDirectoryDoesntExist = "De bestemmingsmap bestaat niet";
-$Courses = "cursussen";
+$Courses = "Cursussen";
 $In = "in";
 $ShowAll = "Toon alle";
 $Page = "Pagina";
@@ -3128,8 +3146,8 @@ $AccountURLInactive = "Account inactief voor deze URL";
 $MaxFileSize = "Maximum bestandsgrootte";
 $SendFileError = "Er heeft zich een fout voorgedaan tijdens het ontvangen van uw bestand. Gelieve na te gaan of het bestand niet corrupt is en even opnieuw te proberen.";
 $Expired = "Vervallen";
-$InvitationHasBeenSent = "De uitnodiging werd verzonden";
-$InvitationHasBeenNotSent = "De uitnodiging is niet verzonden";
+$InvitationHasBeenSent = "Het vriendschapsverzoek werd verzonden";
+$InvitationHasBeenNotSent = "Het vriendschapsverzoek is niet verzonden";
 $Outbox = "Verzonden items";
 $Overview = "Overzicht";
 $ApiKeys = "API sleutels";
@@ -3141,7 +3159,7 @@ $ThereIsNotQualifiedLearners = "Er zijn geen bevoegde cursisten";
 $ThereIsNotUnqualifiedLearners = "Er zijn geen onbevoegde cursisten";
 $SocialNetwork = "Sociaal netwerk";
 $BackToOutbox = "Terug naar vezonden items";
-$Invitation = "Uitnodiging";
+$Invitation = "Vriendschapsverzoek";
 $SeeMoreOptions = "Meer opties";
 $TemplatePreview = "Voorbeeldweergave van het sjabloon";
 $NoTemplatePreview = "Voorbeeldweergave is niet beschikbaar";
@@ -3256,7 +3274,7 @@ $GradebookWelcomeMessage = "Welkom bij het puntenbriefje. Met deze functionalite
 $CreateAllCat = "Alle cursuscategorieën aanmaken";
 $AddAllCat = "Alle categorieën werden toegevoegd.";
 $StatsStudent = "Statistieken van";
-$Results = "resultaten";
+$Results = "Resultaten";
 $Certificates = "Certificaten";
 $Certificate = "Certificaat";
 $ChooseUser = "Kies gebruikers voor deze evaluatie.";
@@ -3373,8 +3391,8 @@ $MenuGeneral = "Algemeen";
 $MenuUser = "Gebruiker";
 $MenuAdmin = "Platformbeheerder";
 $UsersOnLineList = "Lijst van gebruikers die online zijn";
-$TotalOnLine = "Totaal online";
-$Refresh = "Bijwerken";
+$TotalOnLine = "Aantal gebruikers online";
+$Refresh = "Vernieuw";
 $SystemAnnouncements = "Platformmededelingen";
 $HelpMaj = "Help";
 $NotRegistered = "Niet geregistreerd";
@@ -3723,7 +3741,7 @@ $StatsOfCourse = "Statistieken van cursus";
 $StatsOfUser = "Statistieken van gebruiker";
 $StatsOfCampus = "Statistieken van campus";
 $CountUsers = "Aantal gebruikers";
-$CountToolAccess = "Totaal aantal verbindingen met deze cursus";
+$CountToolAccess = "Aantal aanmeldingen in deze cursus";
 $LoginsTitleMonthColumn = "Maand";
 $LoginsTitleCountColumn = "Aantal logins";
 $ToolTitleToolnameColumn = "Modulenaam";
@@ -4847,7 +4865,7 @@ $MessagesSent = "Aantal verzonden berichten";
 $MessagesReceived = "Aantal ontvangen berichten";
 $CountFriends = "Aantal contacten";
 $ToChangeYourEmailMustTypeYourPassword = "Om uw e-mailadres te kunnen wijzigen, moet u uw wachtwoord bevestigen";
-$Invitations = "Invitaties";
+$Invitations = "Uitnodigingen";
 $MyGroups = "Mijn groepen";
 $Social = "Sociaal";
 $MyFriends = "Mijn vrienden";
@@ -4871,7 +4889,7 @@ $MaximunFileSizeX = "Maximale bestandsgrootte: %s";
 $ModifyInformation = "Informatie wijzigen";
 $GroupEdit = "Groep wijzigen";
 $ThereAreNotUsersInTheWaitingList = "Er zijn geen gebruikers in de wachtlijst";
-$SendInvitationTo = "Verzend invitatie aan";
+$SendInvitationTo = "Verzend uitnodiging aan";
 $InviteUsersToGroup = "Inviteer gebruikers tot groep";
 $PostIn = "Het verzond";
 $Newest = "Nieuwste";
@@ -4969,16 +4987,7 @@ $StartToType = "Tik hier en klik vervolgens op deze balk om de tag te valideren"
 $InstallChamilo = "Installeer Chamilo";
 $ChamiloURL = "Chamilo URL";
 $YouDoNotHaveAnySessionInItsHistory = "U hebt geen sessie in uw sessie geschiedenis";
-$PortalHomepageDefaultIntroduction = "Gefeliciteerd! U hebt uw leeromgeving succesvol geïnstalleerd!
-
-U kan nu de installatie voltooien door deze drie stappen te volgen:
-1. Configureer uw systeem door naar het administratie-gedeelte te gaan en selecteer Platform -> Chamiloinstellingen.
-2. Breng wat leven in uw systeem door gebruikers en/of opleidingen toe te voegen. U kan dit doen door gebruikers te verzoeken om zich te registreren of u kunt hen zelf inschrijven via onderdelen gebruikers en cursussen.
-3.Wijzig deze pagina via het onderdeel aanpassen startpagina in het administratie-gedeelte.
-
-U kan steeds meer informatie vinden over deze software op onze website: http://www.chamilo.org.
-
-Wij wensen u veel plezier. Aarzel niet om deel te nemen aan de Chamilo-gemeenschap en ons feedback te geven via ons forum.";
+$PortalHomepageDefaultIntroduction = "Gefeliciteerd! U hebt uw leeromgeving succesvol geïnstalleerd!\n\nU kan nu de installatie voltooien door deze drie stappen te volgen:\n1. Configureer uw systeem door naar het administratie-gedeelte te gaan en selecteer Platform -> Chamiloinstellingen.\n2. Breng wat leven in uw systeem door gebruikers en/of opleidingen toe te voegen. U kan dit doen door gebruikers te verzoeken om zich te registreren of u kunt hen zelf inschrijven via onderdelen gebruikers en cursussen.\n3.Wijzig deze pagina via het onderdeel aanpassen startpagina in het administratie-gedeelte.\n\nU kan steeds meer informatie vinden over deze software op onze website: http://www.chamilo.org.\n\nWij wensen u veel plezier. Aarzel niet om deel te nemen aan de Chamilo-gemeenschap en ons feedback te geven via ons forum.";
 $WithTheFollowingSettings = "met de volgende instellingen:";
 $ThePageHasBeenExportedToDocArea = "De pagina is geëxporteerd naar de document tool";
 $TitleColumnGradebook = "Kolomtitel in Competentie Rapport";
@@ -5262,14 +5271,16 @@ $OralQuestionsAttemptedAreX = "De mondelinge vragen die werden geprobeerd zijn %
 $OralQuestionsAttempted = "Een student heeft een of meerdere mondelinge vragen geprobeerd";
 $RelativeScore = "Relatieve score";
 $AbsoluteScore = "Absolute score";
-$CourseSettingsRegisterDirectLink = "Als uw cursus publiek of geopend is, kunt u gebruik maken van onderstaande directe link om een uitnodiging te verzenden naar alle nieuwe gebruikers. Dus na registratie, zullen ze direct worden doorverwezen naar de cursus. Ook kunt u de e = 1 parameter toevoegen aan de URL, vervang het cijfer \"1\" door het juiste oefening ID om ze rechtstreeks naar een specifiek examen door te verwijzen. Het oefening ID kan je vinden in de URL die je te zien krijgt wanneer je klikt op een te openen oefening.
-%s";
+$PrerequisitesOptions = "Instellen vereisten";
+$ClearAllPrerequisites = "Alle vereisten wissen";
+$SetPrerequisiteForEachItem = "Zet de vorige stap als vereiste bij elke stap";
+$CourseSettingsRegisterDirectLink = "Als uw cursus publiek of geopend is, kunt u gebruik maken van onderstaande directe link om een uitnodiging te verzenden naar alle nieuwe gebruikers. Dus na registratie, zullen ze direct worden doorverwezen naar de cursus. Ook kunt u de e = 1 parameter toevoegen aan de URL, vervang het cijfer \"1\" door het juiste oefening ID om ze rechtstreeks naar een specifiek examen door te verwijzen. Het oefening ID kan je vinden in de URL die je te zien krijgt wanneer je klikt op een te openen oefening.\n%s";
 $DirectLink = "Directe link";
 $GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Blader gerust door onze cursuslijst %s om u aan te melden bij de gewenste cursus. Eens u geregistreerd bent, zal u de cursus zien verschijnen %s, in plaats van deze boodschap.";
-$HelloXAsYouCanSeeYourCourseListIsEmpty = "Welkom %s,
-Zoals u kan zien, is uw cursuslijst nog leeg. Dit is te wijten aan het feit dat u nog niet geregistreerd bent voor een cursus.";
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "Welkom %s,\nZoals u kan zien, is uw cursuslijst nog leeg. Dit is te wijten aan het feit dat u nog niet geregistreerd bent voor een cursus.";
 $UnsubscribeUsersAlreadyAddedInCourse = "Schrijf reeds toegevoegde gebruikers uit";
 $EditQuestions = "Bewerk vragen";
+$ClickOnTheLearnerViewToSeeYourLearningPath = "Klik op de knop [Zicht als student] rechtsboven om het leerpad te zien.";
 $GenerateCertificates = "Certificaten maken";
 $ExportAllCertificatesToPDF = "Exporteer alle certificaten naar PDF";
 $DeleteAllCertificates = "Verwijder alle certificaten";
@@ -5305,13 +5316,7 @@ $YouMustAcceptLicence = "Je moet de gebruiksvoorwaarden accepteren";
 $SelectOne = "Maak een keuze";
 $ContactInformationHasBeenSent = "Contactgegevens werden verstuurd";
 $ExerciseDescriptionLabel = "Beschrijving";
-$ContactInformationDescription = "Beste gebruiker,
-\n
-Je staat op het punt een van de beste open-source leerplatformen op de markt te gebruiken. Zoals veel open-source projecten, wordt dit project gesteund door een massale gemeenschap van studenten, instructeurs, ontwikkelaars en makers van inhoud die dit project willen prmoten.
-\n
-\nDoor dit formulier in te vullen, geef je de Chamilo associatie en haar leden de toestemming je informatie door te mailen over belangrijke activiteiten of updates in de Chamilo software of community. Hierdoor kan de community groeien als een georganiseerde entiteit waar informatie goed doorstroomt, met permanent respect voor je tijd en je privacy.
-\n
-\nMerk op dat je <b>niet verplicht</b> bent om dit formulier in te vullen. Wil je anoniem blijven, dan verlies je natuurlijk wel de voordelen verbonden aan geregistreerde portalbeheerders. Tegelijk zullen we je beslissing respecteren. Laat het formulier in dit geval leeg en klik op \"Volgende\".";
+$ContactInformationDescription = "Beste gebruiker,\n\n\nJe staat op het punt een van de beste open-source leerplatformen op de markt te gebruiken. Zoals veel open-source projecten, wordt dit project gesteund door een massale gemeenschap van studenten, instructeurs, ontwikkelaars en makers van inhoud die dit project willen prmoten.\n\n\n\nDoor dit formulier in te vullen, geef je de Chamilo associatie en haar leden de toestemming je informatie door te mailen over belangrijke activiteiten of updates in de Chamilo software of community. Hierdoor kan de community groeien als een georganiseerde entiteit waar informatie goed doorstroomt, met permanent respect voor je tijd en je privacy.\n\n\n\nMerk op dat je <b>niet verplicht</b> bent om dit formulier in te vullen. Wil je anoniem blijven, dan verlies je natuurlijk wel de voordelen verbonden aan geregistreerde portalbeheerders. Tegelijk zullen we je beslissing respecteren. Laat het formulier in dit geval leeg en klik op \"Volgende\".";
 $CompanyActivity = "Bedrijfsactiviteit";
 $PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses = "Gelieve even geduld te hebben zodat wij u kunnen inschrijven in één van onze cursussen. Indien u denkt dat wij dit vergeten zijn, contacteer de beheerder(s) van dit platform. U kan normaal gezien de gegevens terugvinden onderaan (in de voet) deze pagina.";
 $DateUnLock = "Ontgrendel datum";
@@ -5397,7 +5402,7 @@ $ExamTaken = "Genomen";
 $ExamNotTaken = "Niet afgenomen";
 $ExamPassX = "Minum om te slagen %s";
 $ExamFail = "Niet geslaagd";
-$ExamTracking = "Examen opvolging";
+$ExamTracking = "Opvolging examens";
 $NoAttempt = "Geen pogingen";
 $PassExam = "Geslaagd";
 $CreateCourseRequest = "Maak een cursusverzoek aan";
@@ -5438,8 +5443,7 @@ $CourseRequestPageForApproval = "Dit cursusverzoek kan goedgekeurd worden op de
 $PleaseActivateCourseValidationFeature = "De optie \"Cursusvalidering\" is nog niet ingeschakeld. Wil je deze optie gebruiken, schakel ze dan in door de instelling %s te gebruiken.";
 $CourseRequestLegalNote = "De informatie over dit cursusverzoek is afgeschermd. Het mag enkel gebruikt worden om een nieuwe cursus op te starten in ons e-learning portaal. Deze informatie mag niet gedeeld worden met derden.";
 $EnableCourseValidation = "Cursusvalidering";
-$EnableCourseValidationComment = "Als de optie \"cursusvalidering\" ingeschakeld is, kan een onderwijzer zelf geen cursus aanmaken. Hij/zij moet een cursusverzoek invullen. De platformbeheerder zal de verzoeken evalueren en dan goed- of afkeuren.
-Deze functionaliteit maakt gebruik van automatische e-mail verzending. Zorg dat Chamilo geconfigureerd is met toegang tot een mailserver en beschikt over een exclusief e-mail adres.";
+$EnableCourseValidationComment = "Als de optie \"cursusvalidering\" ingeschakeld is, kan een onderwijzer zelf geen cursus aanmaken. Hij/zij moet een cursusverzoek invullen. De platformbeheerder zal de verzoeken evalueren en dan goed- of afkeuren.\nDeze functionaliteit maakt gebruik van automatische e-mail verzending. Zorg dat Chamilo geconfigureerd is met toegang tot een mailserver en beschikt over een exclusief e-mail adres.";
 $CourseRequestAskInfoEmailSubject = "%s Verzoek voor bijkomende informatie over een cursusverzoek %s";
 $CourseRequestAskInfoEmailText = "We hebben je verzoek ontvangen voor een nieuwe cursus met de code %s. We hebben meer informatie nodig om het voorstel te evalueren.\n\nGelieve  een kort woordje uitleg te geven over de inhoud van de cursus (beschrijving), de doelstellingen, je doelgroep van de vooropgestelde cursus. Indien van toepassing, vermeld de naam van de instelling of de afdeling in wiens naam je het verzoek indiende.";
 $CourseRequestAcceptedEmailSubject = "%s Cursusverzoek %s is goedgekeurd";
@@ -5447,8 +5451,7 @@ $CourseRequestAcceptedEmailText = "Cursusverzoek %s werd goedgekeurd. Een nieuwe
 $CourseRequestRejectedEmailSubject = "%s Cursusverzoek %s werd afgekeurd";
 $CourseRequestRejectedEmailText = "Het spijt ons te moeten meedelen dat je cursusverzoek %s niet geaccepteerd werd, omdat die niet voldoet aan onze Algemene Voorwaarden.";
 $CourseValidationTermsAndConditionsLink = "Cursusvalidering - link naar de algemene voorwaarden";
-$CourseValidationTermsAndConditionsLinkComment = "Deze URL leidt naar de \"Algemene Voorwaarden\" die van toepassing zijn als je een cursusverzoek wil indienen. Als hier een URL is ingevuld, zal deze gebruiker deze moeten lezen en goedkeuren als die een cursusverzoek wil indienen.
-Als je de \"Algemene Voorwaarden\" module in Chamilo gebruikt en je wil die URL gebruiken, laat dit veld dan leeg.";
+$CourseValidationTermsAndConditionsLinkComment = "Deze URL leidt naar de \"Algemene Voorwaarden\" die van toepassing zijn als je een cursusverzoek wil indienen. Als hier een URL is ingevuld, zal deze gebruiker deze moeten lezen en goedkeuren als die een cursusverzoek wil indienen.\nAls je de \"Algemene Voorwaarden\" module in Chamilo gebruikt en je wil die URL gebruiken, laat dit veld dan leeg.";
 $CourseCreationFailed = "De aanmaak van de cursus is mislukt door een interne fout.";
 $CourseRequestCreationFailed = "Het cursusverzoek werd niet ingediend door een interne fout.";
 $CourseRequestEdit = "Cursusverzoek bewerken";
@@ -5468,8 +5471,7 @@ $SSOServerUnAuthURIComment = "De pagina die de server gebruikt om de gebruiker a
 $SSOServerProtocolTitle = "Protocol van de Single Sign On server";
 $SSOServerProtocolComment = "De protocol-prefix gebruikt door je Single Sign On server (we adviseren https:// aangezien andere protocols onbeveiligd zijn en dus gevaarlijk voor authenticatie)";
 $EnabledWirisTitle = "WIRIS wiskundige editor";
-$EnabledWirisComment = "Schakel de WIRIS wikundige editor in. Door deze plugin te installeren, krijg je de WIRIS editor en de WIRIS CAS. De activering is pas compleet als ook de <a href=\"http://www.wiris.com/es/plugins3/ckeditor/download\">PHP plugin voor CKeditor WIRIS</a> gedownload en gedecomprimeerd is in de Chamilo map main/inc/lib/javascript/ckeditor/plugins/
-Dit is noodzakelijk want WIRIS is gepatenteerd en de dienstverlening is <a href=\"http://www.wiris.com/store/who-pays\">commercieel</a>. Wil je wijzigingen aanbrengen aan deze plugin, bewerk dan configuration.ini of vervang de inhoud door de standaard configuration.ini die bij Chamilo geleverd wordt.";
+$EnabledWirisComment = "Schakel de WIRIS wikundige editor in. Door deze plugin te installeren, krijg je de WIRIS editor en de WIRIS CAS. De activering is pas compleet als ook de <a href=\"http://www.wiris.com/es/plugins3/ckeditor/download\">PHP plugin voor CKeditor WIRIS</a> gedownload en gedecomprimeerd is in de Chamilo map main/inc/lib/javascript/ckeditor/plugins/\nDit is noodzakelijk want WIRIS is gepatenteerd en de dienstverlening is <a href=\"http://www.wiris.com/store/who-pays\">commercieel</a>. Wil je wijzigingen aanbrengen aan deze plugin, bewerk dan configuration.ini of vervang de inhoud door de standaard configuration.ini die bij Chamilo geleverd wordt.";
 $FileSavedAs = "Bestand opgeslagen als";
 $FileExportAs = "Exporteer bestand as";
 $AllowSpellCheckTitle = "Spellingscontrole";
@@ -5503,20 +5505,12 @@ $OnlyAccessFromYourGroup = "Enkel toegankelijk voor je groep";
 $CreateAssignmentPage = "Dit zal een speciale wiki pagina aanmaken waarin de docent een taak kan omschrijven en automatisch zal doorkoppelen naar de pagina's waar de cursisten de taak kunnen uitvoeren. Zowel de pagina van de docent en van de cursisten worden automatisch aangemaakt. In deze taken kunnen cursisten enkel hun eigen pagina's zien en bewerken, maar dit kan eenvoudig gewijzigd worden, mocht je dit willen.";
 $UserFolders = "Gebruikersmappen";
 $UserFolder = "Gebruikersmap";
-$HelpUsersFolder = "INFORMATIE ENKEL ZICHTBAAR VOOR DE DOCENT:\nDe gebruikersmap bevat een map voor elke gebruiker die toegang tot de documenttool gebruikt heeft, of of als een bestand werd ingestuurd door de online editor. Als geen van beide gebeurd is, zal er nog geen map bestaan voor deze gebruiker. Als er met groepen gewerkt wordt, zullen bestanden die via de editor opgeladen werden, in de map van een groep geplaatst worden - en deze zullen dan toegankelijk zijn door de leden van de groep.
-
-De gebruikersmap en alle onderliggende mappen zullen standaard verborgen zijn voor alle cursisten, maar elke cursist kan de inhoud in zijn/haar map zien door de online editor. Als een cursist de mapnaam van een andere cursist kent, kan die deze wel manueel invoeren.
-
-Als een map van een cursist zichtbaar is, kunnen andere gebruikers zien wat erin zit. In dit geval kan de student (met de bestanden in zijn/haar map) ook: online documenten aanmaken en bewerken, documenten converteren in een sjabloon voor persoonlijk gebruik, afbeeldingen (SVG, PNG) maken of bewerken, audiobestanden opnemen in WAV, teksten omzetten in MP3-bestanden, snapshots maken met je webcam, documenten insturen, mappen aanmaken, mappen en bestanden verplaatsen of verwijderen, downloaden en/of backuppen van zijn/haar map.
-
-Bovendien is de documenttool gesynchroniseerd met de bestandsbeheerder in de online editor, dus wijzigingen in de documenten in de ene omgeving, zijn ook zichtbaar in de andere.
-
-Dus de gebruikersmap is niet alleen de plaats waar bestanden geplaatst kunnen worden, het wordt een volledig documentbeheersysteem (waarvan hij al dan niet de eigenaar is) voor zijn/haar portfolio of persoonlijke documentzone van het sociale netwerk die zullen beschikbaar zijn voor hem/haar in andere cursussen.";
+$HelpUsersFolder = "INFORMATIE ENKEL ZICHTBAAR VOOR DE DOCENT:\nDe gebruikersmap bevat een map voor elke gebruiker die toegang tot de documenttool gebruikt heeft, of of als een bestand werd ingestuurd door de online editor. Als geen van beide gebeurd is, zal er nog geen map bestaan voor deze gebruiker. Als er met groepen gewerkt wordt, zullen bestanden die via de editor opgeladen werden, in de map van een groep geplaatst worden - en deze zullen dan toegankelijk zijn door de leden van de groep.\n\nDe gebruikersmap en alle onderliggende mappen zullen standaard verborgen zijn voor alle cursisten, maar elke cursist kan de inhoud in zijn/haar map zien door de online editor. Als een cursist de mapnaam van een andere cursist kent, kan die deze wel manueel invoeren.\n\nAls een map van een cursist zichtbaar is, kunnen andere gebruikers zien wat erin zit. In dit geval kan de student (met de bestanden in zijn/haar map) ook: online documenten aanmaken en bewerken, documenten converteren in een sjabloon voor persoonlijk gebruik, afbeeldingen (SVG, PNG) maken of bewerken, audiobestanden opnemen in WAV, teksten omzetten in MP3-bestanden, snapshots maken met je webcam, documenten insturen, mappen aanmaken, mappen en bestanden verplaatsen of verwijderen, downloaden en/of backuppen van zijn/haar map.\n\nBovendien is de documenttool gesynchroniseerd met de bestandsbeheerder in de online editor, dus wijzigingen in de documenten in de ene omgeving, zijn ook zichtbaar in de andere.\n\nDus de gebruikersmap is niet alleen de plaats waar bestanden geplaatst kunnen worden, het wordt een volledig documentbeheersysteem (waarvan hij al dan niet de eigenaar is) voor zijn/haar portfolio of persoonlijke documentzone van het sociale netwerk die zullen beschikbaar zijn voor hem/haar in andere cursussen.";
 $HelpFolderChat = "INFORMATIE ENKEL ZICHTBAAR VOOR DE INSTRUCTEUR:\nDeze map bevat alle sessies die geopend werden in de chat. Hoewel de chats vaak banaal zijn, kunnen anderen bijzonder interessant zijn om op te nemen in je cursus of te gebruiken in je cursus. Om dit te doen zonder de zichtbaarheid van de map te wijzigen, maak je het bestand zichtbaar en maak je een koppeling van waar je het wil gebruiken.";
 $HelpFolderCertificates = "INFORMATIE ENKEL ZICHTBAAR VOOR DE INSTRUCTEUR:\nDeze map bevat de verschillende certificaatsjablonen die aangemaakt werden via het puntenboek. Het is niet aangewezen om deze zichtbaar te maken voor iedereen.";
 $DestinationDirectory = "Bestemmingsmap";
 $CertificatesFiles = "Certificaten";
-$ChatFiles = "Chatgeschiedenis";
+$ChatFiles = "Chat geschiedenis";
 $Flash = "Flash";
 $Video = "Video";
 $Images = "Afbeeldingen";
@@ -5618,9 +5612,21 @@ $ByCourse = "Per cursus";
 $MyQCM = "Mijn meerkeuzevragen";
 $LearnpathUpdated = "Leerpad bijgewerkt";
 $YouNeedToCreateACareerFirst = "Je moet een carrière aanmaken voor je promoties kunt toevoegen (promoties zijn sub-elementen van een carrière)";
+$OutputBufferingInfo = "Uitvoer buffer instelling is \"On\" als deze geactiveerd is of \"Off\" als deze uitgeschakeld is. Deze instelling kan ook geactiveerd worden door een integer waarde (bijvoorbeeld 4096) welke de uitvoor buffer grootte is.";
+$LoadedExtension = "extensie geladen";
+$AddACourse = "Voeg een cursus toe";
+$PerWeek = "Per week";
+$SubscribeGroupToSessions = "Schrijf groep in voor sessies";
+$SubscribeGroupToCourses = "Schrijf groep in voor cursussen";
+$CompareStats = "Vergelijk statistieken";
+$RenameAndComment = "Hernoem en geef commentaar";
+$PhotoRetouching = "Photo be/bijwerken";
+$EnabledPixlrTitle = "Activeer externe Pixlr service";
+$EnabledPixlrComment = "Pixlr maakt het mogelijk om je foto's te bewerken, aanpassen en filteren met opties vergelijkbaar met Photoshop. Het is de ideale aanvulling om plaatjes te bewerken gebaseerd op bitmap.";
 $PDFWaterMarkHeader = "Watermerk hoofding in geëxporteerde PDF's";
 $False = "Niet waar";
 $DoubtScore = "Ik weet het niet";
+$PublicationDate = "Publicatiedatum";
 $MySocialGroups = "Mijn sociale groepen";
 $SocialGroups = "Sociale groepen";
 $CreateASocialGroup = "Sociale groep maken";
@@ -5633,8 +5639,12 @@ $PropagateNegativeResults = "Verspreid negatieve resultaten tussen vragen";
 $InsertALinkToThisQuestionInTheExercise = "Gebruik deze vraag in de test als een koppeling (geen kopie)";
 $OnlyShowScore = "Oefenmode: toon score alleen";
 $EditMembersList = "Wijzig gebruikerslijst";
+$MailNotifyInvitation = "Stuur email bij nieuw vriendschapsverzoek";
+$MailNotifyMessage = "Stuur email bij persoonlijk bericht";
+$MailNotifyGroupMessage = "Stuur email bij bericht in groep";
 $ImportExcelQuiz = "Importeer quiz uit Excel";
 $DownloadExcelTemplate = "Download het Excel sjabloon";
+$YouAreCurrentlyUsingXOfYourX = "Je gebruikt momenteel %s MB (%s) van de %s MB beschikbaar.";
 $ExerciseWillBeActivatedFromXToY = "De oefening zal geactiveerd worden van %s tot %s";
 $ExerciseAvailableFromX = "Oefening beschikbaar van %s";
 $ExerciseAvailableUntilX = "Oefening beschikbaar tot %s";
@@ -5700,7 +5710,9 @@ $LockEvaluation = "Evaluatie vergrendelen";
 $UnLockEvaluation = "Evaluatie ontgrendelen";
 $TheEvaluationIsLocked = "De evaluatie werd vergrendeld";
 $BackToEvaluation = "Terug naar evaluatie";
+$Reset = "Wissen";
 $YouAreRegisterToSessionX = "Je bent aangemeld op sesie: %s.";
+$Configuration = "Configuratie";
 $TotalWeight = "Totaal gewicht";
 $SumOfActivitiesWeightMustBeEqualToTotalWeight = "De som van alle gewichten van de activiteit moet gelijk zijn aan het totale gewicht dat werd aangegeven in de instellingen van de puntenlijst. De cursisten kunnen anders niet genoeg scoren om hun certificaat te behalen.";
 $TotalSumOfWeights = "De som van alle gewichten van de activiteiten in deze opdracht moet gelijk zijn aan dit nummer.";
@@ -5715,15 +5727,19 @@ $LoadUsersExtraData = "Laad gebruikers' extra data";
 $TotalWeightMustBeX = "De som van alle gewichten van activiteiten moet %s zijn.";
 $DisableEndDate = "Schakel einddatum uit";
 $ForumCategories = "Forum categorieën";
+$EnableStartTime = "Instellen tijdstip begin";
+$EnableEndTime = "Instellen tijdstip einde";
 $AllEvents = "Alle evenementen";
 $StartTest = "Start de test";
 $ExportAsDOC = "Exporteren als .doc";
+$Wrong = "Fout";
 $QuestionsToReview = "Te beoordelen vragen";
 $QuestionWithNoAnswer = "Vragen zonder antwoord";
 $ValidateAnswers = "Antwoorden valideren";
 $ReviewQuestions = "Geselecteerde antwoorden nakijken";
 $YouTriedToResolveThisExerciseEarlier = "U hebt vroeger reeds geprobeerd om deze oefening op te lossen";
 $ThereAreNoQuestionsForThisExercise = "Er zijn geen vragen voor deze oefening";
+$SaveForNow = "Opslaan en later verderdoen";
 $ContinueTest = "Ga verder met de test";
 $XQuestionsWithTotalScoreY = "%d vragen, goed voor een totale score (op alle vragen) van %s";
 $QuestionLowerCase = "vraag";
@@ -5759,6 +5775,7 @@ $MofidfyCategoryDone = "Categorie gewijzigd";
 $NotInAGroup = "Niet in een groep";
 $DoFilter = "Filteren";
 $ByCategory = "Per categorie";
+$Skills = "Competenties";
 $ResultsNotRevised = "Resultaten niet beoordeeld";
 $ResultNotRevised = "Resultaat niet beoordeeld";
 $ActivateLegal = "Juridische termen inschakelen";
@@ -5766,9 +5783,13 @@ $ShowALegalNoticeWhenEnteringTheCourse = "Toon een gebruiksovereenkomst bij open
 $NumberOfStudentsWhoTryTheExercise = "Aantal cursisten die de oefening hebben gemaakt";
 $LowestScore = "Laagste score";
 $HighestScore = "Hoogste score";
+$ExerciseProgress = "Voortgang oefeningen";
 $SelectGradebook = "Selecteer opdracht";
 $UserList = "Gebruikerslijst";
+$SearchUsers = "Zoek deelnemers";
+$Administration = "Beheer";
 $AddAsAnnouncement = "Toevoegen als aankondiging";
+$AcceptLegal = "Gebruiksovereenkomst aanvaarden.";
 $RandomQuestionByCategory = "Willekeurige vraag per categorie";
 $QuestionDisplayCategoryName = "Toon vragen categorie";
 $ReviewAnswers = "Beoordeel mijn antwoorden";
@@ -5786,21 +5807,54 @@ $AddGradebook = "Voeg opdracht toe";
 $NoStudents = "Geen student";
 $NoData = "Geen data beschikbaar";
 $IAmAHRM = "Ik ben een human resources manager";
+$NumberOfStudents = "Aantal cursisten";
+$NumberStudentsAccessingCourse = "Aantal cursisten nu aanwezig";
+$PercentageStudentsAccessingCourse = "Percentage cursisten nu aanwezig";
+$NumberStudentsCompleteAllActivities = "Aantal cursisten die de cursus afgerond hebben";
+$PercentageStudentsCompleteAllActivities = "Percentage van cursisten die de cursus afgerond hebben";
+$AverageOfActivitiesCompletedPerStudent = "Gemiddeld aantal activiteiten voltooid per cursist";
+$TotalTimeSpentInTheCourse = "Totale tijd doorgebracht in de cursus";
+$AverageTimePerStudentInCourse = "Gemiddelde tijd doorgebracht per cursist";
+$NumberOfDocumentsInLearnpath = "Aantal documenten in leerpad";
+$NumberOfExercisesInLearnpath = "Aantal oefeningen in leerpad";
+$NumberOfLinksInLearnpath = "Aantal koppelingen in leerpad";
+$NumberOfForumsInLearnpath = "Aantal forums in leerpad";
+$NumberOfAssignmentsInLearnpath = "Aantal taken in leerpad";
+$NumberOfAnnouncementsInCourse = "Aantal aankondigingen in leerpad";
+$CurrentCoursesReport = "Overzicht huidige cursussen";
+$CoursesReporting = "Cursus statistieken";
+$AdminReports = "Algemene statistieken";
+$ExamsReporting = "Statistieken examens";
+$MyReporting = "Mijn voortgang";
+$SessionList = "Sessielijst";
+$StudentList = "Lijst cursisten";
 $StudentsWhoAreTakingTheExerciseRightNow = "Aantal cursisten die momenteel de oefening maken";
 $ReportByQuestion = "Rapporteren per vraag";
 $LiveResults = "Live resultaten";
+$Me = "Ik";
+$Vote = "Stem";
+$Votes = "Stemmen";
+$XStarsOutOf5 = "%s sterren (max. 5)";
+$Visit = "Bezoek";
+$Visits = "Bezoeken";
+$YourVote = "Jouw stem";
+$HottestCourses = "Populairste cursussen";
+$LoginToVote = "Meld aan om te stemmen";
 $ImportGlossary = "Importeer woordenlijst";
 $ReplaceGlossary = "Vervang woordenlijst";
 $CannotDeleteGlossary = "Kan de woordenlijst niet verwijderen";
 $TermsImported = "Termen geïmporteerd";
 $TermsNotImported = "Termen niet geïmporteerd";
 $ExportGlossaryAsCSV = "Exporteer woordenlijst als een CSV-bestand";
+$ChatConnected = "Chat (Verbonden)";
+$ChatDisconnected = "Chat (Klik om te verbinden)";
 $AddCourseDescription = "Voeg cursus beschrijving toe";
 $RecordAnswer = "Antwoord opnemen";
 $UseTheMessageBelowToAddSomeComments = "Gebruik onderstaand bericht om een commentaar toe te voegen";
 $SendRecord = "Record verzenden";
 $DownloadLatestRecord = "Record downloaden";
 $OralExpression = "Mondelinge expressie";
+$YouHaveEnteredTheCourseXInY = "Je bent ingeschreven voor de cursus <b>%s</b>(%s)";
 $CongratulationsYouPassedTheTest = "Gefeliciteerd. U bent geslaagd!";
 $YouDidNotReachTheMinimumScore = "U hebt de minimumscore niet gehaald.";
 $EndTest = "Einde van de test";
@@ -5808,6 +5862,10 @@ $SelectGradeModel = "Selecteer een kwalificatie model";
 $AllMustWeight100 = "De som van alle waarden moet 100 zijn";
 $Components = "Componenten";
 $OnlyActiveWhenThereAreAnyComponents = "Deze optie is ingeschakeld als u evaluaties of categorieën hebt";
+$GoToCourse = "Meld je aan voor de cursus";
+$Configure = "Configuratie";
+$Regions = "Regio's";
+$CourseList = "Cursuslijst";
 $GradebookLockedAlert = "Deze evaluatie werd vergrendeld. Je kan ze niet ontgrendelen. Als je ze echt wil ontgrendelen, contacteer dan de platform beheerder, leg hem/haar uit waarom je de evaluatie moet kunnen ontgrendelen (anders kan je evaluatie als frauduleus worden aanzien)";
 $AnnouncementForGroup = "Aankondiging voor een groep";
 $AllGroups = "Alle groepen";
@@ -5822,11 +5880,40 @@ $ExerciseAverage = "Gemiddelde van de oefening";
 $NoNegativeScore = "Geen negatieve score";
 $GlobalMultipleAnswer = "Globale meerdere antwoorden";
 $AllQuestionsShort = "Alle";
+$FollowedSessions = "Gevolgde sessies";
+$FollowedCourses = "Gevolgde cursussen";
+$FollowedUsers = "Gevolgde gebruikers";
+$Timeline = "Tijdslijn";
 $CourseCatalog = "Cursuscatalogus";
 $ProblemsRecordingUploadYourOwnAudioFile = "Problemen bij het opnemen? Upload uw eigen geluidsbestand.";
 $List = "Lijst";
 $CourseDescriptions = "Cursus beschrijvingen";
 $GlossaryTermUpdated = "Termen aangepast";
 $DeleteAllGlossaryTerms = "Verwijder alle termen";
+$YouNotYetAchievedCertificates = "Je hebt nog geen certificaten behaald. Vervolledig je leerpad om er een te halen!";
+$ForumThreadPeerScoring = "Thread scored by peers";
+$ForumThreadPeerScoringComment = "If selected, this option will require each student to qualify at least 2 other students in order to get his score greater than 0 in the gradebook.";
+$ForumThreadPeerScoringStudentComment = "Om een score te ontvangen in dit forum, moet een andere cursist punten geven voor je bijdragen, en moet jij zelf minstens punten geven op de bijdragen van twee andere cursisten in het forum. Zolang dit niet gebeurd is, blijft je score for deze deelname op 0 staan in je globale punten.";
 $MyCoursesSessionView = "Per module";
+$AddCustomCourseIntro = "Plaats een voorwoord bij deze cursus door te klikken op het bewerken-icoontje...";
+$PoweredByX = "%s onder de motorkap";
+$LatestLoginInCourse = "Meest recente bezoek";
+$LatestLoginInPlatform = "Meest recente toegang tot platform";
+$FirstLoginInPlatform = "Eerste toegang tot platform";
+$FirstLoginInCourse = "Eerste bezoek aan cursus";
+$GroupReporting = "Opvolging groep";
+$XDays = "%s dagen";
+$SkillProfile = "Competentieprofiel";
+$AchievedSkills = "Gerealiseerde competenties";
+$BusinessCard = "Visitekaartje";
+$BadgeDetails = "Badge details";
+$TheUserXNotYetAchievedTheSkillX = "De gebruiker %s beheerst deze vaardigheid nog niet \"%s\"";
+$IssuedBadgeInformation = "Verleende badge informatie";
+$RecipientDetails = "Recipient details";
+$SkillAcquiredAt = "Competentie verworven op";
+$BasicSkills = "Basisvaardigheden";
+$TimeXThroughCourseY = "<strong>%s</strong> tot <em>%s</em>";
+$ExportBadge = "Badge exporteren";
+$HotspotExerciseFinished = "Klik op de knop onderaan om je antwoorden te valideren.";
+$FollowedStudentBosses = "Cursist voortrekkers die ik opvolg";
 ?>

+ 4 - 2
main/lang/english/trad4all.inc.php

@@ -7664,5 +7664,7 @@ $RecordAudio = "Record audio";
 $StartRecordingAudio = "Start recording";
 $StopRecordingAudio = "Stop recording";
 $SaveRecordedAudio = "Save recorded audio";
-$GradeFromX = "Grade for course: %s";
-?>
+$GradeFromX = "Grades from course: %s";
+$TitleMandatory = "A title is required";
+$NoCourseCategorySupplied = "No course category was provided";
+?>

+ 4 - 2
main/lang/french/trad4all.inc.php

@@ -7651,5 +7651,7 @@ $RecordAudio = "Enregistrement audio";
 $StartRecordingAudio = "Lancer l'enregistrement";
 $StopRecordingAudio = "Arrêter l'enregistrement";
 $SaveRecordedAudio = "Sauvegarder l'audio enregistré";
-$GradeFromX = "Bulletin pour le cours: %s";
-?>
+$GradeFromX = "Bulletin du cours: %s";
+$TitleMandatory = "Le titre est obligatoire";
+$NoCourseCategorySupplied = "Aucune catégorie de cours n'a été indiquée";
+?>

+ 188 - 7
main/lang/portuguese/trad4all.inc.php

@@ -6,6 +6,14 @@ $TotalX = "Total: %s";
 $SkillsReport = "Relatório de Competências";
 $TemplateCertificateTitle = "Certificado";
 $DownloadCertificate = "Baixar Certificado";
+$Write = "Escrever";
+$SocialWall = "Mural social";
+$IncludeAllUsers = "Incluir todos os utilizadores";
+$DocumentAlreadyAdded = "Documento já adicionado";
+$AddDocument = "Adicionar documento";
+$ShowDescription = "Mostrar descrição";
+$SubscribeTeachersToSession = "Inscrever professores para a(s) sessão(sessões)";
+$DocumentsAdded = "Documentos adicionados";
 $CatchScreenCasts = "Capturas de ecrãn";
 $View = "Ver";
 $AmountSubmitted = "Número submetido";
@@ -30,7 +38,7 @@ $TheTextYouEnteredDoesNotMatchThePicture = "O texto inserido não corresponde à
 $RemoveOldRelationships = "Remover relações anteriores";
 $ImportSessionDrhList = "Importar lista de diretores de RH para as sessões";
 $FollowedStudents = "Alunos seguidos";
-$FollowedTeachers = "Instrutores seguidos";
+$FollowedTeachers = "Professores seguidos";
 $AllowOnlyFiles = "Permitir apenas ficheiros";
 $AllowOnlyText = "Permitir apenas texto";
 $AllowFileOrText = "Permitir ficheiros ou texto online";
@@ -669,6 +677,7 @@ $CourseDescriptionAdded = "Descrição do curso adicionada";
 $NotebookAdded = "Nota adicionada";
 $NotebookUpdated = "Nota actualizada";
 $NotebookDeleted = "Nota eliminada";
+$DeleteAllAttendances = "Apagar todas as presenças";
 $AssignSessionsTo = "Atribuir sessões a";
 $Upload = "Enviar";
 $MailTemplateRegistrationTitle = "Novo utilizador em ((sitename))";
@@ -927,7 +936,7 @@ $Subscribe = "Aderir/inscrever-se";
 $AlreadySubscribed = "Já aderido/subscrito";
 $CodeMandatory = "Código obrigatório";
 $CourseCategoryMandatory = "Categoria de curso obrigatória";
-$TeacherMandatory = "Instrutor obrigatório";
+$TeacherMandatory = "Nome do professor obrigatório";
 $CourseCategoryStored = "Categoria do curso criada";
 $WithoutTimeLimits = "Sem limite de tempo";
 $Added = "Adicionado";
@@ -1028,8 +1037,8 @@ $Used = "em utilização";
 $Exist = "existente";
 $ShowBackLinkOnTopOfCourseTree = "Apresentar ligações para voltar a partir das categorias/cursos";
 $ShowNumberOfCourses = "Apresentar o número de cursos";
-$DisplayTeacherInCourselistTitle = "Exibir o nome do instrutor no nome do curso";
-$DisplayTeacherInCourselistComment = "Exibir o nome do instrutor na lista do curso";
+$DisplayTeacherInCourselistTitle = "Exibir o nome do professor no nome do curso";
+$DisplayTeacherInCourselistComment = "Exibir o nome do professor na lista do curso";
 $DisplayCourseCodeInCourselistComment = "Exibir o Código do Curso na lista do curso";
 $DisplayCourseCodeInCourselistTitle = "Exibir o Código no nome do Curso";
 $ThereAreNoVirtualCourses = "Não existem cursos pseudónimos/virtuais na plataforma.";
@@ -1256,7 +1265,7 @@ $AllowLostPasswordTitle = "Password/senha perdida/esquecida";
 $AllowLostPasswordComment = "Os utilizadores estão autorizados a solititar a sua password/senha perdida/esquecida?";
 $AllowRegistrationTitle = "Registro/inscrição";
 $AllowRegistrationComment = "É permitido o registro/inscrição como um novo utilizador? Podem os utilizadores criar novas contas de utilizador?";
-$AllowRegistrationAsTeacherTitle = "Registro/inscrição como Instrutor";
+$AllowRegistrationAsTeacherTitle = "Registro/inscrição como Professor";
 $AllowRegistrationAsTeacherComment = "Pode qualquer utilizador registar-se como instrutor (com permissões para criar cursos)?";
 $PlatformLanguage = "Idioma do portal";
 $Tuning = "Melhorar/aperfeiçoar";
@@ -1514,7 +1523,7 @@ $WrongDate = "Formato de data incorrecto (yyyy-mm-dd)";
 $YouWillSoonReceiveMailFromCoach = "Brevemente irá receber um e-mail do seu tutor.";
 $SlideSize = "Tamanho dos slides/apresentação";
 $EphorusPlagiarismPrevention = "Prevenção de plágio Ephorus (verificar se os alunos plagiaram/copiaram trabalho uns dos outros)";
-$CourseTeachers = "Instrutores";
+$CourseTeachers = "Professores";
 $UnknownTeacher = "Instrutor desconhecido";
 $HideDLTTMarkup = "Ocultar/esconder caracteres DLTT";
 $ListOfCoursesOfSession = "Lista de cursos para a sessão";
@@ -2337,9 +2346,11 @@ $AddAssignmentToCourse = "Adicionar trabalho/tarefa ao curso";
 $AddForumToCourse = "Adicionar fórum ao curso";
 $SaveAudioAndOrganization = "Guardar áudio e organização";
 $UploadOnlyMp3Files = "Por favor envie apenas ficheiros mp3";
+$NoPosts = "Sem posts";
 $TypeMessage = "Por favor, escreva a sua mensagem!";
 $ConfirmReset = "Tem a certeza que deseja eliminar todas as mensagens?";
 $ClearList = "Limpar o chat";
+$ShortDescription = "Descrição curta";
 $CallSent = "Convite de Chat foi enviado. Aguardando aceitação pelo convidado.";
 $ChatDenied = "O seu convite de Chat foi rejeitado pelo convidado.";
 $Send = "Enviar mensagem";
@@ -2747,7 +2758,7 @@ $Propositions = "Propostas de sugestão de melhoria de";
 $Maj = "Actualizar";
 $Modify = "Editar";
 $Invisible = "invisível";
-$Save = "Enviar mensagem";
+$Save = "Guardar";
 $Move = "Mover";
 $Help = "Ajuda";
 $Ok = "Validar";
@@ -4303,6 +4314,17 @@ $BadFormData = "Falha no envio: dados incorrectos no formulário. Por favor cont
 $GeneralError = "Ocorreu um erro. Por favor, contacte o administrador do sistema.";
 $ToPlayTheMediaYouWillNeedToUpdateYourBrowserToARecentVersionYouCanAlsoDownloadTheFile = "Para ver o conteúdo deverá ou atualizar o seu browser para uma versão mais recente ou atualizar o plugin Flash. Verifique se o ficheiro tem a extensão correta.";
 $UpdateRequire = "Atualização necessária";
+$ThereAreNoRegisteredDatetimeYet = "Não existe ainda qualquer data/hora registada";
+$CalendarList = "Lista de calendários de presenças";
+$AttendanceCalendarDescription = "O calendário de presenças permite-lhe registar listas de presenças (uma por por sessão que os alunos tenham de frequentar). Adicione nova lista de presenças aqui.";
+$CleanCalendar = "Limpar o calendário em todas as listas";
+$AddDateAndTime = "Adicionar uma data e horário";
+$AttendanceSheet = "Registo de presenças";
+$GoToAttendanceCalendar = "Ir para o calendário de presenças";
+$AttendanceCalendar = "Calendário de presenças";
+$QualifyAttendanceGradebook = "Avalie a lista de presenças na ferramenta de avaliação";
+$CreateANewAttendance = "Criar nova lista de presenças";
+$Attendance = "Presenças";
 $XResultsCleaned = "%d resultados apagados";
 $AreYouSureToDeleteResults = "Tem a certeza de que deseja apagar os resultados?";
 $CouldNotResetPassword = "Não foi possível redefinir a senha";
@@ -5112,14 +5134,28 @@ $InvitationDenied = "Convite negado";
 $UserAdded = "O utilizador foi adicionado";
 $UpdatedIn = "Atualizado em";
 $Metadata = "Metadados";
+$AddMetadata = "Visualizar/Editar metadados";
 $SendMessage = "Enviar Mensagem";
 $SeeForum = "Ver Fórum";
 $SeeMore = "Ver Mais";
+$NoDataAvailable = "Não há dados disponíveis";
 $Created = "Criado";
+$LastUpdate = "Última actualização";
+$UserNonRegisteredAtTheCourse = "Utilizador não registado no Curso";
 $EditMyProfile = "Editar o meu perfil";
+$Announcements = "Anúncios";
 $Password = "Senha";
+$DescriptionGroup = "Descrição do grupo";
+$Installation = "Instalação";
+$ReadTheInstallationGuide = "Ler o guia de instalação";
 $SeeBlog = "Ver Blog";
 $Blog = "Blog";
+$BlogPosts = "Posts no Blog";
+$BlogComments = "Comentários no Blog";
+$ThereAreNotExtrafieldsAvailable = "Não existem campos extra disponíveis";
+$StartToType = "Comece a escrever, depois clique para validar";
+$InstallChamilo = "Instalar Chamilo";
+$ChamiloURL = "Chamilo URL";
 $YouDoNotHaveAnySessionInItsHistory = "Não possui qualquer sessão do curso no seu histórico";
 $PortalHomepageDefaultIntroduction = "Parabéns! Você instalou com sucesso seu portal de e-learning!
 
@@ -5130,6 +5166,7 @@ Edite a página inicial do portal através da opção de Edição da Página Ini
 Você pode sempre encontrar mais informação sobre este software em nosso Web site: http://www.chamilo.org.
 Divirta-se, e não hesite em juntar-se à comunidade e dar-nos o feedback através de nosso fórum.";
 $WithTheFollowingSettings = "com as seguintes configurações:";
+$ThePageHasBeenExportedToDocArea = "A página foi exportada para a ferramenta de documento";
 $TitleColumnGradebook = "Cabeçalho da coluna no Relatório de Competências";
 $QualifyWeight = "Peso no Relatório";
 $ConfigureExtensions = "Configurar extensões";
@@ -5145,12 +5182,31 @@ $ViewUsersWithTask = "Trabalhos recebidos";
 $ReminderMessage = "Enviar lembrete";
 $DateSent = "Dados enviados";
 $ViewUsersWithoutTask = "Ver trabalhos/tarefas em falta";
+$SuggestionOnlyToEnableSubLanguageFeatureOrUpgradeProcess = "Necessário apenas para a função de sub-linguas ou para o processo de actualização de versão";
+$ThematicAdvance = "Progresso temático";
+$EditProfile = "Editar perfil";
+$TabsDashboard = "Painel";
 $DashboardBlocks = "Módulos do Painel";
 $DashboardList = "Lista do Painel";
 $YouHaveNotEnabledBlocks = "Não tem ativo nenhum módulo";
 $BlocksHaveBeenUpdatedSuccessfully = "Os módulos foram atualizados";
+$Dashboard = "Painel";
+$DashboardPlugins = "Plugins do Painel";
 $ThisPluginHasbeenDeletedFromDashboardPluginDirectory = "Este plugin foi excluído da pasta de plugins do painel";
 $EnableDashboardPlugins = "Ativar plugins do painel";
+$SelectBlockForDisplayingInsideBlocksDashboardView = "Selecionar módulos para visualização no painel";
+$ColumnPosition = "Posição (coluna)";
+$EnableDashboardBlock = "Ativar módulo do painel";
+$ThereAreNoEnabledDashboardPlugins = "Não está ativado nenhum plugin do painel";
+$Enabled = "Ativado";
+$ThematicAdvanceQuestions = "Qual é o actual progresso alcançado pelos alunos no Curso? Quanto julga faltar comparando com o programa completo?";
+$ThematicAdvanceHistory = "Histórico do progresso";
+$Homepage = "Página Inicial";
+$Attendances = "Presenças";
+$CountDoneAttendance = "# presenças";
+$AssignUsers = "Definir utilizadores";
+$AssignCourses = "Definir Cursos";
+$AssignSessions = "Definir sessões";
 $CoursesListInPlatform = "Lista de cursos da plataforma";
 $AssignedCoursesListToHumanResourceManager = "Cursos atribuídos ao gestor de RH";
 $AssignedCoursesTo = "Cursos atribuídos a";
@@ -5161,10 +5217,29 @@ Se não for definido, o sistema utilizará o fuso horário do servidor. Se for d
 $UseUsersTimezoneTitle = "Permitir fusos horários definidos por utilizadores";
 $UseUsersTimezoneComment = "Ativar a possibilidade do utilizador definir o seu próprio fuso horário. O campo de fuso horário deve ser visível e editável na seção de administração antes do utilizador escolher o seu fuso horário.\r\nUma vez configurado, os utilizadores serão capazes de ver as possibilidades de fuso horário.";
 $FieldTypeTimezone = "Fuso horário";
+$Timezone = "Timezone";
 $AssignedSessionsHaveBeenUpdatedSuccessfully = "As sessões inscritas foram atualizadas";
 $AssignedCoursesHaveBeenUpdatedSuccessfully = "Os cursos inscritos foram atualizados";
 $AssignedUsersHaveBeenUpdatedSuccessfully = "Os utilizadores inscritos foram atualizados";
 $AssignUsersToX = "Alocar utilizadores a %s";
+$AssignUsersToHumanResourcesManager = "Definir utilizadores para gestor de Recursos Humanos";
+$AssignedUsersListToHumanResourcesManager = "Lista de utilizadores definidos para Gestor de Recursos Humanos";
+$AssignCoursesToX = "Definir cursos para %s";
+$SessionsListInPlatform = "Lista de sessões na plataforma";
+$AssignSessionsToHumanResourcesManager = "Definir sessões para o gestor de Recursos Humanos";
+$AssignedSessionsListToHumanResourcesManager = "Lista de sessões definidas para o gestor de Recursos Humanos";
+$SessionsInformation = "Relatório de sessões";
+$YourSessionsList = "As suas sessões";
+$TeachersInformationsList = "Relatório de professores";
+$YourTeachers = "Os seus professores";
+$StudentsInformationsList = "Relatório de alunos";
+$YourStudents = "Os seus alunos";
+$GoToThematicAdvance = "Ir para o progresso temático";
+$TeachersInformationsGraph = "Relatório gráfico dos professores";
+$StudentsInformationsGraph = "Relatório gráfico dos alunos";
+$Timezones = "Zona horária";
+$TimeSpentOnThePlatformLastWeekByDay = "Tempo dispendido na plataforma na última semana, por dia";
+$AttendancesFaults = "Faltas";
 $AttendanceSheetReport = "Relatório com lista de presenças";
 $YouDoNotHaveDoneAttendances = "Não tem presenças registadas";
 $DashboardPluginsHaveBeenUpdatedSuccessfully = "Os plugins do Painel foram atualizados com sucesso";
@@ -5223,9 +5298,14 @@ $AttachToMedia = "Anexar ao arquivo media";
 $ExamModeWithFinalScoreShowOnlyFinalScoreWithCategoriesIfAvailable = "Mostrar apenas o resultado final, com as categorias (se disponíveis)";
 $Media = "Media";
 $ForceEditingExerciseInLPWarning = "Está autorizado a editar este exercício, apesar de já ter sido utilizado na Rota de Aprendizagem. Se o editar, tente evitar alterar os resultados e objetivos previstos nos conteúdos do mesmo, de modo a evitar que afete resultados já obtidos por outros utilizadores que tenham feito o exercício em causa";
+$DashboardPluginsUpdatedSuccessfully = "Plugins do painel instalados com sucesso";
+$LoginEnter = "Login";
 $AssignSessionsToX = "Definir sessões para %s";
 $CopyExercise = "Copiar este exercício como um exercício novo";
 $CleanStudentResults = "Apagar todos os resultados dos alunos neste exercício";
+$AttendanceSheetDescription = "A folha de presenças permite-lhe especificar as datas em que regista presenças nos cursos em que está inscrito";
+$ThereAreNoRegisteredLearnersInsidetheCourse = "Não existe alunos registados no curso";
+$GoToAttendanceCalendarList = "Ir para a lista de calendário das datas das presenças";
 $AssignCoursesToSessionsAdministrator = "Atribuir cursos a sessões do administrador";
 $AssignCoursesToPlatformAdministrator = "Atribuir cursos ao administrador da plataforma";
 $AssignedCoursesListToPlatformAdministrator = "Lista de cursos atribuídos ao administrador da plataforma";
@@ -5236,16 +5316,60 @@ $AssignedSessionsListToPlatformAdministrator = "Lista de sessões atribuídas ao
 $AssignedSessionsListToSessionsAdministrator = "Lista de sessões atribuídas ao administrador das sessões";
 $EvaluationsGraph = "Gráfico das avaliações";
 $Url = "Endereço URL";
+$ToolCourseDescription = "Descrição do curso";
+$ToolDocument = "Documentos";
+$ToolLearnpath = "Percurso de Aprendizagem";
+$ToolLink = "Links";
+$ToolQuiz = "Testes";
+$ToolAnnouncement = "Anúncios";
+$ToolGradebook = "Avaliações";
+$ToolGlossary = "Glossário";
+$ToolAttendance = "Presenças";
+$ToolCalendarEvent = "Agenda";
+$ToolForum = "Fóruns";
+$ToolDropbox = "Dropbox";
+$ToolUser = "Utilizadores";
+$ToolGroup = "Grupos";
+$ToolChat = "Chat";
+$ToolStudentPublication = "Tarefas";
+$ToolSurvey = "Pesquisas";
+$ToolWiki = "Wiki";
+$ToolNotebook = "Bloco de Notas";
+$ToolBlogManagement = "Projetos";
+$ToolTracking = "Relatório";
+$ToolCourseSetting = "Definições";
+$ToolCourseMaintenance = "Backup";
+$AreYouSureToDeleteAllDates = "Tem a certeza de que deseja apagar todas as datas?";
 $ImportQtiQuiz = "Importar exrecícios Qti2";
 $ISOCode = "código ISO";
 $TheSubLanguageForThisLanguageHasBeenAdded = "Adicionado um sub-idioma a este idioma";
 $ReturnToLanguagesList = "Regressar à lista de idiomas";
+$AddADateTime = "Adicionar um horário";
 $ActivityCoach = "O instrutor da sessão terá todos os direitos e privilégios nos cursos que pertencem à sessão.";
 $AllowUserViewUserList = "Permitir que o utilizador veja a lista de utilizadores";
 $AllowUserViewUserListActivate = "Ativar lista de utilizadores";
 $AllowUserViewUserListDeactivate = "Desativar lista de utilizadores";
+$ThematicControl = "Controle de temas";
+$ThematicDetails = "Detalhes da vista temática";
+$ThematicList = "Visualizar a temática como uma lista";
+$Thematic = "Temática";
+$ThematicPlan = "Plano das temáticas";
+$EditThematicPlan = "Editar o progresso na temática";
+$EditThematicAdvance = "Editar o progresso na temática";
+$ThereIsNoStillAthematicSection = "Ainda não existe uma secção de temática";
+$NewThematicSection = "Nova secção de temática";
+$DeleteAllThematics = "Apagar todas as temáticas";
+$ThematicDetailsDescription = "Detalhes dos tópicos e o seu respetivo plano e progresso. Para indicar um tópico como concluído, selecione a data de acordo com a ordem cronológica e o sistema mostrará todas a datas anteriores como concluídas.";
+$SkillToAcquire = "Competências a adquirir";
+$Infrastructure = "Infraestrutura";
+$DurationInHours = "Duração em horas";
+$YouMustSelectAtleastAStartDate = "Tem de indicar uma data de início";
 $ReturnToLPList = "Voltar à lista";
+$AditionalNotes = "Notas adicionais";
+$StartDateCustom = "Data de início personalizada";
+$StartDateOptions = "Opções de data de início";
 $DoNotDisplayAnyAdvance = "Não mostrar o progresso";
+$ToolCourseProgress = "Progresso no curso";
 $ReUseACopyInCurrentTest = "Reutilizar uma cópia dentro do teste atual";
 $YouAlreadyInviteAllYourContacts = "Já convidou todos os seus contatos";
 $CategoriesNumber = "Categorias";
@@ -5271,6 +5395,7 @@ $LinkOpenBlank = "Abrir numa página diferente";
 $LinkOpenParent = "Abrir na janela de origem";
 $LinkOpenTop = "Abrir no topo";
 $LpPrerequisiteDescription = "Selecionar outra Rota de Aprendizagem como pré-requisito vai ocultar o atual pré-requisito até que o definido esteja completamente cumprido (100%)";
+$QualificationNumeric = "Máximo resultado";
 $ScoreAverageFromAllAttempts = "Pontuação média de todas as tentativas";
 $ExportAllCoursesList = "Exportar todos os cursos";
 $ExportSelectedCoursesFromCoursesList = "Exportar cursos selecionados da seguinte lista";
@@ -5286,10 +5411,34 @@ $CoursesInformation = "Informação dos cursos";
 $LearnpathVisible = "Rota de Aprendizagem tornada visível";
 $LinkInvisible = "Link/ligação tornado visível";
 $SpecialExportsIntroduction = "O recurso exportar especial destina-se a ajudar um instrutor a exportar todos os documentos de um curso numa única etapa. Uma outra opção deixa-o escolher os cursos que pretende exportar, e exportará igualmente os documentos das sessões destes cursos. Esta é uma operação muito pesada, que que recomendamos que não a inicie durante as horas de uso normal do seu portal. Faça-o num período mais calmo. Se não precisar do conteúdo todo de uma só vez, tente exportar os documentos dos cursos diretamente da ferramenta de manutenção dentro do próprio curso.";
+$Literal0 = "zero";
+$Literal1 = "um";
+$Literal2 = "dois";
+$Literal3 = "três";
+$Literal4 = "quatro";
+$Literal5 = "cinco";
+$Literal6 = "seis";
+$Literal7 = "sete";
+$Literal8 = "oito";
+$Literal9 = "nove";
+$Literal10 = "dez";
+$Literal11 = "onze";
+$Literal12 = "doze";
+$Literal13 = "treze";
+$Literal14 = "catorze";
+$Literal15 = "quinze";
+$Literal16 = "dezasseis";
+$Literal17 = "dezassete";
+$Literal18 = "dezoito";
+$Literal19 = "dezanove";
+$Literal20 = "vinte";
 $AllowUserCourseSubscriptionByCourseAdminTitle = "Permite a inscrição de novos utilizadores nos cursos pelo Administrador do Curso";
 $AllowUserCourseSubscriptionByCourseAdminComment = "Ativar esta opção permitirá que o administrador do curso possa inscrever utilizadores no curso";
+$DateTime = "Data e horas";
+$Item = "Item";
 $ConfigureDashboardPlugin = "Configurar Plugin do Painel";
 $EditBlocks = "Editar blocos";
+$Never = "Nunca";
 $YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Caro utilizador, sua conta foi activada na plataforma. Faça o login e desfrute dos seus cursos.";
 $SessionFields = "Campos da sessão";
 $SessionCoachEndDateComment = "Data a partir da qual a sessão será encerrada para os instrutores. Um intervalo adicional de tempo será permitido de forma a que possam exportar conteúdos relevantes de acompanhamento da sessão.";
@@ -5335,6 +5484,9 @@ $ExportAllCertificatesToPDF = "Exportar todos os certificados para PDF";
 $DeleteAllCertificates = "Apagar todos os certificados";
 $ThereAreUsersUsingThisLanguageYouWantToDisableThisLanguageAndSetUsersWithTheDefaultPortalLanguage = "Existem utilizadores que utilizam este idioma. Deseja desativar este idioma e definir para todos os utilizadores o idioma padrão do portal?";
 $SessionCalendar = "Calendário das sessões";
+$ShowLinkBugNotificationTitle = "Mostrar link para reportar erro";
+$ReportABug = "Reportar erro";
+$Letters = "Letras";
 $NewHomeworkEmailAlert = "Enviar email aos utilizadores quando for criada uma atividade";
 $NewHomeworkEmailAlertEnable = "Ativar o envio de um email aos utilizadores quando um trabalho for submetido";
 $NewHomeworkEmailAlertDisable = "Desativar o envio de um email aos utilizadores quando um trabalho for submetido";
@@ -5343,15 +5495,31 @@ $HomeworkHasBeenCreatedForTheCourse = "Foi criado um trabalho/tarefa no curso";
 $PleaseCheckHomeworkPage = "Por favor confira a página dos trabalhos/tarefas";
 $ScormNotEnoughSpaceInCourseToInstallPackage = "Não existe espaço suficiente no curso para comprimir o arquivo atual.";
 $ScormPackageFormatNotScorm = "O arquivo que está a tentar enviar não parece estar no formato SCORM. Verifique se o imsmanifest.xml está dentro do arquivo ZIP que está a tentar enviar.";
+$GradebookNumberDecimals = "Número de decimais";
+$ContactInformation = "Informação de contacto";
+$PersonName = "O seu nome";
+$CompanyName = "Nome da empresa";
+$PersonRole = "Descrição de profissão";
+$CompanyCity = "Cidade da empresa";
+$SendInformation = "Enviar informação";
+$YouMustAcceptLicence = "Deve aceitar os termos de utilização";
+$SelectOne = "Selecionar um";
 $ExerciseDescriptionLabel = "Descrição";
+$CompanyActivity = "Actividade da empresa";
 $PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses = "Por favor, permita-nos um pouco de tempo para inscrevê-lo num de nossos cursos. Se acha que nos esquecemos de si, contacte os administradores do portal. Normalmente pode encontrar os detalhes de contato no rodapé desta página.";
+$DateUnLock = "Desbloquear data";
+$DateLock = "Bloquear data";
 $DisplayAboutNextAdvanceNotDoneAndLastDoneAdvance = "Mostrar a última etapa realizada e a próxima inacabada";
+$FillUsers = "Criar utilizadores";
+$UsersFillingReport = "Relatórios preenchidos pelos utilizadores";
 $EndDateMustBeMoreThanStartDate = "Data final dever ser posterior a data de início";
+$AllUsersAreAutomaticallyRegistered = "Todos os utilizadores são registados automaticamente";
 $YourAccountOnXHasJustBeenApprovedByOneOfOurAdministrators = "A sua conta no %s acabou de ser aprovada por um dos nossos administradores.";
 $Multipleresponse = "Respostas Multiplas";
 $YouCanNowLoginAtXUsingTheLoginAndThePasswordYouHaveProvided = "Agora você pode aceder ao %s usando o login e senha que você forneceu.";
 $AreYouSureToEditTheUserStatus = "Tem certeza que deseja editar o status do usuário?";
 $YouShouldCreateAGroup = "Deve criar um grupo";
+$AddUsersToGroup = "Adicionar utilizadores ao grupo";
 $DisplayCourseOverview = "Visão dos cursos";
 $DisplaySessionOverview = "Visão das sessões";
 $TotalNumberOfMessages = "Número total de mensagens";
@@ -5427,6 +5595,9 @@ $MultipleAnswerTrueFalse = "Resposta múltipla verdadeira/falsa/não sei";
 $MultipleAnswerCombinationTrueFalse = "Combinação verdadeira/falsa/não sei";
 $DontKnow = "Não sei";
 $ConfigLearnpath = "Configuração do Percurso de Aprendizagem";
+$SubscribeUsersToClass = "Inscrever utilizadores na aula";
+$UsersInGroup = "Utilizadores no grupo";
+$Profile = "Perfil";
 $LearnpathUpdated = "Percurso de aprendizagem actualizado";
 $RenameAndComment = "Renomeie e comente";
 $PDFWaterMarkHeader = "Marca d'água a mostrar no cabeçalho de ficheiros exportados em formato PDF";
@@ -5474,6 +5645,7 @@ $EvaluationHasBeenUnLocked = "Avaliação foi desbloqueada";
 $EvaluationHasBeenLocked = "Avaliação foi bloqueada";
 $IfYourLPsHaveAudioFilesIncludedYouShouldSelectThemFromTheDocuments = "Se os seus caminhos de aprendizagem tem arquivos de áudio incluído, você deve selecioná-los a partir dos documentos";
 $UplUploadFailedSizeIsZero = "Ocorreu um problema ao carregar o documento: o arquivo recebido tinha um tamanho de 0 bytes no servidor. Por favor, reveja o arquivo local e caso constate qualquer tipo de corrupção ou danos, tente novamente.";
+$UsersEdited = "Utilizadores actualizados";
 $Over100 = "Acima de 100";
 $UnderMin = "Abaixo do minimo";
 $SelectACourse = "Selecione um curso";
@@ -5540,6 +5712,7 @@ $QuestionComment = "Comentário à questão";
 $UnknowQuestion = "Questão desconhecida";
 $DeleteSurveyGroup = "Apagar grupo de questionários";
 $ErrorOccurred = "Ocorreu um erro";
+$UsersNotRegistered = "Utilizadores não registados";
 $DateExpiredNotBeLessDeadLine = "A data de expiração não pode ser inferior à da data limite de conclusão da tarefa/trabalho";
 $NotRevised = "Sem revisão";
 $DirExists = "Esta operação não é permitida, já existe uma pasta com este nome.";
@@ -5565,6 +5738,7 @@ $ReviewQuestions = "Rever as questões selecionadas";
 $YouTriedToResolveThisExerciseEarlier = "Já tentou resolver este exercício anteriormente";
 $ThereAreNoQuestionsForThisExercise = "Não há questões neste exercício";
 $ContinueTest = "Continuar com o teste";
+$NumWikilinks = "Número de links da Wiki";
 $XQuestionsWithTotalScoreY = "%d questões, para um resultado total (todas as questões) de  %s";
 $UploadedDocuments = "Documentos enviados";
 $QuestionLowerCase = "Questão";
@@ -5612,6 +5786,7 @@ $ExerciseProgress = "Progresso no exercício";
 $SelectGradebook = "Selecionar avaliação";
 $AllowTextAssignments = "Permitir a entrega de tarefas/trabalhos a partir do editor online";
 $YouAlreadySentAPaperYouCantUpload = "Já enviou um trabalho/tarefa, não pode enviar outro";
+$SearchUsers = "Procurar utilizadores";
 $AddAsAnnouncement = "Adicionar como anúncio";
 $RandomQuestionByCategory = "Questões aleatórias por categoria";
 $QuestionDisplayCategoryName = "Mostrar categoria de questões";
@@ -5652,6 +5827,7 @@ $CantUploadDeleteYourPaperFirst = "Não pode enviar este trabalho/tarefa. Por fa
 $StudentsWhoAreTakingTheExerciseRightNow = "Alunos que estão fazendo o exercício agora";
 $ReportByQuestion = "Relatório por questão";
 $LiveResults = "Resultados ao vivo";
+$ShowToAllUsers = "Mostrar a todos os utilizadores";
 $NumberOfPublishedExercises = "# de exercícios publicados";
 $NumberOfPublishedLps = "# de Rotas de Aprendizagem publicadas";
 $AddCourseDescription = "Adicione uma descrição do curso";
@@ -5660,6 +5836,8 @@ $UseTheMessageBelowToAddSomeComments = "Usar a seguinte mensagem para adicionar
 $SendRecord = "Enviar gravação";
 $DownloadLatestRecord = "Descarregar gravação";
 $OralExpression = "Expressão oral";
+$UsersDeleted = "Utilizadores eliminados";
+$UsersAdded = "Utilizadores adicionados";
 $CongratulationsYouPassedTheTest = "Parabéns! Passou no teste!";
 $YouDidNotReachTheMinimumScore = "Não atingiu a pontuação mínima";
 $EndTest = "Finalizar teste";
@@ -5698,4 +5876,7 @@ $casAddUserActivateLDAP = "Configuração interna de CAS";
 $UpdateUserInfoCasWithLdapTitle = "Configuração interna de CAS";
 $UpdateUserInfoCasWithLdapComment = "Configuração interna de CAS";
 $CourseDescriptions = "Descrições do curso";
+$ShowSessionDescriptionTitle = "Mostrar a descrição da sessão";
+$DocumentsDefaultVisibilityDefinedInCourseTitle = "Visibilidade do documento definida no curso";
+$DocumentsDefaultVisibilityDefinedInCourseComment = "Visibilidade do documento padrão para todos os cursos";
 ?>

+ 145 - 0
main/lang/slovenian/trad4all.inc.php

@@ -1120,6 +1120,7 @@ $DBSetting = "Nastavitve podatkovne baze MySQL";
 $MainLang = "Osnovni jezik";
 $Licence = "Licenca";
 $LastCheck = "Zadnje preverjanje pred namestitvijo";
+$AutoEvaluation = "Samo-evalvacija";
 $DbPrefixForm = "MySQL predpona";
 $DbPrefixCom = "Pusti prazno, če ni zahtevano";
 $EncryptUserPass = "Kodiranje gesla v podatkovni bazi";
@@ -2605,11 +2606,13 @@ $NoPosts = "Ni objav";
 $WithoutAchievedSkills = "Brez doseženih kompetenc";
 $TypeMessage = "Vnesite vaše sporočilo!";
 $ConfirmReset = "Želis odstraniti vsa sporočila?";
+$MailCronCourseExpirationReminderBody = "Spoštovani %s. Našo pozornost je pritegnilo dejstvo, da niste zaključili s tečajem %s čeprav je datum poteka tečaja nastavljen na %s. Pomeni da je preostanek dni za dokončanje zgolj še %s. Naj vas opomnimo, da se tečaj izvaja le enkrat letno, zato vas s tem sporočilom še enkrat vabimo, da tečaj zaključite pravočasno. V tečaj se lahko vrnete z obiskom platfome preko naslova %s. Z lepimi pozdravi, ekipa %s";
 $MailCronCourseExpirationReminderSubject = "Nujno: Opozorilo o poteku tečaja %s";
 $ExerciseAndLearningPath = "Testi in učne poti";
 $LearningPathGradebookWarning = "Opozorilo: v redovalnici je moč voditi ocene testov, ki so del učnih poti. Če je učna pot v celoti vključena v ocenjevanje, potem so v njej vsebovani testi verjetno že del ocenjevanja. Ocena učne poti bazira na odstotku dokončanosti, medtem, ko ocena samih testov bazira na doseženem točkovnem rezultatu. Ocena vprašalnika je odvisna od tega, ali je uporabnik odgovoril(1) ali ni(0). Preverite delovanje ocenjevanja pred uporabo !";
 $ChooseEitherDurationOrTimeLimit = "Izberite trajanje ali časovno omejitev";
 $ClearList = "Počisti seznam";
+$SessionBanner = "Spletna pasica (banner) seje";
 $ShortDescription = "Kratek opis";
 $TargetAudience = "Ciljna publika";
 $OpenBadgesActionCall = "Preoblikuj vaš virtulni kampus v učno izkušnjo bazirajočo na osnovi veščin oz. kompetenc";
@@ -3817,6 +3820,7 @@ $Area = "Področje";
 $InProcess = "V obdelavi";
 $CourseDescriptionUpdated = "Opis tečaja je bil ažuriran";
 $CourseDescriptionDeleted = "Opis tečaja je bil odstranjen";
+$PreventSessionAdminsToManageAllUsersComment = "Z omogočitvijo te funkcije bodo administratorji seje v upravljalnem panelu zgolj videli uporabnike, ki so jih ustvarili.";
 $InvalidId = "Vstop ni uspel. Napačno uporabniško ime ali geslo";
 $Pass = "Geslo";
 $Advises = "Nasveti";
@@ -5210,6 +5214,7 @@ $FirstUseTip = "Ko vstopate v portal prvič, je najboljši način za spoznavanje
 $Version_ = "Različica";
 $UpdateFromLMSVersion = "Nadgradi iz Chamilo";
 $PleaseSelectInstallationProcessLanguage = "Izberite jezik, ki ga želite uporabljati med namestitvijo";
+$AsciiSvgComment = "Omogoči AsciiSVG vtič v WYSIWYG urejevalniku za izris diagramov iz matematičnih funkcij";
 $HereAreTheValuesYouEntered = "Tule so vrednosti, ki ste jih vnesli";
 $PrintThisPageToRememberPassAndOthers = "Da ne bi pozabili gesla in ostalih pomembnih nastavitev, natisnite vsebino te strani in jo shranite na varno mesto";
 $TheInstallScriptWillEraseAllTables = "Namestitveni program bo nepovratno odstranil vse tabele izbrane podatkovne baze. Strogo priporočamo da pred nadaljevanjem postopka izvedete njeno popolno arhiviranje.";
@@ -5300,6 +5305,7 @@ $SendEmailToAdminComment = "Pošlji e-poštno obvestilo upravitelju platforme vs
 $UserTag = "Uporabnikova oznaka";
 $SelectSession = "Izberi sejo";
 $SpecialCourse = "Poseben tečaj";
+$UploadCorrection = "Naloži popravek";
 $MathASCIImathMLTitle = "ASCIImathML matematični urejevalnik";
 $MathASCIImathMLComment = "Omogoči ASCIImathML matematični urejevalnik";
 $YoutubeForStudentsTitle = "Dovoli tečajnikom vstavljane video iz YouTube";
@@ -5471,6 +5477,7 @@ $ViewUsersWithTask = "Prejete naloge (zadolžitve)";
 $ReminderMessage = "Pošlji opomnik";
 $DateSent = "Podatki so bili poslani";
 $ViewUsersWithoutTask = "Poglej neizvršene/manjkajoče naloge";
+$AsciiSvgTitle = "Omogoči AsciiSVG";
 $SuggestionOnlyToEnableSubLanguageFeatureOrUpgradeProcess = "Namig: zgolj v primeru, da želite omogočiti zmožnost uporabe pod-jezikov";
 $ThematicAdvance = "Tematsko napredovanje";
 $EditProfile = "Uredi profil";
@@ -6135,6 +6142,7 @@ $ChatFiles = "Zgodovina konverzacije iz klepeta";
 $Flash = "Flash";
 $Video = "Video";
 $Images = "Slike";
+$UploadCorrections = "Naloži popravke";
 $Text2AudioTitle = "Omogoči online storitve za pretvorbo besedila in zvoka.";
 $Text2AudioComment = "Online orodje za pretvorbo besedila v zvok. Uporablja sintezo govora in tehnologije za proizvajanje govora.";
 $ShowUsersFoldersTitle = "Prikaži uporabniške mape v orodju dokumentov";
@@ -7165,6 +7173,8 @@ $DataTableSearch = "Išči";
 $HideColumn = "Skrij stolpec";
 $DisplayColumn = "Prikaži stolpec";
 $LegalAgreementAccepted = "Pogoji rabe sprejeti";
+$WorkEmailAlertActivateOnlyForTeachers = "Aktiviraj e-poštno obveščanje o objavi izdelkov zgolj za učitelje";
+$WorkEmailAlertActivateOnlyForStudents = "Aktiviraj e-poštno obveščanje o objavi novih izdelkov zgolj za tečajnike";
 $Uncategorized = "Brez kategorije";
 $NaturalYear = "Naravno leto";
 $AutoWeight = "Avtomatično uteži";
@@ -7191,10 +7201,12 @@ $RequestStatus = "Zahtevaj nov status";
 $StatusRequestMessage = "Prijavljeni ste s privzetimi dovoljenji. Več pravic lahko zahtevate preko naslednjega zahtevka";
 $ReasonIsMandatory = "Polje razloga je potrebno izpolniti. Izpolnite ga pred odpošiljanjem zahtevka.";
 $RequestSubmitted = "Vaš zahtevek je bil odposlan.";
+$RequestFailed = "Trenutno nismo zmožni izpolniti vaše zahteve. Prosimo, da kontaktirate vašega upravitelja portala.";
 $InternalLogin = "Notranja prijava";
 $AlreadyLoggedIn = "Ste že prijavljeni.";
 $Draggable = "Urejanje zaporedja";
 $Incorrect = "Nepravilno";
+$YouNotYetAchievedCertificates = "Trenutno še niste pridobili nobenega certifikata. Nadaljujte z izvajanjem učne poti za njegovo pridobitev.";
 $SearchCertificates = "Poišči certifikate";
 $TheUserXNotYetAchievedCertificates = "Tečajnik %s še ni pridobil nobenega certifikata";
 $CertificatesNotPublic = "Potrdila niso javno dostopna";
@@ -7206,6 +7218,7 @@ $DefaultInstallAdminFirstname = "Janez";
 $DefaultInstallAdminLastname = "Novak";
 $AttendanceUpdated = "Prisotnost je bila ažurirana";
 $HideHomeTopContentWhenLoggedInText = "Skrije zgornjo vsebino domače strani po prijavi v sistem";
+$HideHomeTopContentWhenLoggedInComment = "Na domači strani platforme ta možnost dovoljuje, da uvodni blok ni prikazan(prikazana ostanejo samo npr. obvestila portala) za vse tiste uporabnike, ki so že prijavljeni v portal. Splošen uvodni blok bo v tem primeru prikazan zgolj trenutno neprijavljenim uporabnikom.";
 $HideGlobalAnnouncementsWhenNotLoggedInText = "Skrij globalna obvestila pred anonimnimi obiskovalci";
 $HideGlobalAnnouncementsWhenNotLoggedInComment = "Skrij obvestila platforme pred anonimnimi obiskovalci in jih prikaži zgolj prijavljenim uporabnikom.";
 $CourseCreationUsesTemplateText = "Uporabi predlogo tečaja za kreiranje novih tečajev";
@@ -7224,29 +7237,76 @@ $ShowGroupForaInGeneralToolText = "Prikaži forume skupin v splošnem forumu";
 $ShowGroupForaInGeneralToolComment = "Prikažu forume skupin v okviru forumov tečaja. Opcija je privzeto omogočena(vidnost posameznega foruma skupine je določena z nastavitvijo vidnosti dotičnega foruma skupine). V primeru, da možnost ni omogočena, so forumi dostopni zgolj preko orodjij skupine, pa če so javni ali ne.";
 $TutorsCanAssignStudentsToSessionsText = "Tutor lahko dodeli tečajnike sejam";
 $TutorsCanAssignStudentsToSessionsComment = "Omogočena možnost dovoljuje tutorjem/coache-jem vpis novih tečajnikov v seje. Sicer je opcija na voljo zgolj upraviteljem in upraviteljem sej.";
+$UniqueAnswerImagePreferredSize200x150 = "Velikost slik se bo avtomatično prilagodila na 200x150 pik (povečala ali pomanjšala). Za boljši prikav v vprašanjih priporočamo, da naložite slike, ki že imajo omenjene razsežnosti.";
 $AllowLearningPathReturnLinkTitle = "Prikaži povezavo za vrnitev iz učnih poti";
 $AllowLearningPathReturnLinkComment = "Onemogoči to možnost, če želiš skriti povezavo 'Nazaj na domačo stran tečaja' v učnih poteh.";
 $HideScormExportLinkTitle = "Skrij povezavo za izvoz SCORM vsebin";
 $HideScormExportLinkComment = "Skrij ikono izvoza za SCORM v seznamu učnih poti";
 $HideScormCopyLinkTitle = "Skrij možnost kopiranja SCORM";
+$HideScormCopyLinkComment = "Skrij ikono za kopiranje učne poti v orodjih seznama učnih poti.";
 $HideScormPdfLinkTitle = "Skrij možnost izvoza učnih poti v PDF";
 $HideScormPdfLinkComment = "Skrij ikono za izvoz učne poti v PDF preko seznama učnih poti";
+$SessionDaysBeforeCoachAccessTitle = "Št. dni za dostop učitelja pred začetkom seje";
+$SessionDaysBeforeCoachAccessComment = "Privzeto število dni, v katerih lahko učitelj dostopa do svojo seje pred uradnim začetkom seje (začetnim datumom seje).";
+$SessionDaysAfterCoachAccessTitle = "Privzeto št. dni dostopa za učitelja po koncu seje";
+$SessionDaysAfterCoachAccessComment = "Privzeto število dni, v katerih učitelj še lahko dostopa do svje seje po datumu uradnega zaključka seje (končnega datuma seje).";
 $PdfLogoHeaderTitle = "Logotip glave PDF dokumenta";
+$PdfLogoHeaderComment = "Določa, ali se uporabi slika iz css/themes/[tvoj-css]/images/pdf_logo_header.png kot logotip zaglavja PDF datoteke v vseh PDF izvozih (namesto običajnega logotipa definiranega s pdefinicijo v portalu)";
 $OrderUserListByOfficialCodeTitle = "Uredi uporabnike po uradni kodi";
+$OrderUserListByOfficialCodeComment = "Uporabite 'uradno kodo' za razvrščanje uporabnikov platforme namesto njihovih imen in priimkov.";
+$AlertManagerOnNewQuizTitle = "Privzeto e-poštno obveščanje o novih testih";
+$AlertManagerOnNewQuizComment = "Ali želite, da so upravitelji tečaja (učitelji) obveščeni o izvednih testih tečajnikov? Ta izbira je privzeta za vse novo ustvarjene tečaje, učitelji pa jo še vedno lahko spremenijo v okviru nastavitev vsakega tečaja posebej.";
 $ShowOfficialCodeInExerciseResultListTitle = "Prikaži uradno kodo v rezultatih testov";
+$ShowOfficialCodeInExerciseResultListComment = "Prikaz uporabnikove uradne kode v izvozu rezultatov testov.";
 $HidePrivateCoursesFromCourseCatalogTitle = "Ne prikaži privatnih/zaprtih tečajev v katalogu tečajev";
+$HidePrivateCoursesFromCourseCatalogComment = "Ali bodo privatni tečaji objavljeni v katalogu tečajev. Opcija ima smisel le v primeru, da katalog uproabljate pretežno za omogočanje avtomatičnega vpisa uporabnikov v tečaje.";
+$CoursesCatalogueShowSessionsTitle = "Katalog sej in tečajev";
+$CoursesCatalogueShowSessionsComment = "Prikazovanje zgolj tečajev, zgolj sej ali tečajev in sej v katalogu tečajev.";
+$AutoDetectLanguageCustomPagesTitle = "Omogoči avtomatično detekcijo jeziki na lastnih (custom) straneh portala.";
+$AutoDetectLanguageCustomPagesComment = "Če uporabljate lastne (uporabniško definirane) strani in želite na strani uporabiti detekcijo jezika, potem omogočite to možnost. Možnost izklopite v primeru, da stran želite prikazano v jeziku, privzeto definiranem za portal.";
 $LearningPathShowReducedReportTitle = "Učne poti: prikaži skrajšano poročilo";
+$LearningPathShowReducedReportComment = "Prikaz skrajšane različice napredka tečaja tečajnikom znotraj orodja učnih poti kadar tečajnik pregleduje svoj napredek.";
+$AllowSessionCourseCopyForTeachersTitle = "Dovoli učiteljem kopiranje med sejami.";
 $HideLogoutButtonTitle = "Skrij odjavni gumb";
 $HideLogoutButtonComment = "Skrije odjavni gumb. Uporaba pride v poštev v primeru, da uporabljate zunanji mehanizem za prijavo/odjavo, npr. SSO, Shibboleth, ...";
 $RedirectAdminToCoursesListTitle = "Preusmeri upravitelja na seznam tečajev";
+$CourseImagesInCoursesListTitle = "Uporabniško definirane ikone v tečajih";
+$CourseImagesInCoursesListComment = "Uporabi slike iz tečaja kot ikono tečaja (namesto privzete ikone - zelene table).";
+$StudentPublicationSelectionForGradebookTitle = "Naloge, ki pridejo v poštev za ocenjevanje v redovalnici.";
+$StudentPublicationSelectionForGradebookComment = "V orodju Naloge lahko tečajniki naložijo več kot eno datoteko. V takem primeru je potrebno določiti, katera izmed njih je tista, ki se upošteva pri ocenjevanju v redovalnici. Izbira je odvisna od vaše uporabljene metodologije. Uporabite 'prva' (upoštevanje časovnosti, prvi rezultat je relevanten rezultat,...) oz. 'zadnja' (upošteva sodelovanje, adaptivno delo,...)";
 $FilterCertificateByOfficialCodeTitle = "Certifikati filtrirani po uradni kodi";
 $FilterCertificateByOfficialCodeComment = "Dodaj filter glede tečajnikove uradne kode v seznamu certifikatov";
 $DocumentDefaultOptionIfFileExistsTitle = "Privzeti način nalaganja dokumentov";
+$DocumentDefaultOptionIfFileExistsComment = "Privzeta metoda za nalaganje v področje dokumentov tečaja. Lahko se določi/spremeni v trenutku nalaganja datoteke ob vsakokratnem nalaganju, ta vrednost pa predstavlja zgolj privzeto splošno vrednost.";
+$OpenBadgesBackpackUrlTitle = "OpenBadge URL nahrbtnika";
+$OpenBadgesBackpackUrlComment = "URL strežnika OpenBadge nahrbtnika, ki bo privzeto uporabljen za vse uporabnike, ki čakajo na izvoz svojih OpenBadge značk. Privzeto je to zastonjkarski Mozilla Foundation backpack repozitorij na naslovu: http://backpack.openbadges.org";
 $CookieWarningTitle = "Piškotki: obvestilo o zasebnosti";
+$CatalogueAllowSessionAutoSubscriptionComment = "Če je omogočena *IN* je katalog seje omogočen, se uporabniki v aktivne seje lahko brez vsakršnih omejitev vpisujejo sami preko gumba za vpis v sejo.";
+$HideCourseGroupIfNoToolAvailableTitle = "Skrij skupino tečaja brez orodij";
+$HideCourseGroupIfNoToolAvailableComment = "V primeru, da v definirani skupini ni na voljo nobenega izmed orodij in tečajnik ni dodeljen tej skupini, potem nevpisanim uporabnikom tako skupina ni vidna v seznamu skupin.";
 $CatalogueAllowSessionAutoSubscriptionTitle = "Avtomatični vpis v katalog seje";
 $SoapRegistrationDecodeUtf8Title = "Spletne storitve : dekodiraj UTF-8";
+$AttendanceDeletionEnableTitle = "Prisotnost : omogoči brisanje";
+$AttendanceDeletionEnableComment = "Privzeto obnašanje Chamilo platforme je, da 'skrije' listo prisotnosti, namesto, da bi jo odstranila, za primer, da se je učitelj izvedel brisanje po pomoti. Omogočanje brisanja dovoljuje učitelju, da dejansko trajno odstrani listo prisotnosti.";
+$SessionAdminPermissionsLimitTitle = "Omeji dovoljenja za upravitelje seje";
+$SessionAdminPermissionsLimitComment = "Če je možnost omogočena, bosta upraviteljem seje na voljo zgolj bloka: 'Uporabniki' s funkcijo 'Dodaj uporabnika' ter blok 'Seje' z možnostjo 'Seznam sej'.";
+$ShowSessionDescriptionTitle = "Prikaži opis seje";
+$ShowSessionDescriptionComment = "Prikaže opis seje, če je ta opisana (na straneh, ki se tičejo seje, v okviru sledenja sej, ...)";
 $CertificateHideExportLinkStudentTitle = "Certifikati: skrij povezavo za izvoz pred tečajniki";
+$CertificateHideExportLinkStudentComment = "V primeru, da je možnost omogočena, tečajniki ne morejo izvoziti svojih certifikator v PDF. Možnost je na voljo, ker je kvaliteta izvoza močno odvisna od natančne HTML strukture predloge certifikata. V primeru slabe kvalitete je bolje ne dopustiti uporabe takega certifikata.";
+$CertificateHideExportLinkTitle = "Certifikati : skrij povezavo do izvoza v PDF";
+$CertificateHideExportLinkComment = "Omogoči popolno odstranitev možnosti za izvoz certifikatov v PDF (za vse uporabnike). Če je možnost omogočena, vključuje skrivanje izvoza pred tečajniki.";
+$DropboxHideCourseCoachTitle = "Nabiralnik: skrij učitelja(coach) tečaja";
+$DropboxHideCourseCoachComment = "Skrije učitelja(coach) seje v seznamu naslovnikov nabiralnika pri pošiljanju dokumenta s strani učitelja tečajnikom seje.";
+$SSOForceRedirectTitle = "SSO : prisili preusmeritev";
+$SSOForceRedirectComment = "S to opcijo prisilite uporabnika v avtentifikacijo na želenem avtifikacijskem portalu, če je SSO omogočen. To možnost aktivirajte šele ko ste prepričani, da je procedura SSO-ja pravilno nastavljena, sicer se vam lahko zgodi, da se ne boste mogli več prijaviti v portal (v tem primeru spremenite nastavitve za SSO v tabeli settings_current osnovne podatkovne baze portala s pomočjo direktnega dostopa do baze).";
+$SessionCourseOrderingTitle = "Ročno razvrščanje tečajev seje";
+$SessionCourseOrderingComment = "Z izbiro te opcije omogočite upraviteljem seje razvrščanje tečajev znotraj seje v poljubnem vrstnem redu. Če opcija ni omogočena se tečaji razvrstijo v abecednem vrstnem redu glede na naziv tečaja.";
+$AddLPCategory = "Dodaj kategorijo učnih poti";
+$WithOutCategory = "Brez kategorije";
+$ItemsTheReferenceDependsOn = "Elementi od katerih je referenca odvisna";
 $UseAsReference = "Uporabi kot referenco";
+$Dependencies = "Elementi, ki so odvisni od reference";
 $SetAsRequirement = "Postavi kot zahtevo";
 $AddSequence = "Dodaj novo zaporedje";
 $ResourcesSequencing = "Zaporednost virov";
@@ -7256,11 +7316,18 @@ $SeeCourse = "Poglej tečaj";
 $XPoints = "%s točk";
 $FromXUntilY = "Od %s do %s";
 $SubscribeUsersToLp = "Vpiši tečajnike v učno pot";
+$SubscribeGroupsToLp = "Vpiši skupine v učno pot";
+$CreateForumForThisLearningPath = "Ustvari forum za to učno pot";
 $ByDate = "Po datumu";
 $ByTag = "Po oznaki";
 $GoToCourseInsideSession = "Pojdi na tečaj v seji";
 $EnableGamificationMode = "Omogoči 'igralni' način";
 $DisableGamificationMode = "Onemogoči 'igralni' način";
+$CatalogueShowOnlyCourses = "V katalogu prikaži zgolj tečaje";
+$CatalogueShowOnlySessions = "V katalogu prikaži zgolj seje";
+$CatalogueShowCoursesAndSessions = "V katalogu prikaži tako tečaje kot tudi seje";
+$AccessDates = "Datumi dostopov za tečajnike";
+$CoachDates = "Datumi dostopov za učitelje";
 $ChatWithXUser = "Klepetaj z %s";
 $StartVideoChat = "Zaženi video klic";
 $FieldTypeVideoUrl = "Video URL";
@@ -7268,6 +7335,9 @@ $InsertAValidUrl = "Vstavite veljaven URL";
 $SeeInformation = "Poglej informacijo";
 $ShareWithYourFriends = "Deli s prijatelji";
 $ChatRoomName = "Ime klepetalnice";
+$TheVideoChatRoomXNameAlreadyExists = "Video klepetalnica %s že obstaja.";
+$ChatRoomNotCreated = "Klepetalnice ni mogoče ustvariti";
+$TheXUserBrowserDoesNotSupportWebRTC = "Brskalnik %s v osnovi(privzeto) ne podpira video prenosov. Oprostite.";
 $FromDateX = "Od %s";
 $UntilDateX = "Do %s";
 $GraphDependencyTree = "Drevo odvisnosti";
@@ -7277,11 +7347,13 @@ $GradeGeneratedOnX = "Ocena je bila ustvarjena dne %s";
 $ExerciseAvailableSinceX = "Vaja je na voljo od %s";
 $ExerciseIsActivatedFromXToY = "Test je omogočen od %s do %s";
 $SelectSomeOptions = "Izberi nekaj možnosti";
+$AddCustomCourseIntro = "S klikom na ikono za urejanje lahko dodate uvodno besedilo k temu tečaju";
 $SocialGroup = "Socialna skupina";
 $RequiredSessions = "Zahtevane seje";
 $DependentSessions = "Odvisne seje";
 $ByDuration = "Po trajanju";
 $ByDates = "Po datumih";
+$SendAnnouncementCopyToDRH = "Pošlji kopijo upravitelju (HRM) človeških virov izbranih tečajnikov";
 $PoweredByX = "Ustvarjeno s pomočjo %s";
 $AnnouncementErrorNoUserSelected = "Izberite vsaj enega tečajnika. Obvestilo ni bilo shranjeno.";
 $NoDependencies = "Ni odvisnosti";
@@ -7293,6 +7365,8 @@ $FieldTypeFileImage = "Slikovna datoteka";
 $FieldTypeFloat = "Necela vrednost";
 $DocumentsDefaultVisibilityDefinedInCourseTitle = "Vidnost dokumentov definirana v tečaju";
 $DocumentsDefaultVisibilityDefinedInCourseComment = "Privzeta vidnost dokumentov za vse tečaje";
+$HtmlPurifierWikiTitle = "HTMLPurifier v področju Wiki-ja";
+$HtmlPurifierWikiComment = "Omogoči HTML Purifier v orodju Wiki (poveča se varnost, vendar je možnost zmanjšanja učinka stilov na samo besedilo)";
 $ClickOrDropFilesHere = "Kliknite ali izpustite datoteko";
 $RemoveTutorStatus = "Odstrani vlogo tutorja";
 $ImportGradebookInCourse = "Uvozi redovalnico iz osnovnega tečaja";
@@ -7302,6 +7376,77 @@ $LatestLoginInCourse = "Zadnji dostop do tečaja";
 $LatestLoginInPlatform = "Zadnja prijava v platformo";
 $FirstLoginInPlatform = "Prva prijava v platformo";
 $FirstLoginInCourse = "Prvi dostop do tečaja";
+$LoadMoreComments = "Naloži več komentarjev";
+$ShowProgress = "Prikaži napredek";
+$XPercent = "%s %%";
+$CheckRequirements = "Preveri zahteve";
+$ParentLanguageX = "Izhodiščni (nadrejeni) jezik: %s";
+$RegisterTermsOfSubLanguageForX = "Definirajte nove izraze za pod-jezik %s tako, da poiščete nekaj obstoječih izrazov, nato vsak prevod potrdite s klikom na gumb za shranjevanje. Po končanem prevodu preklopite na prevajan jezik in preverite pojavitev prevedenih izrazov.";
+$SessionRequirements = "Zahteve seje";
+$IsRequirement = "Je zahteva(no)";
+$ConsiderThisGradebookAsRequirementForASessionSequence = "Smatraj to redovalnico kot zahtevo za dokončanje tečaja (vpliva na sekvence seje)";
+$DistinctUsersLogins = "Prijave uporabnikov (razločevanje uporabnikov)";
+$AreYouSureToSubscribe = "Ste prepričani, da se želite vpisati?";
+$CheckYourEmailAndFollowInstructions = "Preverite nabiralnik svoje elektronske pošte in sledite navodilom.";
+$LinkExpired = "Povezava je potekla. Prosimo, poskusite ponovno.";
+$ResetPasswordInstructions = "Navodilo za menjavo gesla";
+$ResetPasswordCommentWithUrl = "To sporočilo ste prejeli, ker ste sami (ali pa se je nekdo predstavljal za vas) zahtevali menjavo gesla. Za nastavitev novega gesla, je tega potrebno predhodno aktivirati. Za to sledite naslednji povezavi %s. V primeru, da VI niste zahtevali te zamenjave, prosimo, da ignorirate to sporočilo. V primeru, da se to sporočilo ponavlja, vas prosimo, da kontaktirajte aupravitelja portala.";
+$CronRemindCourseExpirationFrequencyComment = "Število dni pred potekom tečaja ko se pošlje e-poštni opomnik o poteku tečaja";
+$MailCronCourseFinishedSubject = "Konec tečaja %s";
+$MailCronCourseFinishedBody = "Spoštovani %s. Zahvaljujemo se vam za sodelovanje v tečaju %s. Upamo, da ste uspeli doseči ustrezno stopnjo znanja in veščin predpisanih s cilji tečaja in da ste v njem uživali. Stanje in rezultate dosežene med izvajanje, si lahko ogledate preko povezav v razdelku Moj napredek. Uspešno še naprej. Z prisorčnimi pozdravi, ekipa %s.";
+$GenerateDefaultContent = "Generiraj privzeto vsebino";
+$ThanksForYourSubscription = "Hvala za vaš vpis";
+$XTeam = "ekipa %s.";
+$YouCanStartSubscribingToCoursesEnteringToXUrl = "Lahko pričnete z vpisom v tečaje preko povezave %s";
+$VideoUrl = "URL videa";
+$AddAttachment = "Dodaj priponko";
+$FieldTypeOnlyLetters = "zgolj črke besedila";
+$FieldTypeAlphanumeric = "zgolj alfanumerični znaki besedila";
+$OnlyLetters = "Zgolj črke";
+$RefreshBlanks = "Osveži izraze";
+$WordTofind = "Iskana beseda";
+$BlankInputSize = "Velikost vnosnega okvirčka";
+$DateFormatLongNoDayJS = "dd. MM yy";
+$TimeFormatNoSecJS = "HH:mm";
+$AtTime = "ob";
+$SendSubscriptionNotification = "Pošlji e-poštno sporočilo ob vpisu";
+$SendAnEmailWhenAUserBeingSubscribed = "Pošlje e-poštno sporočilo ob vsakem vpisu tečajnika v sejo.";
+$SelectDate = "Izberi datum";
+$OnlyLettersAndSpaces = "Zgolj črke in številke";
+$OnlyLettersAndNumbersAndSpaces = "Zgolj črke, številke in presledek";
+$FieldTypeLettersSpaces = "Besedilo iz črk in presledkov";
+$CronRemindCourseFinishedActivateTitle = "Pošlji obvestilo o zaključku tečaja";
+$FieldTypeAlphanumericSpaces = "Besedilo iz alfanumeričnih znakov in presledkov";
+$ThanksForRegisteringToSite = "Zahvaljujemo se vam za vpis v %s.";
+$AllowCoachFeedbackExercisesTitle = "Dovoli učiteljem(coach) komentiranje in pregled testov.";
+$AllowCoachFeedbackExercisesComment = "Dovoli učiteljem(coach) urejenje povratnih informacij med pregledom testov.";
+$PreventMultipleSimultaneousLoginTitle = "Prepreči sočasne (simultane) prijave.";
+$PreventMultipleSimultaneousLoginComment = "Prepreči uporabnikom da se z istim računom sočasno prijavijo več kot enkrat. To je ugodna možnost v primeru plačljivih (pay-per-access) tečajev, lahko pa se izkaže za zelo restriktivno možnost med testiranjem, ker se lahko z izbranim računom v portal prijavimo zgolj enkrat.";
+$ShowAdditionalColumnsInStudentResultsPageTitle = "Prikaži dodatne stolpce v redovalnici";
+$ShowAdditionalColumnsInStudentResultsPageComment = "Prikaže dodatne stolpce v redovalnici v načinu 'pogled tečajnikov', ki vključuje najboljše rezultate vseh tečajnikov, relativno mesto tečajnika, ki vrši vpogled, ter povprečen rezultat celotne skupine tečajnikov (primerjalni rezultati).";
+$CourseCatalogIsPublicTitle = "Objavi katalog tečajev";
+$CourseCatalogIsPublicComment = "Naredi katalog tečajev dostopen anonimnim uporabnikom (javen dostop do kataloga) brez predhodne prijave v portal.";
+$ResetPasswordTokenTitle = "Omogoči žeton za ponastavlje gesla (pass. reset token)";
+$ResetPasswordTokenComment = "Ta opcija omogoča generiranje žetona za enkratno uporabo, ki se pošlje uporabniku z e-poštnim sporočilom za omogočitev ponastavitve gesla.";
+$ResetPasswordTokenLimitTitle = "Časovna omejitev žetona za ponastavitev gesla";
+$ResetPasswordTokenLimitComment = "Število sekund pred potekom generiranega žetona; ko ta postane neuporaben in je potrebno ustvariti novega.";
+$ViewMyCoursesListBySessionTitle = "Poglej moje tečaje po sejah";
+$ViewMyCoursesListBySessionComment = "Omogoči dodatno stran 'Moji tečaji', kjer se seje pojavljajo kot del tečajev v nasprotju z obratnim (običajnim) načinom.";
+$DownloadCertificatePdf = "Prenesi certifikat v obliki PDF";
+$DownloadReportPdf = "Prenesi poročilo v obliki PDF";
+$ShowFullSkillNameOnSkillWheelTitle = "Prikaži polno ime veščine na drevesu kompetenc";
+$DBPort = "Vrata";
+$CreatedBy = "Ustvaril(a)";
+$UploadMyAssignment = "Naloži mojo nalogo";
+$Inserted = "Vstavljeno";
+$YourBroswerDoesNotSupportWebRTC = "Tvoj brskalnik ne omogoča naravnega video videokonferenčnega prenosa.";
+$OtherTeachers = "Ostali učitelji";
+$CourseCategory = "Kategorija tečaja";
+$VideoChatBetweenUserXAndUserY = "Video klepet med %s in %s";
+$Enable = "Omogoči";
+$Disable = "Onemogoči";
+$AvoidChangingPageAsThisWillCutYourCurrentVideoChatSession = "Izogibajte se menjavi strani, ker bo menjava prekinila trenutno sejo videoklepeta";
+$ConnectingToPeer = "Povezujem";
 $ConnectionEstablished = "Povezava je vzpostavljena";
 $ConnectionFailed = "Povezava ni bila uspešna";
 $ConnectionClosed = "Povezava je bila zaprta";

+ 8 - 4
main/lang/spanish/trad4all.inc.php

@@ -1,5 +1,7 @@
 <?php
-/* for more information: see languages.txt in the lang folder. */
+/*
+for more information: see languages.txt in the lang folder.
+*/
 $OpenBadgesBannerText = "Puede generar insignias para reconocer las habilidades aprendidas de sus usuarios, dar un reconocimiento por su logro, con lo cual ellos podrán mostrar sus capacidades y competencias adquiridas a través de emblemas, que serán visualizadas en su perfil de usuario. Para más información sobre los Open Badges en <a href=\"http://openbadges.org\">http://openbadges.org/</a>.";
 $OpenBadgesIntroduction = "Ahora puede establecer reconocimiento de habilidades por aprender en cualquier curso de este campus virtual.";
 $DesignANewBadgeComment = "Diseña una nueva insignia, descárgala y súbela en la plataforma.";
@@ -6248,7 +6250,7 @@ $TheLPAutoLaunchSettingIsONStudentsWillBeRedirectToAnSpecificLP = "La configurac
 $UniqueAnswerNoOption = "Respuesta única con no-se";
 $MultipleAnswerTrueFalse = "Respuestas múltiples v/f/no-se";
 $MultipleAnswerCombinationTrueFalse = "Combinación v/f/no-se";
-$DontKnow = "No se";
+$DontKnow = "No sé";
 $ExamNotAvailableAtThisTime = "Examen no disponible en este momento";
 $LoginOrEmailAddress = "Nombre de usuario o dirección e-mail";
 $EnableMathJaxTitle = "Activar MathJax";
@@ -7681,5 +7683,7 @@ $RecordAudio = "Grabar audio";
 $StartRecordingAudio = "Lanzar la grabación";
 $StopRecordingAudio = "Finalizar la grabación";
 $SaveRecordedAudio = "Guardar el audio grabado";
-$GradeFromX = "Notas para el curso: %s";
-?>
+$GradeFromX = "Libreta de notas del curso: %s";
+$TitleMandatory = "Título obligatorio";
+$NoCourseCategorySupplied = "No se ha proporcionado una categoría de curso";
+?>

+ 7 - 0
main/template/default/layout/footer.tpl

@@ -1,3 +1,10 @@
+{#  Plugins for pref footer section #}
+{% if plugin_pre_footer is not null %}
+    <div id="plugin_pre_footer">
+        {{ plugin_pre_footer }}
+    </div>
+{% endif %}
+
 <footer> <!-- start of #footer section -->
     <div class="container">
         <div class="row">

+ 1 - 1
plugin/ticket/src/assign_tickets.php → main/ticket/assign_tickets.php

@@ -6,7 +6,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_protect_course_script();

+ 7 - 7
plugin/ticket/src/categories.php → main/ticket/categories.php

@@ -9,13 +9,13 @@
 $cidReset = true;
 // needed in order to load the plugin lang variables
 $course_plugin = 'ticket';
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 $plugin = TicketPlugin::create();
 
 api_protect_admin_script(true);
 
-$toolName = $plugin->get_lang('Categories');
+$toolName = get_lang('Categories');
 
 $libPath = api_get_path(LIBRARY_PATH);
 $webLibPath = api_get_path(WEB_LIBRARY_PATH);
@@ -37,7 +37,7 @@ if ($table->per_page == 0) {
 $formToString = '';
 $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 
 if (isset($_GET['action'])) {
     global $table;
@@ -51,7 +51,7 @@ if (isset($_GET['action'])) {
             break;
         case 'add':
             $toolName = get_lang('Add');
-            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => $plugin->get_lang('Categories'));
+            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
             $url = api_get_self().'?action=add';
             $form = TicketManager::getCategoryForm($url);
             $formToString = $form->returnForm();
@@ -78,7 +78,7 @@ if (isset($_GET['action'])) {
             break;
         case 'edit':
             $toolName = get_lang('Edit');
-            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => $plugin->get_lang('Categories'));
+            $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
             $url = api_get_self().'?action=edit&id='.$id;
             $form = TicketManager::getCategoryForm($url);
 
@@ -136,9 +136,9 @@ function modify_filter($id, $params, $row)
 }
 
 $table->set_header(0, '', false);
-$table->set_header(1, $plugin->get_lang('Title'), false);
+$table->set_header(1, get_lang('Title'), false);
 $table->set_header(2, get_lang('Description'), true, array("style" => "width:200px"));
-$table->set_header(3, $plugin->get_lang('TotalTickets'), false);
+$table->set_header(3, get_lang('TotalTickets'), false);
 $table->set_header(4, get_lang('Actions'), true);
 $table->set_column_filter(4, 'modify_filter');
 

+ 2 - 2
plugin/ticket/src/categories_add_user.php → main/ticket/categories_add_user.php

@@ -6,7 +6,7 @@
  * @package chamilo.plugin.ticket
  */
 $cidReset = true;
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_protect_admin_script(true);
@@ -49,7 +49,7 @@ if ($form->validate()) {
     exit;
 }
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 $interbreadcrumb[] = array('url' => 'categories.php', 'name' => get_lang('Categories'));
 Display::display_header(get_lang('Users'));
 $form->display();

+ 1 - 1
plugin/ticket/src/course_user_list.php → main/ticket/course_user_list.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 $userId = intval($_GET['user_id']);

+ 1 - 1
plugin/ticket/src/download.php → main/ticket/download.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_block_anonymous_users();

+ 2 - 2
plugin/ticket/src/index.php → main/ticket/index.php

@@ -6,6 +6,6 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
-header('Location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+require_once __DIR__.'/../inc/global.inc.php';
+header('Location:' . api_get_path(WEB_CODE_PATH) . '/ticket/myticket.php');
 exit;

+ 48 - 48
plugin/ticket/src/myticket.php → main/ticket/myticket.php

@@ -9,12 +9,11 @@
 $cidReset = true;
 // needed in order to load the plugin lang variables
 $course_plugin = 'ticket';
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 api_block_anonymous_users();
 
-$plugin = TicketPlugin::create();
-$tool_name = $plugin->get_lang('LastEdit');
+$tool_name = get_lang('LastEdit');
 
 $libPath = api_get_path(LIBRARY_PATH);
 $webLibPath = api_get_path(WEB_LIBRARY_PATH);
@@ -91,15 +90,15 @@ switch ($action) {
     case 'export':
         $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('Description')
+                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('Description')
             )
         );
         $datos = $table->get_clean_html();
@@ -118,7 +117,7 @@ switch ($action) {
             );
             $data[] = $ticket_rem;
         }
-        Export::arrayToXls($data, $plugin->get_lang('Tickets'));
+        Export::arrayToXls($data, get_lang('Tickets'));
         exit;
         break;
     case 'close_tickets':
@@ -131,7 +130,7 @@ switch ($action) {
 $user_id = api_get_user_id();
 $isAdmin = api_is_platform_admin();
 
-Display::display_header($plugin->get_lang('MyTickets'));
+Display::display_header(get_lang('MyTickets'));
 
 if ($isAdmin) {
     $getParameters = [
@@ -179,7 +178,7 @@ if ($isAdmin) {
 
     $admins = UserManager::get_user_list_like(array("status" => "1"), array("username"), true);
     $selectAdmins = [
-        0 => $plugin->get_lang('Unassigned')
+        0 => get_lang('Unassigned')
     ];
     foreach ($admins as $admin) {
         $selectAdmins[$admin['user_id']] = $admin['complete_name'];
@@ -187,20 +186,20 @@ if ($isAdmin) {
     $status = TicketManager::get_all_tickets_status();
     $selectStatus = [];
     foreach ($status as $stat) {
-        $selectStatus[$stat['status_id']] = $stat['name'];
+        $selectStatus[$stat['id']] = $stat['name'];
     }
 
     $selectPriority = [
         '' => get_lang('All'),
-        TicketManager::PRIORITY_NORMAL => $plugin->get_lang('PriorityNormal'),
-        TicketManager::PRIORITY_HIGH => $plugin->get_lang('PriorityHigh'),
-        TicketManager::PRIORITY_LOW => $plugin->get_lang('PriorityLow')
+        TicketManager::PRIORITY_NORMAL => get_lang('PriorityNormal'),
+        TicketManager::PRIORITY_HIGH => get_lang('PriorityHigh'),
+        TicketManager::PRIORITY_LOW => get_lang('PriorityLow')
     ];
 
     $selectStatusUnread = [
         '' => get_lang('All'),
-        'yes' => $plugin->get_lang('Unread'),
-        'no' => $plugin->get_lang('Read')
+        'yes' => get_lang('Unread'),
+        'no' => get_lang('Read')
     ];
 
     // Create a search-box
@@ -216,16 +215,17 @@ if ($isAdmin) {
     echo '<div class="actions" >';
     if (api_is_platform_admin()) {
         echo '<span class="left">' .
-                '<a href="' . api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/new_ticket.php">' .
-                    Display::return_icon('add.png', $plugin->get_lang('TckNew'), '', ICON_SIZE_MEDIUM) . '</a>' .
+                '<a href="' . api_get_path(WEB_CODE_PATH) . 'ticket/new_ticket.php">' .
+                    Display::return_icon('add.png', get_lang('TckNew'), '', ICON_SIZE_MEDIUM) . '</a>' .
                 '<a href="' . api_get_self() . '?action=export' . $get_parameter . $get_parameter2 . '">' .
                     Display::return_icon('export_excel.png', get_lang('Export'), '', ICON_SIZE_MEDIUM) . '</a>';
-        if ($plugin->get('allow_category_edition')) {
+
+        /*if ($plugin->get('allow_category_edition')) {
             echo Display::url(
                 Display::return_icon('folder_document.gif'),
-                api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/categories.php'
+                api_get_path(WEB_CODE_PATH) . 'ticket/categories.php'
             );
-        }
+        }*/
 
         echo Display::url(
             Display::return_icon('settings.png'),
@@ -248,11 +248,11 @@ if ($isAdmin) {
     $advancedSearchForm->addHeader(get_lang('AdvancedSearch'));
     $advancedSearchForm->addSelect('keyword_category', get_lang('Category'), $selectTypes, ['placeholder' => get_lang('Select')]);
     //$advancedSearchForm->addText('keyword_request_user', get_lang('User'), false);
-    $advancedSearchForm->addDateTimePicker('keyword_start_date_start', $plugin->get_lang('RegisterDate'));
-    $advancedSearchForm->addDateTimePicker('keyword_start_date_end', $plugin->get_lang('Untill'));
-    $advancedSearchForm->addSelect('keyword_admin', $plugin->get_lang('AssignedTo') , $selectAdmins, ['placeholder' => get_lang('All')]);
+    $advancedSearchForm->addDateTimePicker('keyword_start_date_start', get_lang('RegisterDate'));
+    $advancedSearchForm->addDateTimePicker('keyword_start_date_end', get_lang('Untill'));
+    $advancedSearchForm->addSelect('keyword_admin', get_lang('AssignedTo') , $selectAdmins, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addSelect('keyword_status', get_lang('Status'), $selectStatus, ['placeholder' => get_lang('Select')]);
-    $advancedSearchForm->addSelect('keyword_priority', $plugin->get_lang('Priority'), $selectPriority, ['placeholder' => get_lang('All')]);
+    $advancedSearchForm->addSelect('keyword_priority', get_lang('Priority'), $selectPriority, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addSelect('keyword_unread', get_lang('Status'), $selectStatusUnread, ['placeholder' => get_lang('All')]);
     $advancedSearchForm->addText('keyword_course', get_lang('Course'), false);
     $advancedSearchForm->addButtonSearch(get_lang('AdvancedSearch'), 'submit_advanced');
@@ -261,8 +261,8 @@ if ($isAdmin) {
     if ($plugin->get('allow_student_add') == 'true') {
         echo '<div class="actions" >';
         echo '<span style="float:right;">' .
-                '<a href="' . api_get_path(WEB_PLUGIN_PATH) . 'ticket/src/new_ticket.php">' .
-                    Display::return_icon('add.png', $plugin->get_lang('TckNew'), '', '32') .
+                '<a href="' . api_get_path(WEB_CODE_PATH) . 'ticket/new_ticket.php">' .
+                    Display::return_icon('add.png', get_lang('TckNew'), '', '32') .
                 '</a>' .
               '</span>';
         echo '</div>';
@@ -270,25 +270,25 @@ if ($isAdmin) {
 }
 
 if ($isAdmin) {
-    $table->set_header(0, $plugin->get_lang('TicketNum'), true);
-    $table->set_header(1, $plugin->get_lang('Date'), true);
-    $table->set_header(2, $plugin->get_lang('DateLastEdition'), true);
-    $table->set_header(3, $plugin->get_lang('Category'), true);
-    $table->set_header(4, $plugin->get_lang('CreatedBy'), true);
-    $table->set_header(5, $plugin->get_lang('AssignedTo'), true);
-    $table->set_header(6, $plugin->get_lang('Status'), true);
-    $table->set_header(7, $plugin->get_lang('Message'), true);
+    $table->set_header(0, get_lang('TicketNum'), true);
+    $table->set_header(1, get_lang('Date'), true);
+    $table->set_header(2, get_lang('DateLastEdition'), true);
+    $table->set_header(3, get_lang('Category'), true);
+    $table->set_header(4, get_lang('CreatedBy'), true);
+    $table->set_header(5, get_lang('AssignedTo'), true);
+    $table->set_header(6, get_lang('Status'), true);
+    $table->set_header(7, get_lang('Message'), true);
 } else {
-    echo '<center><h1>' . $plugin->get_lang('MyTickets') . '</h1></center>';
-    echo '<center><p>' . $plugin->get_lang('MsgWelcome') . '</p></center>';
+    echo '<center><h1>' . get_lang('MyTickets') . '</h1></center>';
+    echo '<center><p>' . get_lang('MsgWelcome') . '</p></center>';
     if (isset($_GET['message'])) {
-        Display::display_confirmation_message($plugin->get_lang('TckSuccessSave'));
+        Display::display_confirmation_message(get_lang('TckSuccessSave'));
     }
-    $table->set_header(0, $plugin->get_lang('TicketNum'), true);
-    $table->set_header(1, $plugin->get_lang('Date'), true);
-    $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(0, get_lang('TicketNum'), true);
+    $table->set_header(1, get_lang('Date'), true);
+    $table->set_header(2, get_lang('DateLastEdition'), true);
+    $table->set_header(3, get_lang('Category'));
+    $table->set_header(4, get_lang('Status'), false);
 }
 
 $table->display();

+ 29 - 30
plugin/ticket/src/new_ticket.php → main/ticket/new_ticket.php

@@ -6,13 +6,12 @@
  */
 
 $cidReset = true;
-require_once __DIR__.'/../config.php';
-$plugin = TicketPlugin::create();
+require_once __DIR__.'/../inc/global.inc.php';
 
-if (!api_is_platform_admin() &&
-    $plugin->get('allow_student_add') != 'true'
+if (!api_is_platform_admin()
+//    $plugin->get('allow_student_add') != 'true'
 ) {
-    header('location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+    header('location:' . api_get_path(WEB_CODE_PATH).'ticket/myticket.php');
     exit;
 }
 
@@ -66,21 +65,21 @@ function validate() {
     var selected = document.getElementById("category_id").selectedIndex;
     var id = document.getElementById("category_id").options[selected].value;
     if (id == 0) {
-        alert("' . $plugin->get_lang("ValidType") . '");
+        alert("' . get_lang("ValidType") . '");
         return false;
     } else if(document.getElementById("subject").value == "") {
-        alert("' . $plugin->get_lang("ValidSubject") . '");
+        alert("' . get_lang("ValidSubject") . '");
         return false;
     } else if(parseInt(course_required[id]) == 1 && document.getElementById("course_id").value == 0) {
-        alert("' . $plugin->get_lang("ValidCourse") . '");
+        alert("' . get_lang("ValidCourse") . '");
         return false;
     } else if(id != "CUR" && parseInt(course_required[id]) != 1  && !re.test(document.getElementById("personal_email").value)) {
         if (document.getElementById("personal_email").value != "") {
-            alert("' . $plugin->get_lang("ValidEmail") . '");
+            alert("' . get_lang("ValidEmail") . '");
             return false;
         }
     } else if(fckEditor1val == "") {
-        alert("' . $plugin->get_lang("ValidMessage") . '");
+        alert("' . get_lang("ValidMessage") . '");
         return false;
     }
 }
@@ -206,17 +205,17 @@ function show_form_send_ticket()
         'for' => 'status_id'
     );
 
-    $statusList[TicketManager::STATUS_NEW] = $plugin->get_lang('StatusNew');
+    $statusList[TicketManager::STATUS_NEW] = get_lang('StatusNew');
     if (api_is_platform_admin()) {
         $statusAttributes = array(
             'id' => 'status_id',
             'for' => 'status_id',
             'style' => 'width: 562px;'
         );
-        $statusList[TicketManager::STATUS_PENDING] = $plugin->get_lang('StatusPending');
-        $statusList[TicketManager::STATUS_UNCONFIRMED] = $plugin->get_lang('StatusUnconfirmed');
-        $statusList[TicketManager::STATUS_CLOSE] = $plugin->get_lang('StatusClose');
-        $statusList[TicketManager::STATUS_FORWARDED] = $plugin->get_lang('StatusForwarded');
+        $statusList[TicketManager::STATUS_PENDING] = get_lang('StatusPending');
+        $statusList[TicketManager::STATUS_UNCONFIRMED] = get_lang('StatusUnconfirmed');
+        $statusList[TicketManager::STATUS_CLOSE] = get_lang('StatusClose');
+        $statusList[TicketManager::STATUS_FORWARDED] = get_lang('StatusForwarded');
     }
     //End Status List
 
@@ -227,23 +226,23 @@ function show_form_send_ticket()
         'id' => 'source_id',
         'for' => 'source_id'
     );
-    $sourceList[TicketManager::SOURCE_PLATFORM] = $plugin->get_lang('SrcPlatform');
+    $sourceList[TicketManager::SOURCE_PLATFORM] = get_lang('SrcPlatform');
     if (api_is_platform_admin()) {
         $sourceAttributes = array(
             'id' => 'source_id',
             'for' => 'source_id',
             'style' => 'width: 562px;'
         );
-        $sourceList[TicketManager::SOURCE_EMAIL] = $plugin->get_lang('SrcEmail');
-        $sourceList[TicketManager::SOURCE_PHONE] = $plugin->get_lang('SrcPhone');
-        $sourceList[TicketManager::SOURCE_PRESENTIAL] = $plugin->get_lang('SrcPresential');
+        $sourceList[TicketManager::SOURCE_EMAIL] = get_lang('SrcEmail');
+        $sourceList[TicketManager::SOURCE_PHONE] = get_lang('SrcPhone');
+        $sourceList[TicketManager::SOURCE_PRESENTIAL] = get_lang('SrcPresential');
     }
 
     // Priority List
     $priorityList = array();
-    $priorityList[TicketManager::PRIORITY_NORMAL] = $plugin->get_lang('PriorityNormal');
-    $priorityList[TicketManager::PRIORITY_HIGH] = $plugin->get_lang('PriorityHigh');
-    $priorityList[TicketManager::PRIORITY_LOW] = $plugin->get_lang('PriorityLow');
+    $priorityList[TicketManager::PRIORITY_NORMAL] = get_lang('PriorityNormal');
+    $priorityList[TicketManager::PRIORITY_HIGH] = get_lang('PriorityHigh');
+    $priorityList[TicketManager::PRIORITY_LOW] = get_lang('PriorityLow');
 
     $form = new FormValidator(
         'send_ticket',
@@ -338,7 +337,7 @@ function show_form_send_ticket()
     $form->addElement(
         'text',
         'personal_email',
-        $plugin->get_lang('PersonalEmail'),
+        get_lang('PersonalEmail'),
         array(
             'id' => 'personal_email'
         )
@@ -364,7 +363,7 @@ function show_form_send_ticket()
     $form->addElement(
         'select',
         'priority_id',
-        $plugin->get_lang('Priority'),
+        get_lang('Priority'),
         $priorityList,
         array(
             'id' => 'priority_id',
@@ -375,7 +374,7 @@ function show_form_send_ticket()
     $form->addElement(
         'select',
         'source_id',
-        $plugin->get_lang('Source'),
+        get_lang('Source'),
         $sourceList,
         $sourceAttributes
     );
@@ -383,7 +382,7 @@ function show_form_send_ticket()
     $form->addElement(
         'text',
         'phone',
-        get_lang('Phone') . ' (' . $plugin->get_lang('Optional') . ')',
+        get_lang('Phone') . ' (' . get_lang('Optional') . ')',
         array(
             'id' => 'phone'
         )
@@ -455,13 +454,13 @@ function save_ticket()
         $user_id
     )) {
         Display::addFlash(
-            Display::return_message($plugin->get_lang('TckSuccessSave'), 'success')
+            Display::return_message(get_lang('TckSuccessSave'), 'success')
         );
-        header('Location:' . api_get_path(WEB_PLUGIN_PATH) . PLUGIN_NAME . '/src/myticket.php');
+        header('Location:' . api_get_path(WEB_CODE_PATH).'/ticket/myticket.php');
         exit;
     } else {
         Display::display_header(get_lang('ComposeMessage'));
-        Display::display_error_message($plugin->get_lang('ErrorRegisterMessage'));
+        Display::display_error_message(get_lang('ErrorRegisterMessage'));
     }
 }
 
@@ -572,7 +571,7 @@ function get_user_data($from, $number_of_items, $column, $direction)
 }
 
 
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
 
 if (!isset($_POST['compose'])) {
     if (api_is_platform_admin()) {

+ 1 - 1
plugin/ticket/src/report.php → main/ticket/report.php

@@ -6,7 +6,7 @@
  */
 
 $cidReset = true;
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 api_block_anonymous_users();

+ 1 - 1
plugin/ticket/src/ticket_assign_log.php → main/ticket/ticket_assign_log.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 
 $plugin = TicketPlugin::create();
 

+ 32 - 33
plugin/ticket/src/ticket_details.php → main/ticket/ticket_details.php

@@ -6,15 +6,14 @@
  * @package chamilo.plugin.ticket
  */
 $cidReset = true;
-require_once __DIR__.'/../config.php';
-$plugin = TicketPlugin::create();
+require_once __DIR__.'/../inc/global.inc.php';
 
 api_block_anonymous_users();
 
 $user_id = api_get_user_id();
 $isAdmin = api_is_platform_admin();
-$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => $plugin->get_lang('MyTickets'));
-$interbreadcrumb[] = array('url' => '#', 'name' => $plugin->get_lang('TicketDetail'));
+$interbreadcrumb[] = array('url' => 'myticket.php', 'name' => get_lang('MyTickets'));
+$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('TicketDetail'));
 
 $disableReponseButtons = '';
 /*if ($isAdmin) {
@@ -44,25 +43,25 @@ $(document).ready(function() {
         });
 
         $(".responseyes").click(function () {
-            if(!confirm("' . $plugin->get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('Yes')) . '. ' . $plugin->get_lang('IfYouAreSureTheTicketWillBeClosed') . '")){
+            if(!confirm("' . get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('Yes')) . '. ' . get_lang('IfYouAreSureTheTicketWillBeClosed') . '")){
                 return false;
             }
         });
 
         $("input#responseno").click(function () {
-            if(!confirm("' . $plugin->get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('No')) . '")){
+            if(!confirm("' . get_lang('AreYouSure') . ' : ' . strtoupper(get_lang('No')) . '")){
                 return false;
             }
         });
 
         $("#unassign").click(function () {
-            if (!confirm("' . $plugin->get_lang('AreYouSureYouWantToUnassignTheTicket') . '")) {
+            if (!confirm("' . get_lang('AreYouSureYouWantToUnassignTheTicket') . '")) {
                 return false;
             }
         });
 
         $("#close").click(function () {
-            if (!confirm("' . $plugin->get_lang('AreYouSureYouWantToCloseTheTicket') . '")) {
+            if (!confirm("' . get_lang('AreYouSureYouWantToCloseTheTicket') . '")) {
                 return false;
             }
         });
@@ -73,7 +72,7 @@ function validate() {
     fckEditor1val = CKEDITOR.instances["content"].getData();
     document.getElementById("content").value= fckEditor1val;
     if(fckEditor1val == ""){
-        alert("' . $plugin->get_lang('YouMustWriteAMessage') . '");
+        alert("' . get_lang('YouMustWriteAMessage') . '");
         return false;
     }
 }
@@ -195,11 +194,11 @@ if (isset($_POST['response'])) {
         if ($response && $ticket['ticket']['status_id'] == TicketManager::STATUS_UNCONFIRMED) {
             TicketManager::close_ticket($_GET['ticket_id'], $user_id);
             $ticket['ticket']['status_id'] = TicketManager::STATUS_CLOSE;
-            $ticket['ticket']['status'] = $plugin->get_lang('Closed');
+            $ticket['ticket']['status'] = get_lang('Closed');
         } else if (!is_null($response) && $ticket['ticket']['status_id'] == TicketManager::STATUS_UNCONFIRMED) {
             TicketManager::update_ticket_status(TicketManager::STATUS_PENDING, $_GET['ticket_id'], $user_id);
             $ticket['ticket']['status_id'] = TicketManager::STATUS_PENDING;
-            $ticket['ticket']['status'] = $plugin->get_lang('StatusPending');
+            $ticket['ticket']['status'] = get_lang('StatusPending');
         }
     }
 }
@@ -227,13 +226,13 @@ if (isset($_REQUEST['action'])) {
     }
 }
 
-$title = 'Ticket #' . $ticket['ticket']['ticket_code'];
+$title = 'Ticket #' . $ticket['ticket']['code'];
 
 if (!isset($_POST['compose'])) {
     if (isset($_REQUEST['close'])) {
         TicketManager::close_ticket($_REQUEST['ticket_id'], $user_id);
         $ticket['ticket']['status_id'] = TicketManager::STATUS_CLOSE;
-        $ticket['ticket']['status'] = $plugin->get_lang('Closed');
+        $ticket['ticket']['status'] = get_lang('Closed');
     }
     /*$ticket['ticket']['request_user'] = intval($ticket['ticket']['request_user']);
     if ($ticket['ticket']['request_user'] == $user_id || intval($ticket['ticket']['assigned_last_user']) == $user_id) {
@@ -247,7 +246,7 @@ if (!isset($_POST['compose'])) {
         ) {
         if (intval($ticket['ticket']['assigned_last_user']) == $user_id) {
             if ($ticket['ticket']['status_id'] != TicketManager::STATUS_CLOSE) {
-                $form_close_ticket.= '<a href="' . api_get_self() . '?close=1&ticket_id=' . $ticket['ticket']['ticket_id'] . '" id="close" class="btn btn-danger" >';
+                $form_close_ticket.= '<a href="' . api_get_self() . '?close=1&ticket_id=' . $ticket['ticket']['id'] . '" id="close" class="btn btn-danger" >';
                 $form_close_ticket.= get_lang('Close') . '</a>';
             }
         }
@@ -293,7 +292,7 @@ if (!isset($_POST['compose'])) {
                         '#',
                         ['title' => $ticket['ticket']['start_date'], 'class' => 'boot-tooltip']
                     ).'. '.
-                    $plugin->get_lang('TicketUpdated').' '.
+                    get_lang('TicketUpdated').' '.
                     Display::url(
                         date_to_str_ago($ticket['ticket']['sys_lastedit_datetime_from_db']),
                         '#',
@@ -309,17 +308,17 @@ if (!isset($_POST['compose'])) {
 	               <td><p ' . $bold . '><b>' . get_lang('Status') . ':</b> ' . $ticket['ticket']['status'] . '</p></td>
 	            </tr>
 	            <tr>
-	                <td><p><b>' . $plugin->get_lang('Priority') . ': </b>' . $ticket['ticket']['priority'] . '<p></td>
+	                <td><p><b>' . get_lang('Priority') . ': </b>' . $ticket['ticket']['priority'] . '<p></td>
 	            </tr>';
 
     if (!empty($ticket['ticket']['assigned_last_user'])) {
         $assignedUser = api_get_user_info($ticket['ticket']['assigned_last_user']);
         echo '<tr>
-                <td><p><b>' . $plugin->get_lang('AssignedTo') . ': </b>' . $assignedUser['complete_name'] . '<p></td>
+                <td><p><b>' . get_lang('AssignedTo') . ': </b>' . $assignedUser['complete_name'] . '<p></td>
             </tr>';
     } else {
         echo '<tr>
-                <td><p><b>' . $plugin->get_lang('AssignedTo') . ': </b>-<p></td>
+                <td><p><b>' . get_lang('AssignedTo') . ': </b>-<p></td>
             </tr>';
     }
     if ($ticket['ticket']['course_url'] != null) {
@@ -355,8 +354,8 @@ if (!isset($_POST['compose'])) {
            $admin['complete_name'] . "</option>";
     }
     $select_admins .= "</select>";
-    echo '<div id="dialog-form" title="' . $plugin->get_lang('AssignTicket') . '" >';
-    echo '<form id="frmResponsable" method="POST" action="ticket_details.php?ticket_id=' . $ticket['ticket']['ticket_id'] . '">
+    echo '<div id="dialog-form" title="' . get_lang('AssignTicket') . '" >';
+    echo '<form id="frmResponsable" method="POST" action="ticket_details.php?ticket_id=' . $ticket['ticket']['id'] . '">
 			<input type="hidden" name ="action" id="action" value="assign"/>
 			<div>
 				<div class="label">' . get_lang('Responsable') . ':</div>
@@ -394,7 +393,7 @@ if (!isset($_POST['compose'])) {
 
         $entireMessage = $receivedMessage . $attachmentLinks;
         $counterLink = Display::url('#'.$counter, api_get_self().'?ticket_id='.$ticket_id.'#note-'.$counter);
-        echo '<a id="note-'.$counter.'"> </a><h4>' . sprintf($plugin->get_lang('UpdatedByX'), $message['user_created']).' '.$date.
+        echo '<a id="note-'.$counter.'"> </a><h4>' . sprintf(get_lang('UpdatedByX'), $message['user_created']).' '.$date.
             ' <span class="pull-right">'.$counterLink.'</span></h4>';
         echo Display::div(
             $entireMessage, ['class' => 'well']
@@ -466,7 +465,7 @@ function show_form_send_message($ticket)
     $form = new FormValidator(
         'send_ticket',
         'POST',
-        api_get_self() . '?ticket_id=' . $ticket['ticket_id'],
+        api_get_self() . '?ticket_id=' . $ticket['id'],
         '',
         array(
             'enctype' => 'multipart/form-data',
@@ -476,16 +475,16 @@ function show_form_send_message($ticket)
     );
 
     if ($isAdmin) {
-        $statusList[TicketManager::STATUS_NEW] = $plugin->get_lang('StatusNew');
+        $statusList[TicketManager::STATUS_NEW] = get_lang('StatusNew');
         $statusAttributes = array(
             'id' => 'status_id',
             'for' => 'status_id',
             'style' => 'width: 562px;'
         );
-        $statusList[TicketManager::STATUS_PENDING] = $plugin->get_lang('StatusPending');
-        $statusList[TicketManager::STATUS_UNCONFIRMED] = $plugin->get_lang('StatusUnconfirmed');
-        $statusList[TicketManager::STATUS_CLOSE] = $plugin->get_lang('StatusClose');
-        $statusList[TicketManager::STATUS_FORWARDED] = $plugin->get_lang('StatusForwarded');
+        $statusList[TicketManager::STATUS_PENDING] = get_lang('StatusPending');
+        $statusList[TicketManager::STATUS_UNCONFIRMED] = get_lang('StatusUnconfirmed');
+        $statusList[TicketManager::STATUS_CLOSE] = get_lang('StatusClose');
+        $statusList[TicketManager::STATUS_FORWARDED] = get_lang('StatusForwarded');
 
         $form->addElement(
             'select',
@@ -496,14 +495,14 @@ function show_form_send_message($ticket)
         );
 
         $priorityList = array();
-        $priorityList[TicketManager::PRIORITY_NORMAL] = $plugin->get_lang('PriorityNormal');
-        $priorityList[TicketManager::PRIORITY_HIGH] = $plugin->get_lang('PriorityHigh');
-        $priorityList[TicketManager::PRIORITY_LOW] = $plugin->get_lang('PriorityLow');
+        $priorityList[TicketManager::PRIORITY_NORMAL] = get_lang('PriorityNormal');
+        $priorityList[TicketManager::PRIORITY_HIGH] = get_lang('PriorityHigh');
+        $priorityList[TicketManager::PRIORITY_LOW] = get_lang('PriorityLow');
 
         $form->addElement(
             'select',
             'priority_id',
-            $plugin->get_lang('Priority'),
+            get_lang('Priority'),
             $priorityList,
             array(
                 'id' => 'priority_id',
@@ -530,7 +529,7 @@ function show_form_send_message($ticket)
         )
     );
 
-    $form->addElement('hidden', 'ticket_id', $ticket['ticket_id']);
+    $form->addElement('hidden', 'ticket_id', $ticket['id']);
 
     $form->addHtmlEditor(
         'content',
@@ -549,7 +548,7 @@ function show_form_send_message($ticket)
             'checkbox',
             'confirmation',
              null,
-            $plugin->get_lang('RequestConfirmation')
+            get_lang('RequestConfirmation')
         );
     }
 

+ 0 - 0
plugin/ticket/src/ticket_plugin.class.php → main/ticket/ticket_plugin.class.php


+ 1 - 1
plugin/ticket/src/tutor.php → main/ticket/tutor.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 require_once __DIR__.'/tutor_report.lib.php';

+ 0 - 0
plugin/ticket/src/tutor_report.lib.php → main/ticket/tutor_report.lib.php


+ 2 - 2
plugin/ticket/src/update_report.php → main/ticket/update_report.php

@@ -5,7 +5,7 @@
  * @package chamilo.plugin.ticket
  */
 
-require_once __DIR__.'/../config.php';
+require_once __DIR__.'/../inc/global.inc.php';
 $plugin = TicketPlugin::create();
 
 $work_id = intval($_POST['work_id']);
@@ -14,7 +14,7 @@ $rs_id = intval($_POST['rs_id']);
 api_protect_course_script();
 
 if (!api_is_allowed_to_edit()) {
-    Display::display_error_message($plugin->get_lang("DeniedAccess"));
+    Display::display_error_message(get_lang("DeniedAccess"));
 } else {
     $sql = "UPDATE " . Database::get_main_table('rp_reporte_semanas') . "
             SET work_id = '$work_id', forum_id = '$forum_id'

+ 8 - 0
plugin/courseblock/CourseBlockPlugin.php

@@ -10,6 +10,10 @@ class CourseBlockPlugin extends Plugin
 
     // When creating a new course this settings are added to the course
     public $course_settings = array(
+         array(
+            'name' => 'course_block_pre_footer',
+            'type' => 'textarea'
+        ),
         array(
             'name' => 'course_block_footer_left',
             'type' => 'textarea'
@@ -81,6 +85,10 @@ class CourseBlockPlugin extends Plugin
                 $content = api_get_course_setting('course_block_footer_right');
                 $content = $content === -1 ? '' : $content;
                 break;
+            case 'pre_footer':
+                $content = api_get_course_setting('course_block_pre_footer');
+                $content = $content === -1 ? '' : $content;
+                break;
         }
         return $content;
     }

+ 1 - 0
plugin/courseblock/lang/english.php

@@ -8,4 +8,5 @@ $strings['tool_enable_help'] = 'Once enabled, you will have to configure the plu
 $strings['course_block_footer_left'] = 'Footer left';
 $strings['course_block_footer_center'] = 'Footer center';
 $strings['course_block_footer_right'] = 'Footer right';
+$strings['course_block_pre_footer'] = 'Pre footer';
 

+ 0 - 1
plugin/ticket/README.md

@@ -1 +0,0 @@
-Ticket management system features for Chamilo.

+ 0 - 23
plugin/ticket/config.php

@@ -1,23 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * @package chamilo.plugin.ticket
- */
-
-/* Tables names constants */
-define('PLUGIN_NAME', 'ticket');
-define('TABLE_TICKET_ASSIGNED_LOG', 'plugin_ticket_assigned_log');
-define('TABLE_TICKET_CATEGORY', 'plugin_ticket_category');
-define('TABLE_TICKET_MESSAGE', 'plugin_ticket_message');
-define('TABLE_TICKET_PRIORITY', 'plugin_ticket_priority');
-define('TABLE_TICKET_PROJECT', 'plugin_ticket_project');
-define('TABLE_TICKET_STATUS', 'plugin_ticket_status');
-define('TABLE_TICKET_TICKET', 'plugin_ticket_ticket');
-define('TABLE_TICKET_CATEGORY_REL_USER', 'plugin_ticket_category_rel_user');
-define('TABLE_TICKET_MESSAGE_ATTACHMENTS', 'plugin_ticket_message_attachments');
-
-require_once __DIR__ . '/../../main/inc/global.inc.php';
-
-require_once api_get_path(SYS_PLUGIN_PATH) . PLUGIN_NAME . '/src/ticket_plugin.class.php';
-require_once api_get_path(SYS_PLUGIN_PATH) . PLUGIN_NAME . '/src/ticket.class.php';

+ 0 - 249
plugin/ticket/database.php

@@ -1,249 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * Contains the SQL for the tickets management plugin database structure
- */
-
-$objPlugin = TicketPlugin::create();
-
-// Category
-$table = Database::get_main_table(TABLE_TICKET_CATEGORY);
-
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            category_id char(3) NOT NULL,
-            project_id char(3) NOT NULL,
-            name varchar(100) NOT NULL,
-            description varchar(255) NOT NULL,
-            total_tickets int UNSIGNED NOT NULL DEFAULT '0',
-            course_required char(1) NOT NULL,
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            sys_insert_datetime datetime DEFAULT NULL,
-            sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    $result = Database::query($sql);
-
-    $tableLog = Database::get_main_table(TABLE_TICKET_ASSIGNED_LOG);
-    $sql = "CREATE TABLE IF NOT EXISTS $tableLog (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            ticket_id int UNSIGNED DEFAULT NULL,
-            user_id int UNSIGNED DEFAULT NULL,
-            assigned_date datetime DEFAULT NULL,
-            sys_insert_user_id int UNSIGNED DEFAULT NULL,
-            PRIMARY KEY PK_ticket_assigned_log (id),
-            KEY FK_ticket_assigned_log (ticket_id))";
-    Database::query($sql);
-
-    // Default Categories
-    $categories = array(
-        $objPlugin->get_lang('Enrollment') => $objPlugin->get_lang('TicketsAboutEnrollment'),
-        $objPlugin->get_lang('GeneralInformation') => $objPlugin->get_lang('TicketsAboutGeneralInformation'),
-        $objPlugin->get_lang('RequestAndPapework') => $objPlugin->get_lang('TicketsAboutRequestAndPapework'),
-        $objPlugin->get_lang('AcademicIncidence') => $objPlugin->get_lang('TicketsAboutAcademicIncidence'),
-        $objPlugin->get_lang('VirtualCampus') => $objPlugin->get_lang('TicketsAboutVirtualCampus'),
-        $objPlugin->get_lang('OnlineEvaluation') => $objPlugin->get_lang('TicketsAboutOnlineEvaluation')
-    );
-
-    $i = 1;
-    foreach ($categories as $category => $description) {
-        // Online evaluation requires a course
-        if ($i == 6) {
-            $attributes = array(
-                'id' => $i,
-                'category_id' => $i,
-                'name' => $category,
-                'description' => $description,
-                'project_id' => 1,
-                'course_required' => 1
-            );
-        } else {
-            $attributes = array(
-                'id' => $i,
-                'category_id' => $i,
-                'project_id' => 1,
-                'description' => $description,
-                'name' => $category,
-                'course_required' => 0
-            );
-        }
-
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_MESSAGE);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED NOT NULL AUTO_INCREMENT,
-        message_id int UNSIGNED NOT NULL,
-        ticket_id int UNSIGNED NOT NULL,
-        subject varchar(255) DEFAULT NULL,
-        message text NOT NULL,
-        status char(3) NOT NULL,
-        ip_address varchar(16) DEFAULT NULL,
-        sys_insert_user_id int UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime DEFAULT NULL,
-        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-        sys_lastedit_datetime datetime DEFAULT NULL,
-        PRIMARY KEY (id),
-        KEY FK_tick_message (ticket_id))";
-Database::query($sql);
-
-$table = Database::get_main_table(TABLE_TICKET_MESSAGE_ATTACHMENTS);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED NOT NULL AUTO_INCREMENT,
-        message_attch_id char(2) NOT NULL,
-        message_id char(2) NOT NULL,
-        ticket_id int UNSIGNED NOT NULL,
-        path varchar(255) NOT NULL,
-        filename varchar(255) NOT NULL,
-        size varchar(25) DEFAULT NULL,
-        sys_insert_user_id int UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime DEFAULT NULL,
-        sys_lastedit_user_id int UNSIGNED DEFAULT NULL,
-        sys_lastedit_datetime datetime DEFAULT NULL,
-        PRIMARY KEY (id),
-        KEY ticket_message_id_fk (message_id))";
-Database::query($sql);
-
-// Priority
-$table = Database::get_main_table(TABLE_TICKET_PRIORITY);
-
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            priority_id char(3) NOT NULL,
-            priority varchar(20) DEFAULT NULL,
-            priority_desc varchar(250) DEFAULT NULL,
-            priority_color varchar(25) 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 UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default Priorities
-    $defaultPriorities = array(
-        TicketManager::PRIORITY_NORMAL => $objPlugin->get_lang('PriorityNormal'),
-        TicketManager::PRIORITY_HIGH => $objPlugin->get_lang('PriorityHigh'),
-        TicketManager::PRIORITY_LOW => $objPlugin->get_lang('PriorityLow')
-    );
-
-    $i = 1;
-    foreach ($defaultPriorities as $pId => $priority) {
-        $attributes = array(
-            'id' => $i,
-            'priority_id' => $pId,
-            'priority' => $priority,
-            'priority_desc' => $priority
-        );
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_PROJECT);
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            project_id char(3) NOT NULL,
-            name varchar(50) DEFAULT NULL,
-            description varchar(250) DEFAULT NULL,
-            email varchar(50) 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 UNSIGNED DEFAULT NULL,
-            sys_lastedit_datetime datetime DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default Project Table Ticket
-    $attributes = array(
-        'id' => 1,
-        'project_id' => 1,
-        'name' => 'Ticket System'
-    );
-    Database::insert($table, $attributes);
-}
-
-// STATUS
-$table = Database::get_main_table(TABLE_TICKET_STATUS);
-if (!Database::tableExists($table)) {
-    $sql = "CREATE TABLE IF NOT EXISTS $table (
-            id int UNSIGNED NOT NULL AUTO_INCREMENT,
-            status_id char(3) NOT NULL,
-            name varchar(100) NOT NULL,
-            description varchar(255) DEFAULT NULL,
-            PRIMARY KEY (id))";
-    Database::query($sql);
-
-    // Default status
-    $defaultStatus = array(
-        TicketManager::STATUS_NEW => $objPlugin->get_lang('StatusNew'),
-        TicketManager::STATUS_PENDING => $objPlugin->get_lang('StatusPending'),
-        TicketManager::STATUS_UNCONFIRMED => $objPlugin->get_lang('StatusUnconfirmed'),
-        TicketManager::STATUS_CLOSE => $objPlugin->get_lang('StatusClose'),
-        TicketManager::STATUS_FORWARDED => $objPlugin->get_lang('StatusForwarded')
-    );
-
-    $i = 1;
-    foreach ($defaultStatus as $abr => $status) {
-        $attributes = array(
-            'id' => $i,
-            'status_id' => $abr,
-            'name' => $status
-        );
-        Database::insert($table, $attributes);
-        $i++;
-    }
-}
-
-$table = Database::get_main_table(TABLE_TICKET_TICKET);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        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 UNSIGNED NOT NULL,
-        session_id int UNSIGNED NOT NULL DEFAULT '0',        
-        personal_email varchar(150) DEFAULT NULL,
-        assigned_last_user int UNSIGNED NOT NULL DEFAULT '0',
-        status_id char(3) NOT NULL,
-        total_messages int UNSIGNED NOT NULL DEFAULT '0',
-        subject varchar(255) DEFAULT NULL,
-        message text NOT NULL,
-        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 UNSIGNED DEFAULT NULL,
-        sys_insert_datetime datetime 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),
-        KEY FK_ticket_priority (priority_id),
-        KEY FK_ticket_category (project_id,category_id))";
-Database::query($sql);
-
-$table = Database::get_main_table(TABLE_TICKET_CATEGORY_REL_USER);
-$sql = "CREATE TABLE IF NOT EXISTS $table (
-        id int UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
-        category_id INT NOT NULL,
-        user_id INT NOT NULL
-)";
-Database::query($sql);
-
-// Menu main tabs
-$rsTab = $objPlugin->addTab('Ticket', 'plugin/ticket/src/myticket.php');
-
-if ($rsTab) {
-    echo "<script>location.href = '" . $_SERVER['REQUEST_URI'] . "';</script>";
-}

+ 0 - 1
plugin/ticket/index.php

@@ -1 +0,0 @@
-<?php

+ 0 - 11
plugin/ticket/install.php

@@ -1,11 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script is included by main/admin/settings.lib.php and generally
- * includes things to execute in the main database (settings_current table)
- * @package chamilo.plugin.ticket
- */
-
-require_once __DIR__.'/config.php';
-TicketPlugin::create()->install();

+ 0 - 102
plugin/ticket/lang/english.php

@@ -1,102 +0,0 @@
-<?php
-$strings['plugin_title'] = "Support tickets";
-$strings['plugin_comment'] = "Plugin to include a support tickets system inside Chamilo.";
-$strings['tool_enable'] = "Enable Ticket plugin";
-$strings['tool_enable_help'] = "Enabling the ticket tool will make a new tab available in the main horizontal menu. This tab will appear for all users and will lead them to the tickets management system where they can check the status of their tickets.";
-$strings['TabsTickets'] = "Tickets tab";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Date";
-$strings['Category'] = "Category";
-$strings['User'] = "User";
-$strings['Program'] = "Program";
-$strings['Responsible'] = "Assigned to";
-$strings['Status'] = "Status";
-$strings['Message'] = "Messages";
-$strings['Description'] = "Description";
-$strings['Tickets'] = "Tickets";
-$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['TckClose'] = "Close the ticket";
-$strings['TckNew'] = "New ticket";
-$strings['TcksNew'] = "New tickets";
-$strings['Unassigned'] = "Not assigned";
-$strings['Unassign'] = "Unassigned";
-$strings['Read'] = "Read";
-$strings['Unread'] = "Not read";
-$strings['RegisterDate'] = "Registration date";
-$strings['AssignedTo'] = "Assigned to";
-$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['PersonalEmail'] = "Personal e-mail";
-$strings['Optional'] = "Optional";
-$strings['ErrorRegisterMessage'] = "The ticket could not be created";
-$strings['Source'] = "Source";
-$strings['DeniedAccess'] = "Unauthorized access.";
-$strings['StatusNew'] = "New";
-$strings['StatusPending'] = "Pending";
-$strings['StatusUnconfirmed'] = "Unconfirmed";
-$strings['StatusClose'] = "Closed";
-$strings['StatusForwarded'] = "Resent";
-$strings['Priority'] = "Priority";
-$strings['PriorityHigh'] = "High";
-$strings['PriorityNormal'] = "Normal";
-$strings['PriorityLow'] = "Low";
-$strings['SrcPlatform'] = "Platforme";
-$strings['SrcEmail'] = "E-mail";
-$strings['SrcPhone'] = "Phone";
-$strings['SrcPresential'] = "In-person";
-$strings['TicketAssignedMsg'] = "<p>Dear %s</p><p><a href='%s'>Ticket  %s</a> has been assigned to you.</p><p>Message sent from the support ticket system</p>";
-$strings['TicketAssignX'] = "[TICKETS] Assignation of ticket #%s";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "Are you sure you want to close this ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "Are you sure you want to unassign this ticket?";
-$strings['YouMustWriteAMessage'] = "You have to enter a message";
-$strings['LastResponse'] = "Last response";
-$strings['AssignTicket'] = "Assign ticket";
-$strings['AttendedBy'] = "Attended by";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "If you are certain, the ticket will be closed";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Your support request was sent to the area manager: <a href='mailto:%s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>The answer to your support ticket was sent to the following e-mail: <a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Virtual support";
-$strings['IncidentResentToVirtualSupport'] = "The incident was sent to virtual support";
-$strings['DateLastEdition'] = "Last edition date";
-$strings['GeneralInformation'] = "General information";
-$strings['TicketsAboutGeneralInformation'] = "Tickets about general information";
-$strings['Enrollment'] = "Enrollment";
-$strings['TicketsAboutEnrollment'] = "Tickets about enrollment";
-$strings['RequestAndPapework'] = "Requests and paperwork";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets about requests and paperwork";
-$strings['AcademicIncidence'] = "Academic Incidents";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets about academic incidents, like exams, practices, tasks, etc.";
-$strings['VirtualCampus'] = "Virtual campus";
-$strings['TicketsAboutVirtualCampus'] = "Tickets about virtual campus";
-$strings['OnlineEvaluation'] = "Online evaluation";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets about online evaluation";
-$strings['ToBeAssigned'] = "To be assigned";
-$strings['Untill'] = "Until";
-$strings['TicketWasThisAnswerSatisfying'] = "Was this answer satisfactory?";
-$strings['TicketDetail'] = "Ticket details";
-$strings['AreYouSure'] = "Are you sure?";
-$strings['allow_student_add'] = "Allow students to generate tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Please select a user before you register a ticket.";
-$strings['RequestConfirmation'] = "Request confirmation";
-
-$strings['TicketUpdated'] = "Ticket updated";
-$strings['TicketClosed'] = "Ticket closed";
-
-$strings['TicketXCreated'] = "Ticket <b>%s</b> created";
-$strings['allow_category_edition'] = "Allow category edition";
-$strings['warn_admin_no_user_in_category'] = "Warn admin if category doesn't have users related";
-$strings['send_warning_to_all_admins'] = "Send warning to all admins, if category doesn't have users related";
-$strings['WarningCategoryXDoesntHaveUsers'] = "Warning: The category '%s' doesn't have users assigned";
-$strings['TicketInformation'] = 'Ticket information';
-$strings['CategoryWithNoUserNotificationSentToAdmins'] = 'Category <b>%s</b> has users, Ticket sent to all administrators.';
-$strings['TicketXAssignedToUserX'] = 'Ticket <b>#%s</b> assigned to user <b>%s</b>';
-$strings['TicketXCreatedWithNoCategory'] = 'Ticket <b>#%s</b> created with no category';
-
-$strings['UpdatedByX'] = 'Updated by %s';
-$strings['AssignedChangeFromXToY'] = 'Assignee changed from %s to %s';

+ 0 - 89
plugin/ticket/lang/french.php

@@ -1,89 +0,0 @@
-<?php
-$strings['plugin_title'] = "Tickets de support";
-$strings['plugin_comment'] = "Plugin de gestion des tickets de support.";
-$strings['tool_enable'] = "Activer le plugin de tickets";
-$strings['tool_enable_help'] = "Activer l'outil de tickets activera un nouvel onglet dans le même menu horizontal. Cet onglet apparaîtra pour tous les utilisateurs et les mènera au système de gestion de tickets où ils pourront vérifier l'état de leurs tickets.";
-$strings['TabsTickets'] = "Onglet tickets";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Date";
-$strings['Category'] = "Catégorie";
-$strings['User'] = "Utilisateur";
-$strings['Program'] = "Programme";
-$strings['Responsible'] = "Assigné à";
-$strings['Status'] = "État";
-$strings['Message'] = "Messages";
-$strings['Description'] = "Description";
-$strings['Tickets'] = "Tickets";
-$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['TckClose'] = "Fermer le ticket";
-$strings['TckNew'] = "Nouveau ticket";
-$strings['TcksNew'] = "Nouveaux tickets";
-$strings['Unassigned'] = "Non assignés";
-$strings['Unassign'] = "Désassigné";
-$strings['Read'] = "Lus";
-$strings['Unread'] = "Non lus";
-$strings['RegisterDate'] = "Date d'enregistrement";
-$strings['AssignedTo'] = "Assigné à";
-$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['PersonalEmail'] = "E-mail personnel";
-$strings['Optional'] = "Optionnel";
-$strings['ErrorRegisterMessage'] = "Le ticket n'a pas pu être enregistré";
-$strings['Source'] = "Source";
-$strings['DeniedAccess'] = "Accès non autorisé.";
-$strings['StatusNew'] = "Nouveau";
-$strings['StatusPending'] = "En attente";
-$strings['StatusUnconfirmed'] = "À confirmer";
-$strings['StatusClose'] = "Fermé";
-$strings['StatusForwarded'] = "Réenvoyé";
-$strings['Priority'] = "Priorité";
-$strings['PriorityHigh'] = "Haute";
-$strings['PriorityNormal'] = "Normale";
-$strings['PriorityLow'] = "Basse";
-$strings['SrcEmail'] = "E-mail";
-$strings['SrcPhone'] = "Téléphone";
-$strings['SrcPresential'] = "En personne";
-$strings['TicketAssignedMsg'] = "<p>Cher/Chère %s </p><p>Le <a href='%s'>ticket %s</a> vous a été assigné.</p><p>Message envoyé depuis le système de support.</p>";
-$strings['TicketAssignX'] = "[TICKETS] Assignation de ticket #%s";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "Êtes-vous certain de vouloir fermer ce ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "Êtes-vous certain de vouloir désassigner le ticket?";
-$strings['YouMustWriteAMessage'] = "Vous devez introduire un message";
-$strings['LastResponse'] = "Dernière réponse";
-$strings['AssignTicket'] = "Assigner ticket";
-$strings['AttendedBy'] = "Pris en charge par";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "Si vous êtes certain, le ticket sera clôturé";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Votre demande de support a été réenvoyée au responsable du département: <a href='mailto:%s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>La réponse à votre demande de support sera envoyée à l'e-mail:<a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Support virtuel";
-$strings['IncidentResentToVirtualSupport'] = "L'incident a été envoyé au support virtuel";
-$strings['DateLastEdition'] = "Date de la dernière édition";
-$strings['GeneralInformation'] = "Information générale";
-$strings['TicketsAboutGeneralInformation'] = "Tickets liés à information générale.";
-$strings['Enrollment'] = "Inscription";
-$strings['TicketsAboutEnrollment'] = "Tickets liés à l'inscription.";
-$strings['RequestAndPapework'] = "Questions précédentes et procédures";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets liés aux questions précédentes et procédures.";
-$strings['AcademicIncidence'] = "Incidences académiques";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets liés aux incidences académiques, comme les examens, les pratiques, tâches, etc.";
-$strings['VirtualCampus'] = "Campus virtuel";
-$strings['TicketsAboutVirtualCampus'] = "Tickets liés au campus virtuel";
-$strings['OnlineEvaluation'] = "Évaluation en ligne";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets liés aux évaluations en ligne";
-$strings['ToBeAssigned'] = "À assigner";
-$strings['Untill'] = "Jusqu'au";
-$strings['TicketWasThisAnswerSatisfying'] = "La réponse au ticket est-elle satisfaisante?";
-$strings['TicketDetail'] = "Détails du ticket";
-$strings['AreYouSure'] = "Êtes-vous certain?";
-$strings['allow_student_add'] = "Permettre à l'étudiant de générer des tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Veuillez sélectionner un utilisateur avant d'enregistrer un ticket.";
-$strings['RequestConfirmation'] = "Demander confirmation";
-$strings['TicketUpdated'] = "Ticket modifié";
-$strings['TicketClosed'] = "Ticket fermé";
-$strings['SrcPlatform'] = "Platforme";
-$strings['UpdatedByX'] = 'Updated by %s';

+ 0 - 93
plugin/ticket/lang/spanish.php

@@ -1,93 +0,0 @@
-<?php /* License: see /license.txt */
-//Needed in order to show the plugin title
-$strings['plugin_title'] = "Tickets de soporte";
-$strings['plugin_comment'] = "Plugin para el soporte de tickets de atención dentro de Chamilo.";
-$strings['tool_enable'] = "Activar plugin de tickets";
-$strings['tool_enable_help'] = "Activar la herramienta de tickets hará disponible una nueva pestaña en la barra principal horizontal. Esta pestaña aparecerá para todos los usuarios y los guiará al sistema de gestión de tickets donde podrán verificar el estado de sus tickets.";
-$strings['TabsTickets'] = "Pestaña de tickets";
-$strings['TicketNum'] = "Ticket #";
-$strings['Date'] = "Fecha";
-$strings['Category'] = "Categoría";
-$strings['User'] = "Usuario";
-$strings['Program'] = "Programa";
-$strings['Responsible'] = "Responsable";
-$strings['Status'] = "Estado";
-$strings['Message'] = "Mensajes";
-$strings['Description'] = "Descripción";
-$strings['Tickets'] = "Tickets";
-$strings['MyTickets'] = "Mis Tickets";
-$strings['MsgWelcome'] = "Bienvenido a su sección MIS TICKETS. Esta sección le permite revisar sus Tickets de Soporte generados en SOPORTE TÉCNICO";
-$strings['TckSuccessSave'] = "Se registró con éxito su ticket";
-$strings['TckClose'] = "Cerrar Tickets";
-$strings['TckNew'] = "Nuevo Ticket";
-$strings['TcksNew'] = "Tickets Nuevos";
-$strings['Unassigned'] = "No asignados";
-$strings['Unassign'] = "Desasignado";
-$strings['Read'] = "Leídos";
-$strings['Unread'] = "No leídos";
-$strings['RegisterDate'] = "Fecha de Registro";
-$strings['AssignedTo'] = "Asignado a";
-$strings['ValidUser'] = "Debe seleccionar a un usuario";
-$strings['ValidType'] = "Debe seleccionar un tipo";
-$strings['ValidSubject'] = "Debe escribir un asunto";
-$strings['ValidCourse'] = "Debe elegir un curso";
-$strings['ValidEmail'] = "Debe escribir un email válido";
-$strings['ValidMessage'] = "Debe escribir un mensaje";
-$strings['PersonalEmail'] = "Email Personal";
-$strings['Optional'] = "Opcional";
-$strings['ErrorRegisterMessage'] = "No se pudo registrar su ticket";
-$strings['Source'] = "Fuente";
-$strings['DeniedAccess'] = "Acceso denegado.";
-// Status Tickets
-$strings['StatusNew'] = "Nuevo";
-$strings['StatusPending'] = "Pendiente";
-$strings['StatusUnconfirmed'] = "Por Confirmar";
-$strings['StatusClose'] = "Cerrado";
-$strings['StatusForwarded'] = "Reenviado";
-// Priority
-$strings['Priority'] = "Prioridad";
-$strings['PriorityHigh'] = "Alta";
-$strings['PriorityNormal'] = "Normal";
-$strings['PriorityLow'] = "Baja";
-// Source
-$strings['SrcEmail'] = "Email";
-$strings['SrcPhone'] = "Teléfono";
-$strings['SrcPresential'] = "Presencial";
-$strings['TicketAssignedMsg']    = "<p>Estimado(a) %s </p><p>Se le ha sido asignado el <a href=\"%s\">ticket %s</a></p><p>Mensaje enviado desde el sistema de ticket.</p>";
-$strings['TicketAssignX'] = "[TICKETS] Asignación de Ticket #%s ";
-$strings['AreYouSureYouWantToCloseTheTicket'] = "¿Está seguro que quiere cerrar el ticket?";
-$strings['AreYouSureYouWantToUnassignTheTicket'] = "¿Está seguro que quiere desasignarse el ticket?";
-$strings['YouMustWriteAMessage'] = "Debe escribir un mensaje";
-$strings['LastResponse'] = "Última Respuesta";
-$strings['AssignTicket'] = "Asignar Ticket";
-$strings['AttendedBy'] = "Atendido por";
-$strings['IfYouAreSureTheTicketWillBeClosed'] = "Si está seguro el Ticket será cerrado";
-$strings['YourQuestionWasSentToTheResponableAreaX'] = "<p>Su consulta fue reenviada al área responsable: <a href='mailto: %s'>%s</a></p>";
-$strings['YourAnswerToTheQuestionWillBeSentToX'] = "<p>La respuesta a su consulta será enviada al correo:<a href='#'>%s</a></p>";
-$strings['VirtualSupport'] = "Soporte Virtual";
-$strings['IncidentResentToVirtualSupport'] = "El incidente ha sido reenviado al Soporte Técnico";
-$strings['DateLastEdition'] = "Fecha Última Edición";
-$strings['GeneralInformation'] = "Información General";
-$strings['TicketsAboutGeneralInformation'] = "Tickets acerca de Infomación General.";
-$strings['Enrollment'] = "Matrícula";
-$strings['TicketsAboutEnrollment'] = "Tickets relacionados con la Matrícula.";
-$strings['RequestAndPapework'] = "Consultas y Trámites";
-$strings['TicketsAboutRequestAndPapework'] = "Tickets relacionados a consultas anteriores y trámites.";
-$strings['AcademicIncidence'] = "Incidencias Académicas";
-$strings['TicketsAboutAcademicIncidence'] = "Tickets relacionados a incidencias académicas como exámenes, prácticas, tareas, etc.";
-$strings['VirtualCampus'] = "Campus Virtual";
-$strings['TicketsAboutVirtualCampus'] = "Tickets relacionados al Campus Virtual";
-$strings['OnlineEvaluation'] = "Evaluación en línea";
-$strings['TicketsAboutOnlineEvaluation'] = "Tickets relacionados a las evaluaciones en línea";
-$strings['ToBeAssigned'] = "Por Asignar";
-$strings['Untill'] = "Hasta";
-$strings['TicketWasThisAnswerSatisfying'] = "¿Fue la respuesta al Ticket satisfactoria?";
-$strings['TicketDetail'] = "Detalle del Ticket";
-$strings['AreYouSure'] = "¿Está seguro?";
-$strings['allow_student_add'] = "Permitir al estudiante generar Tickets";
-$strings['PleaseBeforeRegisterATicketSelectOneUser'] = "Por favor, antes de registrar un Ticket seleccione un usuario.";
-$strings['RequestConfirmation'] = "Solicitar confirmación";
-$strings['TicketUpdated'] = "Ticket actualizado";
-$strings['TicketClosed'] = "Ticket cerrado";
-$strings['SrcPlatform'] = "Plataforma";
-$strings['UpdatedByX'] = 'Actualizado por %s';

+ 0 - 8
plugin/ticket/plugin.php

@@ -1,8 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * @package chamilo.plugin.ticket
- */
-require_once __DIR__.'/config.php';
-$plugin_info = TicketPlugin::create()->get_info();

+ 0 - 14
plugin/ticket/start.php

@@ -1,14 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script initiates a ticket management system session
- * @package chamilo.plugin.ticket
- */
-$course_plugin = 'ticket'; //needed in order to load the plugin lang variables
-require_once __DIR__.'/config.php';
-$tool_name = get_lang('Ticket');
-$tpl = new Template($tool_name);
-
-$tpl->assign('message', $message);
-$tpl->display_one_col_template();

+ 0 - 11
plugin/ticket/uninstall.php

@@ -1,11 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * This script is included by main/admin/settings.lib.php when unselecting a plugin
- * and is meant to remove things installed by the install.php script in both
- * the global database and the courses tables
- * @package chamilo.plugin.ticket
- */
-require_once __DIR__.'/config.php';
-TicketPlugin::create()->uninstall();

+ 1 - 0
src/Chamilo/CoreBundle/Composer/ScriptHandler.php

@@ -57,6 +57,7 @@ class ScriptHandler
             __DIR__.'/../../../../main/inc/lib/pchart/',
             __DIR__.'/../../../../main/inc/lib/htmlpurifier',
             __DIR__.'/../../../../main/announcements/resources',
+            __DIR__.'/../../../../main/plugin/ticket',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelGroup.php',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelTag.php',
             __DIR__.'/../../../../src/Chamilo/CoreBundle/Entity/GroupRelUser.php',

+ 58 - 0
src/Chamilo/TicketBundle/Entity/AssignedLog.php

@@ -0,0 +1,58 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Chamilo\UserBundle\Entity\User;
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+
+/**
+ * Class AssignedLog
+ * @ORM\Table(
+ *  name="ticket_assigned_log",
+ * )
+ * @ORM\Entity
+ * @package Chamilo\TicketBundle\Entity
+ */
+class AssignedLog
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var Ticket
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Ticket")
+     * @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
+     **/
+    protected $ticket;
+
+    /**
+     * @var User
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User")
+     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
+     **/
+    protected $user;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="assigned_date", type="datetime", nullable=false)
+     */
+    protected $assignedDate;
+}

+ 91 - 0
src/Chamilo/TicketBundle/Entity/Category.php

@@ -0,0 +1,91 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * Category
+ *
+ * @ORM\Table(name="ticket_category")
+ * @ORM\Entity
+ */
+class Category
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="name", type="string", length=255, nullable=false)
+     */
+    protected $name;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="description", type="text", nullable=true)
+     */
+    protected $description;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="total_tickets", type="integer", nullable=false)
+     */
+    protected $totalTickets;
+
+    /**
+     * @var bool
+     *
+     * @ORM\Column(name="course_required", type="boolean", nullable=false)
+     */
+    protected $courseRequired;
+
+    /**
+     * @var Project
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Project")
+     * @ORM\JoinColumn(name="project_id", referencedColumnName="id")
+     **/
+    protected $project;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+}

+ 44 - 0
src/Chamilo/TicketBundle/Entity/CategoryRelUser.php

@@ -0,0 +1,44 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\TicketBundle\Entity\Category;
+use Chamilo\UserBundle\Entity\User;
+
+/**
+ * CategoryRelUser
+ *
+ * @ORM\Table(name="ticket_category_rel_user")
+ * @ORM\Entity
+ */
+class CategoryRelUser
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var Category
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Category")
+     * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
+     **/
+    protected $category;
+
+    /**
+     * @var Category
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\UserBundle\Entity\User")
+     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
+     **/
+    protected $user;
+
+}

+ 92 - 0
src/Chamilo/TicketBundle/Entity/Message.php

@@ -0,0 +1,92 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * Message
+ *
+ * @ORM\Table(name="ticket_message")
+ * @ORM\Entity
+ */
+class Message
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="subject", type="string", length=255, nullable=true)
+     */
+    protected $subject;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="message", type="text", nullable=true)
+     */
+    protected $message;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="status", type="string", nullable=false)
+     */
+    protected $status;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="ip_address", type="string", nullable=false)
+     */
+    protected $ipAddress;
+
+     /**
+     * @var Ticket
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Ticket")
+     * @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
+     **/
+    protected $ticket;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+
+}

+ 93 - 0
src/Chamilo/TicketBundle/Entity/MessageAttachment.php

@@ -0,0 +1,93 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * MessageAttachment
+ *
+ * @ORM\Table(name="ticket_message_attachments")
+ * @ORM\Entity
+ */
+class MessageAttachment
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var Ticket
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Ticket")
+     * @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
+     **/
+    protected $ticket;
+
+    /**
+     * @var Message
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Message")
+     * @ORM\JoinColumn(name="message_id", referencedColumnName="id")
+     **/
+    protected $message;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="path", type="string", length=255, nullable=false)
+     */
+    protected $path;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="filename", type="text", nullable=false)
+     */
+    protected $filename;
+
+   /**
+     * @var integer
+     *
+     * @ORM\Column(name="size", type="integer", nullable=false, unique=false)
+     */
+    protected $size;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+
+}

+ 90 - 0
src/Chamilo/TicketBundle/Entity/Priority.php

@@ -0,0 +1,90 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * Priority
+ *
+ * @ORM\Table(name="ticket_priority")
+ * @ORM\Entity
+ */
+class Priority
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="name", type="string", length=255, nullable=false)
+     */
+    protected $name;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
+     */
+    protected $code;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="description", type="text", nullable=true)
+     */
+    protected $description;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="color", type="string", nullable=false)
+     */
+    protected $color;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="urgency", type="string", nullable=false)
+     */
+    protected $urgency;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+}

+ 83 - 0
src/Chamilo/TicketBundle/Entity/Project.php

@@ -0,0 +1,83 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * Project
+ *
+ * @ORM\Table(name="ticket_project")
+ * @ORM\Entity
+ */
+class Project
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="name", type="string", length=255, nullable=false)
+     */
+    protected $name;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="description", type="text", nullable=true)
+     */
+    protected $description;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="email", type="string", nullable=true)
+     */
+    protected $email;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="other_area", type="integer", nullable=true)
+     */
+    protected $otherArea;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+    
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+}

+ 48 - 0
src/Chamilo/TicketBundle/Entity/Status.php

@@ -0,0 +1,48 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+
+/**
+ * Status
+ *
+ * @ORM\Table(name="ticket_status")
+ * @ORM\Entity
+ */
+class Status
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
+     */
+    protected $code;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="name", type="string", length=255, nullable=false)
+     */
+    protected $name;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="description", type="text", nullable=true)
+     */
+    protected $description;
+}

+ 176 - 0
src/Chamilo/TicketBundle/Entity/Ticket.php

@@ -0,0 +1,176 @@
+<?php
+/* For licensing terms, see /license.txt */
+
+namespace Chamilo\TicketBundle\Entity;
+
+use Gedmo\Mapping\Annotation as Gedmo;
+use Doctrine\ORM\Mapping as ORM;
+use Chamilo\CoreBundle\Entity\Course;
+use Chamilo\CoreBundle\Entity\Session;
+use Chamilo\TicketBundle\Entity\Project;
+use Chamilo\TicketBundle\Entity\Priority;
+
+/**
+ * Ticket
+ *
+ * @ORM\Table(name="ticket_ticket")
+ * @ORM\Entity
+ */
+class Ticket
+{
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="id", type="integer")
+     * @ORM\Id
+     * @ORM\GeneratedValue
+     */
+    protected $id;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="code", type="string", length=255, nullable=false)
+     */
+    protected $code;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="subject", type="string", length=255, nullable=false)
+     */
+    protected $subject;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="message", type="text", nullable=true)
+     */
+    protected $message;
+
+    /**
+     * @var Project
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Project")
+     * @ORM\JoinColumn(name="project_id", referencedColumnName="id")
+     **/
+    protected $project;
+
+    /**
+     * @var Project
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Category")
+     * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
+     **/
+    protected $category;
+
+    /**
+     * @var Priority
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Priority")
+     * @ORM\JoinColumn(name="priority_id", referencedColumnName="id")
+     **/
+    protected $priority;
+
+    /**
+     * @var Course
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\Course")
+     * @ORM\JoinColumn(name="course_id", referencedColumnName="id")
+     **/
+    protected $course;
+
+    /**
+     * @var Session
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\CoreBundle\Entity\Session")
+     * @ORM\JoinColumn(name="session_id", referencedColumnName="id")
+     **/
+    protected $session;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="personal_email", type="string", length=255, nullable=false)
+     */
+    protected $personalEmail;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="assigned_last_user", type="integer", nullable=true)
+     */
+    protected $assignedLastUser;
+
+     /**
+     * @var Status
+     *
+     * @ORM\ManyToOne(targetEntity="Chamilo\TicketBundle\Entity\Status")
+     * @ORM\JoinColumn(name="status_id", referencedColumnName="id")
+     **/
+    protected $status;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="total_messages", type="integer", nullable=false)
+     */
+    protected $totalMessages;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="keyword", type="string", length=255, nullable=true)
+     */
+    protected $keyword;
+
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="source", type="string", length=255, nullable=true)
+     */
+    protected $source;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="start_date", type="datetime", nullable=true, unique=false)
+     */
+    protected $startDate;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="end_date", type="datetime", nullable=true, unique=false)
+     */
+    protected $endDate;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_insert_user_id", type="integer", nullable=false, unique=false)
+     */
+    protected $insertUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_insert_datetime", type="datetime", nullable=false, unique=false)
+     */
+    protected $insertDateTime;
+
+    /**
+     * @var integer
+     *
+     * @ORM\Column(name="sys_lastedit_user_id", type="integer", nullable=true, unique=false)
+     */
+    protected $lastEditUserId;
+
+    /**
+     * @var \DateTime
+     *
+     * @ORM\Column(name="sys_lastedit_datetime", type="datetime", nullable=true, unique=false)
+     */
+    protected $lastEditDateTime;
+
+}