Browse Source

[svn r10050] new visioconference tool integration :
- remove the table settings_service which is unnecessary
- add a "url" field where the visio should point
- fill the session with usefull variables for the visio

Eric Marguin 18 years ago
parent
commit
9b4a8633e2

+ 22 - 14
main/admin/configure_extensions.php

@@ -31,7 +31,7 @@ $this_section=SECTION_PLATFORM_ADMIN;
 
 api_protect_admin_script();
 
-$tbl_settings_services = Database::get_main_table(MAIN_SETTINGS_SERVICE_TABLE);
+$tbl_settings_current = Database::get_main_table(MAIN_SETTINGS_CURRENT_TABLE);
 $message = '';
 
 if(isset($_POST['activeExtension'])){
@@ -39,15 +39,22 @@ if(isset($_POST['activeExtension'])){
 	switch ($_POST['extension_code']){
 		
 		case 'visio' :
-			$sql = 'UPDATE '.$tbl_settings_services.' SET
-					value="true"
-					WHERE variable="active"
-					AND code_service="visio"';
+			$sql = 'UPDATE '.$tbl_settings_current.' SET
+					selected_value="true"
+					WHERE variable="service_visio"
+					AND subkey="active"';
 			$rs = api_sql_query($sql, __FILE__, __LINE__);			
 			if(mysql_affected_rows()>0){
+				$sql = 'UPDATE '.$tbl_settings_current.' SET
+						selected_value="'.addslashes($_POST['visio_url']).'"
+						WHERE variable="service_visio"
+						AND subkey="url"';
+				$rs = api_sql_query($sql, __FILE__, __LINE__);	
 				$message = get_lang('ServiceActivated');
 			}
 			
+			
+			
 			// select all the courses and insert the tool inside
 			$sql = 'SELECT db_name FROM '.Database::get_main_table(MAIN_COURSE_TABLE);
 			
@@ -71,11 +78,10 @@ if(isset($_POST['activeExtension'])){
 			break;	
 			
 		case 'ppt2lp' :
-			$sql = 'UPDATE '.$tbl_settings_services.' SET
-					value="true"
-					WHERE variable="active"
-					AND code_service="ppt2lp"';
-			$rs = api_sql_query($sql, __FILE__, __LINE__);
+			$sql = 'UPDATE '.$tbl_settings_current.' SET
+					selected_value="true"
+					WHERE variable="service_ppt2lp"
+					AND subkey="active"';
 			if(mysql_affected_rows()>0){
 				$message = get_lang('ServiceActivated');
 			}
@@ -88,10 +94,11 @@ if(isset($_POST['activeExtension'])){
 $listActiveServices = array();
 
 // get the list of active services
-$sql = 'SELECT code_service FROM '.$tbl_settings_services.' WHERE variable="active" and value="true"';
+$sql = 'SELECT variable FROM '.$tbl_settings_current.' WHERE variable LIKE "service_%" AND subkey="active" and selected_value="true"';
+
 $rs = api_sql_query($sql, __FILE__, __LINE__);
 while($row = mysql_fetch_array($rs)){
-	$listActiveServices[] = $row['code_service'];
+	$listActiveServices[] = $row['variable'];
 }
 
 
@@ -193,11 +200,12 @@ Display::display_header($nameTool);
 					<td align="center" width="50%">
 						<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
 						<?php 
-						if(in_array('visio',$listActiveServices)){
+						if(in_array('service_visio',$listActiveServices)){
 							echo get_lang('ExtensionActivedButNotYetOperational');
 						}
 						else {
-								echo '
+								echo get_lang('URL').' : 
+									<input type="text" size="30" name="visio_url" /><br /><br />
 									<input type="hidden" name="extension_code" value="visio" />
 									<input type="submit" name="activeExtension" value="'.get_lang('ActiveExtension').'" />';
 						}

+ 1 - 1
main/conf/liveconf.php

@@ -11,7 +11,7 @@ $nameTool = get_lang('conference');
 Display::display_header($nameTool);
 
 
-$visio_link = api_get_path(WEB_PATH).'../lps-latest/dokeos/videoconference/videoconference.html';
+$visio_link = api_get_path(WEB_PATH).api_get_setting('service_visio','url');
 
 ?>
 <span align="center">

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

@@ -1432,7 +1432,7 @@ function fill_Db_course($courseDbName, $courseRepository, $language)
 	api_sql_query("INSERT INTO `" . $tbl_course_homepage . "` VALUES ('', '" . TOOL_STUDENTPUBLICATION . "','work/work.php','works.gif','".string2binary(api_get_setting('course_create_active_tools', 'student_publications')) . "','0','squaregrey.gif','NO','_self','interaction')");
 	
 	
-	if(api_service_is_active('visio')){
+	if(api_get_setting('service_visio','active')=='true'){
 		api_sql_query("INSERT INTO `" . $tbl_course_homepage . "` VALUES ('', '" . TOOL_VISIO . "','conf/','','1','0','squaregrey.gif','NO','_self','authoring')");
 	}
 	

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

@@ -50,7 +50,6 @@ define("MAIN_SYSTEM_ANNOUNCEMENTS_TABLE", "sys_announcement");
 define("MAIN_LANGUAGE_TABLE", "language");
 define("MAIN_SETTINGS_OPTIONS_TABLE", "settings_options");
 define("MAIN_SETTINGS_CURRENT_TABLE", "settings_current");
-define("MAIN_SETTINGS_SERVICE_TABLE", "settings_service");
 define("MAIN_SESSION_TABLE", "session");
 define("MAIN_SESSION_COURSE_TABLE", "session_rel_course");
 define("MAIN_SESSION_USER_TABLE", "session_rel_user");

+ 0 - 25
main/inc/lib/main_api.lib.php

@@ -157,31 +157,6 @@ function api_protect_course_script()
 
 
 
-/**
- * check if a service (like visioconference) is actived
- * 
- * @todo This should be stored in the dokeos_main.settings_current table. No new table is neede for this: http://www.dokeos.com/forum/viewtopic.php?t=7767
- * @param the code_service of the service
- * @return boolean
- * @author 
- */
- 
-function api_service_is_active($code_service){
-	
-	$sql = 'SELECT 1 
-			FROM '.Database::get_main_table(MAIN_SETTINGS_SERVICE_TABLE).' 
-			WHERE code_service="'.$code_service.'"
-			AND variable="active"
-			AND value="true"';
-	$rs = api_sql_query($sql, __FILE__ , __LINE__);
-	if(mysql_num_rows($rs)>0){
-		return true;
-	}
-	else {
-		return false;
-	}
-	
-} 
 
 /**
 * Function used to protect an admin script.

+ 4 - 26
main/install/dokeos_main.sql

@@ -491,7 +491,10 @@ INSERT INTO `settings_current` VALUES
 (72, 'show_email_addresses', NULL,'radio','Platform','false','ShowEmailAddresses','ShowEmailAddressesComment',NULL,NULL),
 (73, 'banner', NULL, NULL, 'Plugins', 'messages', '', NULL, NULL, NULL),
 (74,'profile','phone','checkbox','User','true','ProfileChangesTitle','ProfileChangesComment',NULL,'phone'),
-(75, 'Ajax_course_tracking_refresh', NULL, 'textfield','Course','60', 'Ajax_course_tracking_refresh','Ajax_course_tracking_refresh_comment', NULL, NULL);
+(75, 'Ajax_course_tracking_refresh', NULL, 'textfield','Course','60', 'Ajax_course_tracking_refresh','Ajax_course_tracking_refresh_comment', NULL, NULL),
+(76, 'service_visio', 'active', 'radio',NULL,false, 'visio_actived','', NULL, NULL),
+(77, 'service_visio', 'url', 'textfield',NULL,'', 'visio_url','', NULL, NULL),
+(78, 'service_ppt2lp', 'active', 'radio',NULL,false, 'ppt2lp_actived','', NULL, NULL);
 
 
 
@@ -596,31 +599,6 @@ UNLOCK TABLES;
 
 /*!40000 ALTER TABLE `settings_options` ENABLE KEYS */;
 
---
--- Table structure for table `settings_service`
---
-
-DROP TABLE IF EXISTS `settings_service`;
-
-CREATE TABLE `settings_service` (
-  `id` smallint(5) unsigned NOT NULL auto_increment,
-  `code_service` varchar(100) NOT NULL,
-  `variable` varchar(100) NOT NULL,
-  `value` varchar(255) NOT NULL,
-  PRIMARY KEY  (`id`)
-);
-
---
--- Contenu de la table `settings_service`
---
-/*!40000 ALTER TABLE `settings_service` DISABLE KEYS */;
-LOCK TABLES `settings_service` WRITE;
-INSERT INTO `settings_service` VALUES
-(1, 'visio', 'active', 'false'),
-(2, 'ppt2lp', 'active', 'false');
-UNLOCK TABLES;
-
-/*!40000 ALTER TABLE `settings_service` ENABLE KEYS */;
 
 --
 -- Table structure for table `sys_announcement`