Ver Fonte

Adding the "courses_default_creation_visibility" platform setting see #3684

Julio Montoya há 13 anos atrás
pai
commit
ac05596d9e

+ 7 - 1
main/admin/course_add.php

@@ -119,7 +119,13 @@ $form->addElement('style_submit_button', 'submit', get_lang('CreateCourse'), 'cl
 $values['course_language']  = api_get_setting('platformLanguage');
 $values['disk_quota']       = round(api_get_setting('default_document_quotum')/1024/1024, 1);
 
-$values['visibility']       = COURSE_VISIBILITY_OPEN_PLATFORM;
+$default_course_visibility = api_get_setting('courses_default_creation_visibility');
+
+if (isset($default_course_visibility)) {
+    $values['visibility']       = api_get_setting('courses_default_creation_visibility');
+} else {
+    $values['visibility']       = COURSE_VISIBILITY_OPEN_PLATFORM;    
+}
 $values['subscribe']        = 1;
 $values['unsubscribe']      = 0;
 reset($teachers);

+ 2 - 2
main/create_course/add_course.php

@@ -234,8 +234,8 @@ if ($form->validate()) {
             $params['wanted_code']          = $wanted_code;
             //$params['tutor_name']           = $tutor_name;
             $params['category_code']        = $category_code;
-            $params['course_language']      = $course_language;
-            
+            $params['course_language']      = $course_language;            
+             
             $course_info = CourseManager::create_course($params); 
      
             if (!empty($course_info)) {

+ 1 - 1
main/inc/conf/add_course.conf.dist.php

@@ -8,7 +8,7 @@
  */
 
 $firstExpirationDelay			= 31536000; // <- 86400*365    // 60*60*24 = 1 jour = 86400
-$defaultVisibilityForANewCourse	= 2;
+//$defaultVisibilityForANewCourse	= 2; //Variable is no longer used. Use the platform setting: courses_default_creation_visibility
 $prefixAntiNumber				= 'z';
 $DEBUG							= false;
 

+ 18 - 13
main/inc/lib/add_course.lib.inc.php

@@ -2592,7 +2592,7 @@ function string2binary($variable) {
  * @todo use an array called $params instead of lots of params
  */
 function register_course($params) {
-    global $defaultVisibilityForANewCourse, $error_msg, $firstExpirationDelay;
+    global $error_msg, $firstExpirationDelay;
             
     $title              = $params['title'];
     $code               = $params['code'];
@@ -2609,11 +2609,21 @@ function register_course($params) {
     $disk_quota         = $params['disk_quota'];
     $subscribe          = isset($params['subscribe']) ? intval($params['subscribe']) : 0;
     $unsubscribe        = isset($params['unsubscribe']) ? intval($params['unsubscribe']) : 0;
-    $visibility         = $params['visibility'];
+    
+    if (!isset($params['visibility'])) {
+        $default_course_visibility = api_get_setting('courses_default_creation_visibility');
+        if (isset($default_course_visibility)) {
+            $visibility         = $default_course_visibility;    
+        } else {
+            $visibility         = COURSE_VISIBILITY_OPEN_PLATFORM;
+        }
+    } else {
+        $visibility         = $params['visibility'];
+    }
+    
     $expiration_date    = $params['expiration_date'];
     $teachers           = $params['teachers'];
-    $status             = $params['status'];
-    
+    $status             = $params['status'];    
 
     $TABLECOURSE		 	= Database :: get_main_table(TABLE_MAIN_COURSE);
     $TABLECOURSUSER 		= Database :: get_main_table(TABLE_MAIN_COURSE_USER);    
@@ -2637,8 +2647,7 @@ function register_course($params) {
     if (empty($title)) {
         $error_msg[] = 'title is missing';
         $ok_to_register_course = false;
-    }
-    
+    }    
 
     if (empty($expiration_date)) {
         $expiration_date = api_get_utc_datetime(time() + $firstExpirationDelay);
@@ -2646,13 +2655,9 @@ function register_course($params) {
         $expiration_date = api_get_utc_datetime($expiration_date);
     }
 
-    if ($visibility == '') {
-        $visibility = $defaultVisibilityForANewCourse;
-    } else {
-        if ($visibility < 0 || $visibility > 3) {
-            $error_msg[] = 'visibility is invalid';
-            $ok_to_register_course = false;
-        }
+    if ($visibility < 0 || $visibility > 3) {
+        $error_msg[] = 'visibility is invalid';
+        $ok_to_register_course = false;
     }
 
     if (empty($disk_quota)) {

+ 7 - 2
main/install/db_main.sql

@@ -862,7 +862,8 @@ VALUES
 ('languagePriority3', NULL, 'radio', 'Languages','user_selected_lang', 'LanguagePriority3Title', 'LanguagePriority3Comment', NULL, NULL, 0),
 ('languagePriority4', NULL, 'radio', 'Languages', 'platform_lang','LanguagePriority4Title', 'LanguagePriority4Comment', NULL, NULL, 0),
 ('login_is_email', NULL, 'radio', 'Platform', 'false', 'LoginIsEmailTitle', 'LoginIsemailComment', NULL, NULL, 0),
-('chamilo_database_version',NULL,'textfield',NULL, '1.9.0.16427','DokeosDatabaseVersion','', NULL, NULL, 0);
+('courses_default_creation_visibility', NULL, 'radio', 'Course', '2', 'CoursesDefaultCreationVisibilityTitle', 'CoursesDefaultCreationVisibilityComment', NULL, NULL, 1),
+('chamilo_database_version',NULL,'textfield',NULL, '1.9.0.17051','DokeosDatabaseVersion','', NULL, NULL, 0);
 
 /*
 ('show_tabs', 'custom_tab_1', 'checkbox', 'Platform', 'true', 'ShowTabsTitle', 'ShowTabsComment', NULL, 'TabsCustom1', 1),
@@ -1193,7 +1194,11 @@ VALUES
 ('allow_global_chat', 'true', 'Yes'),
 ('allow_global_chat', 'false', 'No'),
 ('login_is_email','true','Yes'),
-('login_is_email','false','No');
+('login_is_email','false','No'),
+('courses_default_creation_visibility', '3', 'OpenToTheWorld'),
+('courses_default_creation_visibility', '2', 'OpenToThePlatform'),
+('courses_default_creation_visibility', '1', 'Private'),
+('courses_default_creation_visibility', '0', 'CourseVisibilityClosed');
 
 UNLOCK TABLES;
 /*

+ 8 - 1
main/install/migrate-db-1.8.8-1.9.0-pre.sql

@@ -138,6 +138,13 @@ ALTER TABLE chat ADD INDEX idx_chat_from_user (from_user);
 
 INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES (1, 'google_calendar_url','Google Calendar URL',0,0);
 
+INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('courses_default_creation_visibility', NULL, 'radio', 'Course', '2', 'CoursesDefaultCreationVisibilityTitle', 'CoursesDefaultCreationVisibilityComment', NULL, NULL, 1);
+INSERT INTO settings_options (variable, value, display_text) VALUES ('courses_default_creation_visibility', '3', 'OpenToTheWorld');
+INSERT INTO settings_options (variable, value, display_text) VALUES ('courses_default_creation_visibility', '2', 'OpenToThePlatform');
+INSERT INTO settings_options (variable, value, display_text) VALUES ('courses_default_creation_visibility', '1', 'Private');
+INSERT INTO settings_options (variable, value, display_text) VALUES ('courses_default_creation_visibility', '0', 'CourseVisibilityClosed');
+
+
 -- Course ranking
 
 CREATE TABLE track_course_ranking (id   int unsigned not null PRIMARY KEY AUTO_INCREMENT,c_id  int unsigned not null, session_id  int unsigned not null default 0, url_id  int unsigned not null default 0, accesses int unsigned not null default 0, total_score int unsigned not null default 0, users int unsigned not null default 0, creation_date datetime not null);
@@ -159,7 +166,7 @@ ALTER TABLE track_e_default  MODIFY COLUMN default_value TEXT;
 INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES (1, 'user_chat_status','User chat status', 0, 0);
 
 -- Do not move this query
-UPDATE settings_current SET selected_value = '1.9.0.16427' WHERE variable = 'chamilo_database_version';
+UPDATE settings_current SET selected_value = '1.9.0.17051' WHERE variable = 'chamilo_database_version';
 
 -- xxSTATSxx
 ALTER TABLE track_e_exercices ADD COLUMN questions_to_check TEXT NOT NULL DEFAULT '';