parent
							
								
									cc34902ce3
								
							
						
					
					
						commit
						df72f6460f
					
				@ -0,0 +1,97 @@ | 
				
			||||
<?php //$id:$
 | 
				
			||||
/** | 
				
			||||
 * Defines the AICC class, which is meant to contain the aicc items (nuclear elements) | 
				
			||||
 * @package dokeos.learnpath.aicc | 
				
			||||
 * @author	Yannick Warnier <ywarnier@beeznest.org> | 
				
			||||
 * @license	GNU/GPL - See Dokeos license directory for details | 
				
			||||
 */ | 
				
			||||
/** | 
				
			||||
 * Defines the "aicc" child of class "learnpath" | 
				
			||||
 * @package dokeos.learnpath.aicc | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
class presentation extends learnpath { | 
				
			||||
 | 
				
			||||
	/** | 
				
			||||
	 * Class constructor. Based on the parent constructor. | 
				
			||||
	 * @param	string	Course code | 
				
			||||
	 * @param	integer	Learnpath ID in DB | 
				
			||||
	 * @param	integer	User ID | 
				
			||||
	 */ | 
				
			||||
    function presentation($course_code=null,$resource_id=null,$user_id=null) { | 
				
			||||
    	if($this->debug>0){error_log('In presentation::presentation()',0);} | 
				
			||||
    	if(!empty($course_code) and !empty($resource_id) and !empty($user_id)) | 
				
			||||
    	{ | 
				
			||||
    		parent::learnpath($course_code, $resource_id, $user_id); | 
				
			||||
    	}else{ | 
				
			||||
    		//do nothing but still build the presentation object | 
				
			||||
    	} | 
				
			||||
    } | 
				
			||||
     | 
				
			||||
    function convert_presentation($file){ | 
				
			||||
    	 | 
				
			||||
    	global $_course, $_user; | 
				
			||||
    	 | 
				
			||||
    	 | 
				
			||||
		// get properties of ppt file | 
				
			||||
		$document_datas = DocumentManager::get_all_document_data($_course, $file); | 
				
			||||
		$to_group_id = (empty($document_datas['to_group_id'])) ? 0 : $document_datas['to_group_id']; | 
				
			||||
		$to_user_id = (empty($document_datas['to_user_id'])) ? null : $document_datas['to_user_id']; | 
				
			||||
	 | 
				
			||||
		//create the directory | 
				
			||||
		$added_slash = '/'; | 
				
			||||
		$dir_name = $added_slash.substr($file['name'], 0, strrpos($file['name'],'.')); | 
				
			||||
		$base_work_dir = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document/'; | 
				
			||||
		$created_dir = create_unexisting_directory($_course,$_user['user_id'],$to_group_id,$to_user_id,$base_work_dir,$dir_name); | 
				
			||||
		 | 
				
			||||
		move_uploaded_file($file['tmp_name'],$base_work_dir.$file['name']); | 
				
			||||
		$file = $base_work_dir.$file['name']; | 
				
			||||
		chmod($file,0777); | 
				
			||||
		/* | 
				
			||||
		 * exec java application | 
				
			||||
		 * the parameters of the program are : | 
				
			||||
		 * - javacommand on this server ; | 
				
			||||
		 * - host where openoffice is running; | 
				
			||||
		 * - port with which openoffice is listening | 
				
			||||
		 * - file to convert | 
				
			||||
		 * - folder where put the slides | 
				
			||||
		 * - ftppassword if required | 
				
			||||
		 * The program fills $files with the list of slides created | 
				
			||||
		 */ | 
				
			||||
		$cmd = 'cd '.api_get_path(LIBRARY_PATH).'ppt2png && ./launch_ppt2png.sh java localhost 2002 "'.$file.'" "'.$base_work_dir.$created_dir.'"'; | 
				
			||||
		 | 
				
			||||
		chmod ($base_work_dir.$created_dir,0777); | 
				
			||||
		 | 
				
			||||
		$shell = exec($cmd, $files, $return); | 
				
			||||
		 | 
				
			||||
		chmod ($base_work_dir.$created_dir,0744); | 
				
			||||
		if($return != 0) { //if the java application returns an error code | 
				
			||||
			DocumentManager::delete_document($_course, $dir_name, $base_work_dir);	    	 | 
				
			||||
	    } | 
				
			||||
	     | 
				
			||||
	    else { | 
				
			||||
			// create lp | 
				
			||||
			$learnpath_name = 'lp_'; | 
				
			||||
			$learnpath_name .= basename($file); | 
				
			||||
			$learnpath_name = substr($learnpath_name,0, strrpos($learnpath_name,'.')); | 
				
			||||
			 | 
				
			||||
			$this->lp_id = learnpath::add_lp($_course['id'], $learnpath_name,'','guess','manual'); | 
				
			||||
			$previous = 0; | 
				
			||||
			foreach($files as $file){ | 
				
			||||
				$document_id = add_document($_course,$created_dir.'/'.$file,'file',filesize($base_work_dir.$created_dir.'/'.$file),$file); | 
				
			||||
				if ($document_id){ | 
				
			||||
					//put the document in item_property update | 
				
			||||
					api_item_property_update($_course,TOOL_DOCUMENT,$document_id,'DocumentAdded',$_SESSION['_uid'],$to_group_id,$to_user_id); | 
				
			||||
					 | 
				
			||||
					$infos = pathinfo($file); | 
				
			||||
					$slide_name = substr($infos['basename'],0,strpos($infos['basename'],'.')); | 
				
			||||
					$previous = learnpath::add_item(0, $previous, 'document', $document_id, $slide_name, 0); | 
				
			||||
					 | 
				
			||||
				} | 
				
			||||
			} | 
				
			||||
	    } | 
				
			||||
	     | 
				
			||||
    } | 
				
			||||
		 | 
				
			||||
} | 
				
			||||
?> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue