skala
Yannick Warnier 15 years ago
commit 7c9cd4ba7b
  1. 25
      certificates/index.php
  2. 1
      main/cron/notification.php
  3. 45
      main/document/create_document.php
  4. 12
      main/document/document.inc.php
  5. 81
      main/document/document.php
  6. 12
      main/document/download.php
  7. 2
      main/document/edit_document.php
  8. 104
      main/document/show_content.php
  9. 1
      main/document/showinframes.php
  10. 266
      main/exercice/question_pool.php
  11. 5
      main/gradebook/gradebook_display_certificate.php
  12. 4
      main/gradebook/gradebook_edit_cat.php
  13. 19
      main/gradebook/index.php
  14. 2
      main/gradebook/lib/be/evaluation.class.php
  15. 2
      main/gradebook/lib/fe/catform.class.php
  16. 8
      main/gradebook/lib/fe/displaygradebook.php
  17. 9
      main/gradebook/lib/gradebook_functions.inc.php
  18. 5
      main/inc/global.inc.php
  19. 1
      main/inc/lib/career.lib.php
  20. 151
      main/inc/lib/certificate.lib.php
  21. 11
      main/inc/lib/document.lib.php
  22. 3
      main/inc/lib/message.lib.php
  23. 2
      main/inc/lib/notification.lib.php
  24. 12
      main/inc/lib/promotion.lib.php
  25. 1
      main/inc/lib/social.lib.php
  26. 18
      main/inc/lib/usermanager.lib.php
  27. 4
      main/messages/inbox.php
  28. 1
      main/messages/new_message.php
  29. 1
      main/messages/outbox.php
  30. 3
      main/messages/send_message.php
  31. 3
      main/messages/send_message_to_userfriend.inc.php
  32. 1
      main/messages/view_message.php

@ -0,0 +1,25 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Show specified user certificate
* @package chamilo.certificate
*/
/**
* Initialization
*/
$language_file= 'gradebook';
require_once '../main/inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'certificate.lib.php';
/**
* Retrieve certificate
*/
$certificate = new Certificate($_GET['id']);
/**
* Show results
*/
$certificate->show();

@ -10,7 +10,6 @@
$language_file = array('userInfo');
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'notification.lib.php';
/**
* Notification sending
*/

@ -156,16 +156,21 @@ require_once api_get_path(LIBRARY_PATH).'document.lib.php';
require_once api_get_path(SYS_CODE_PATH).'document/document.inc.php';
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
if (isset($_REQUEST['certificate'])) {
//I'm in the certification module?
$is_certificate_mode = false;
if (isset($_REQUEST['certificate']) && $_REQUEST['certificate'] == 'true') {
$is_certificate_mode = true;
}
if ($is_certificate_mode) {
$nameTools = get_lang('CreateCertificate');
} else {
$nameTools = get_lang('CreateDocument');
}
$nameTools = get_lang('CreateDocument');
/* Constants and variables */
$document_data = DocumentManager::get_document_data_by_id($_REQUEST['id'], api_get_course_id(), true);
@ -205,6 +210,13 @@ if ($dir[strlen($dir) - 1] != '/') {
$dir .= '/';
}
if ($is_certificate_mode) {
$document_id = DocumentManager::get_document_id(api_get_course_info(), '/certificates');
$document_data = DocumentManager::get_document_data_by_id($document_id, api_get_course_id(), true);
$folder_id = $document_data['id'];
$dir = '/certificates/';
}
// Configuration for the FCKEDITOR
$doc_tree = explode('/', $dir);
$count_dir = count($doc_tree) -2; // "2" because at the begin and end there are 2 "/"
@ -249,14 +261,6 @@ if (!is_dir($filepath)) {
$dir = '/';
}
//I'm in the certification module?
$is_certificate_mode = false;
$is_certificate_array = explode('/',$dir);
array_shift($is_certificate_array);
if ($is_certificate_array[0]=='certificates') {
$is_certificate_mode = true;
}
$to_group_id = 0;
if (!$is_certificate_mode) {
@ -299,10 +303,10 @@ $form = new FormValidator('create_document','post',api_get_self().'?dir='.Securi
// form title
$form->addElement('header', '', $nameTools);
if (isset($_REQUEST['certificate'])) {//added condition for certicate in gradebook
if ($is_certificate_mode) {//added condition for certicate in gradebook
$form->addElement('hidden','certificate','true',array('id'=>'certificate'));
if (isset($_GET['selectcat']))
$form->addElement('hidden','selectcat',intval($_GET['selectcat']));
$form->addElement('hidden','selectcat', intval($_GET['selectcat']));
}
$renderer = & $form->defaultRenderer();
@ -533,7 +537,7 @@ if ($form->validate()) {
if (strpos($content, '/css/frames.css') === false) {
$content = str_replace('</head>', '<style> body{margin:10px;}</style> <link rel="stylesheet" href="./css/frames.css" type="text/css" /></head>', $content);
}
}
if ($fp = @fopen($filepath.$filename.'.'.$extension, 'w')) {
$content = str_replace(api_get_path(WEB_COURSE_PATH), $_configuration['url_append'].'/courses/', $content);
@ -585,7 +589,11 @@ if ($form->validate()) {
$selectcat = '';
if (isset($_REQUEST['selectcat']))
$selectcat = "&selectcat=".Security::remove_XSS($_REQUEST['selectcat']);
header('Location: document.php?id='.$folder_id.$selectcat);
$certificate_condition = '';
if ($is_certificate_mode) {
$certificate_condition = '&certificate=true';
}
header('Location: document.php?id='.$folder_id.$selectcat.$certificate_condition);
exit ();
} else {
Display :: display_header($nameTools, 'Doc');
@ -594,7 +602,6 @@ if ($form->validate()) {
}
} else {
Display :: display_header($nameTools, 'Doc');
//api_display_tool_title($nameTools);
Display :: display_error_message(get_lang('Impossible'));
Display :: display_footer();
}
@ -629,8 +636,8 @@ if ($form->validate()) {
Display :: display_header($nameTools, "Doc");
//api_display_tool_title($nameTools);
// actions
if (isset($_REQUEST['certificate'])) {
$all_information_by_create_certificate = DocumentManager::get_all_info_to_certificate(api_get_user_id());
if ($is_certificate_mode) {
$all_information_by_create_certificate = DocumentManager::get_all_info_to_certificate(api_get_user_id(), api_get_course_id());
$str_info = '';
foreach ($all_information_by_create_certificate[0] as $info_value) {

@ -258,15 +258,17 @@ function create_document_link($document_data, $show_as_icon = false, $counter =
//|| (preg_match('/wav$/', urldecode($url)) && api_get_setting('enable_nanogong') == 'true')
) {
//yox view
$url = 'showinframesmin.php?'.api_get_cidreq().'&id='.$document_data['id'].$req_gid;
$class = 'yoxview';
//$url = 'showinframesmin.php?'.api_get_cidreq().'&id='.$document_data['id'].$req_gid;
//Simpler version of showinframesmin.php with no headers
$url = 'show_content.php?'.api_get_cidreq().'&id='.$document_data['id'].$req_gid.'&width=700&height=500';
$class = 'thickbox';
if ($visibility == false) {
$class = "yoxview invisible";
$class = "thickbox invisible";
}
return '<a href="'.$url.'" class="'.$class.'" title="'.$tooltip_title_alt.'" target="yoxview" style="float:left">'.$title.'</a>'.$force_download_html.$copy_to_myfiles.$open_in_new_window_link.$pdf_icon;
return '<a href="'.$url.'" class="'.$class.'" title="'.$tooltip_title_alt.'" style="float:left">'.$title.'</a>'.$force_download_html.$copy_to_myfiles.$open_in_new_window_link.$pdf_icon;
} else {
$url = 'showinframes.php?'.api_get_cidreq().'&id='.$document_data['id'].$req_gid;
//No yoxview
//No plugin just the old and good showinframes.php page
return '<a href="'.$url.'" title="'.$tooltip_title_alt.'" style="float:left" '.$visibility_class.' >'.$title.'</a>'.$force_download_html.$copy_to_myfiles.$open_in_new_window_link.$pdf_icon;
}
} else {

@ -69,6 +69,19 @@ $session_id = api_get_session_id();
$course_code = api_get_course_id();
$to_group_id = api_get_group_id();
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$group_member_with_upload_rights = false;
// If the group id is set, we show them group documents
$group_properties = array();
$group_properties['directory'] = null;
// For sessions we should check the parameters of visibility
if (api_get_session_id() != 0) {
$group_member_with_upload_rights = $group_member_with_upload_rights && api_is_allowed_to_session_edit(false, true);
}
//Setting group variables
if (api_get_group_id()) {
// Needed for group related stuff
@ -174,10 +187,13 @@ switch ($action) {
// I'm in the certification module?
$is_certificate_mode = DocumentManager::is_certificate_mode($_GET['curdirpath']);
if (isset($_REQUEST['certificate']) && $_REQUEST['certificate'] == 'true') {
$is_certificate_mode = true;
}
//If no actions we proceed to show the document (Hack in order to use document.php?id=X)
if (isset($document_id)) {
$document_data = DocumentManager::get_document_data_by_id($document_id, api_get_course_id(), true);
$document_data = DocumentManager::get_document_data_by_id($document_id, api_get_course_id(), true);
//If the document is not a folder we show the document
if ($document_data) {
@ -237,6 +253,9 @@ if (isset($document_id)) {
$parent_id = $document_data['parent_id'];
}
if (isset($document_data) && $document_data['path'] == '/certificates') {
$is_certificate_mode = true;
}
if (!$parent_id) {
$parent_id = 0;
@ -274,6 +293,7 @@ $tool_sql = 'SELECT visibility FROM ' . $table_course_tool . ' WHERE n
$tool_result = Database::query($tool_sql);
$tool_row = Database::fetch_array($tool_result);
$tool_visibility = $tool_row['visibility'];
if ($tool_visibility == '0' && $to_group_id == '0' && !($is_allowed_to_edit || $group_member_with_upload_rights)) {
api_not_allowed(true);
}
@ -288,18 +308,6 @@ function confirmation (name) {
}
</script>";
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$group_member_with_upload_rights = false;
// If the group id is set, we show them group documents
$group_properties = array();
$group_properties['directory'] = null;
// For sessions we should check the parameters of visibility
if (api_get_session_id() != 0) {
$group_member_with_upload_rights = $group_member_with_upload_rights && api_is_allowed_to_session_edit(false, true);
}
// If they are looking at group documents they can't see the root
if ($to_group_id != 0 && $curdirpath == '/') {
$curdirpath = $group_properties['directory'];
@ -392,23 +400,25 @@ if (empty($document_data['parents'])) {
if (isset($_GET['createdir'])) {
$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('CreateDir'));
}
$htmlHeadXtra[] = api_get_jquery_js();
$htmlHeadXtra[] = api_get_jquery_ui_js();
$js_path = api_get_path(WEB_LIBRARY_PATH).'javascript/';
/*
$htmlHeadXtra[] = '<script type="text/javascript" src="'.$js_path.'yoxview/yox.js"></script>';
$htmlHeadXtra[] = api_get_js('yoxview/yoxview-init.js');
$js_path = api_get_path(WEB_LIBRARY_PATH).'javascript/';
$htmlHeadXtra[] = '<link rel="stylesheet" href="'.$js_path.'yoxview/yoxview.css" type="text/css">';
*/
$htmlHeadXtra[] = '<link rel="stylesheet" href="'.$js_path.'jquery-jplayer/skins/chamilo/jplayer.blue.monday.css" type="text/css">';
$htmlHeadXtra[] = '<script type="text/javascript" src="'.$js_path.'jquery-jplayer/jquery.jplayer.min.js"></script>';
$mediaplayer_path = api_get_path(WEB_LIBRARY_PATH).'mediaplayer/player.swf';
//automatic loading the course language for yoxview
$yoxview_code_translation_table = array('' => 'en', 'pt' => 'pt-Pt', 'sr' => 'sr_latn');
/*$yoxview_code_translation_table = array('' => 'en', 'pt' => 'pt-Pt', 'sr' => 'sr_latn');
$lang_yoxview = api_get_language_isocode();
$lang_yoxview = isset($yoxview_code_translation_table[$lang_yoxview]) ? $yoxview_code_translation_table[$lang_yoxview] : $lang_yoxview;
*/
$docs_and_folders = DocumentManager::get_all_document_data($_course, $curdirpath, $to_group_id, null, $is_allowed_to_edit || $group_member_with_upload_rights, false);
$file_list = $format_list = '';
@ -443,15 +453,14 @@ foreach ($docs_and_folders as $file) {
}
$htmlHeadXtra[] = '<script type="text/javascript">
$(document).ready( function() {
$(".yoxview").yoxview({
$(document).ready( function() {
/*
$(".yoxview").yoxview({
lang: "'.$lang_yoxview.'",
flashVideoPlayerPath: "'.$mediaplayer_path.'",
allowInternalLinks:true,
defaultDimensions: { iframe: { width: 800}},
titleAttribute : "alt"
});
defaultDimensions: { iframe: { width: 800}},
});*/
//Experimental changes to preview mp3, ogg files
'.$jquery.'
@ -871,17 +880,17 @@ if ($folders === false) {
}
echo '<div class="actions">';
//if ($is_allowed_to_edit || $group_member_with_upload_rights){
/* BUILD SEARCH FORM */
echo '<span style="display:inline-block;">';
$form = new FormValidator('search_document', 'get', '', '', null, false);
$renderer = & $form->defaultRenderer();
$renderer->setElementTemplate('<span>{element}</span> ');
$form->add_textfield('keyword', '', false);
$form->addElement('style_submit_button', 'submit', get_lang('Search'), 'class="search"');
$form->display();
echo '</span>';
//}
if (!$is_certificate_mode) {
/* BUILD SEARCH FORM */
echo '<span style="display:inline-block;">';
$form = new FormValidator('search_document', 'get', '', '', null, false);
$renderer = & $form->defaultRenderer();
$renderer->setElementTemplate('<span>{element}</span> ');
$form->add_textfield('keyword', '', false);
$form->addElement('style_submit_button', 'submit', get_lang('Search'), 'class="search"');
$form->display();
echo '</span>';
}
/* GO TO PARENT DIRECTORY */
if ($curdirpath!= '/' && $curdirpath != $group_properties['directory'] && !$is_certificate_mode) {

@ -71,8 +71,16 @@ if (substr($refer_script, 0, 15) == '/fillsurvey.php') {
if (Security::check_abs_path($sys_course_path.$doc_url, $sys_course_path.'/')) {
$full_file_name = $sys_course_path.$doc_url;
// Check visibility of document and paths
$is_visible = DocumentManager::check_visibility_tree($document_id, api_get_course_id(), api_get_session_id(), api_get_user_id());
// Check visibility of document and paths doc_url
//var_dump($document_id, api_get_course_id(), api_get_session_id(), api_get_user_id());
$is_visible = false;
$course_info = api_get_course_info(api_get_course_id());
$document_id = DocumentManager::get_document_id($course_info, $doc_url);
if ($document_id) {
$is_visible = DocumentManager::check_visibility_tree($document_id, api_get_course_id(), api_get_session_id(), api_get_user_id());
}
//$is_visible = DocumentManager::is_visible($doc_url, $_course, api_get_session_id());
if (!api_is_allowed_to_edit() && !$is_visible) {
Display::display_error_message(get_lang('ProtectedDocument'));//api_not_allowed backbutton won't work.

@ -493,7 +493,7 @@ if ($owner_id == api_get_user_id() || api_is_platform_admin() || $is_allowed_to_
$form->addElement('html', '<div id="frmModel" style="display:block; height:525px; width:240px; position:absolute; top:115px; left:1px;"></div>');
*/
if (isset($_REQUEST['curdirpath']) && $dir =='/certificates') {
$all_information_by_create_certificate=DocumentManager::get_all_info_to_certificate(api_get_user_id());
$all_information_by_create_certificate=DocumentManager::get_all_info_to_certificate(api_get_user_id(), api_get_course_id());
$str_info='';
foreach ($all_information_by_create_certificate[0] as $info_value) {
$str_info.=$info_value.'<br/>';

@ -0,0 +1,104 @@
<?php
/* For licensing terms, see /license.txt */
/**
* @author jmontoya
*
* @package chamilo.document
*/
/**
* Code
*/
/* INITIALIZATION */
$language_file[] = 'document';
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'document.lib.php';
require_once api_get_path(LIBRARY_PATH).'glossary.lib.php';
require_once api_get_path(LIBRARY_PATH).'groupmanager.lib.php';
// Protection
api_protect_course_script();
$noPHP_SELF = true;
$header_file = Security::remove_XSS($_GET['file']);
$document_id = intval($_GET['id']);
$course_info = api_get_course_info();
$course_code = api_get_course_id();
if (empty($course_info)) {
api_not_allowed(true);
}
//Generate path
if (!$document_id) {
$document_id = DocumentManager::get_document_id($course_info, $header_file);
}
$document_data = DocumentManager::get_document_data_by_id($document_id, $course_code);
if (empty($document_data)) {
api_not_allowed(true);
}
$header_file = $document_data['path'];
$name_to_show = cut($header_file, 80);
$path_array = explode('/', str_replace('\\', '/', $header_file));
$path_array = array_map('urldecode', $path_array);
$header_file = implode('/', $path_array);
$file = Security::remove_XSS(urldecode($document_data['path']));
$file_root = $course_info['path'].'/document'.str_replace('%2F', '/', $file);
$file_url_sys = api_get_path(SYS_COURSE_PATH).$file_root;
$file_url_web = api_get_path(WEB_COURSE_PATH).$file_root;
if (!file_exists($file_url_sys)) {
api_not_allowed(true);
}
if (is_dir($file_url_sys)) {
api_not_allowed(true);
}
//fix the screen when you try to access a protected course through the url
$is_allowed_in_course = $_SESSION ['is_allowed_in_course'];
if ($is_allowed_in_course == false) {
api_not_allowed(true);
}
//Check user visibility
//$is_visible = DocumentManager::is_visible_by_id($document_id, $course_info, api_get_session_id(), api_get_user_id());
$is_visible = DocumentManager::check_visibility_tree($document_id, api_get_course_id(), api_get_session_id(), api_get_user_id());
if (!api_is_allowed_to_edit() && !$is_visible) {
api_not_allowed(true);
}
//TODO:clean all code
/* Main section */
header('Expires: Wed, 01 Jan 1990 00:00:00 GMT');
//header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Last-Modified: Wed, 01 Jan 2100 00:00:00 GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
$browser_display_title = 'Documents - '.Security::remove_XSS($_GET['cidReq']).' - '.$file;
$file_url_web = api_get_path(WEB_COURSE_PATH).$_course['path'].'/document'.$header_file.'?'.api_get_cidreq();
$pathinfo = pathinfo($header_file);
if ($pathinfo['extension']=='wav' && api_get_setting('enable_nanogong') == 'true'){
echo '<div align="center">';
echo '<br/>';
echo '<applet id="applet" archive="../inc/lib/nanogong/nanogong.jar" code="gong.NanoGong" width="160" height="40" >';
echo '<param name="SoundFileURL" value="'.$file_url_web.'" />';
echo '<param name="ShowSaveButton" value="false" />';
echo '<param name="ShowTime" value="true" />';
echo '<param name="ShowRecordButton" value="false" />';
echo '</applet>';
echo '</div>';
} else {
if ($pathinfo['extension']=='swf') { $width='83%'; $height='83%';} else {$width='100%'; $height='100%';}
echo '<iframe border="0" frameborder="0" scrolling="no" style="width:'.$width.'; height:'.$height.';background-color:#ffffff;" id="mainFrame" name="mainFrame" src="'.$file_url_web.'?'.api_get_cidreq().'&amp;rand='.mt_rand(1, 10000).'"></iframe>';
}

@ -86,6 +86,7 @@ if ($is_allowed_in_course == false) {
//$is_visible = DocumentManager::is_visible_by_id($document_id, $course_info, api_get_session_id(), api_get_user_id());
$is_visible = DocumentManager::check_visibility_tree($document_id, api_get_course_id(), api_get_session_id(), api_get_user_id());
if (!api_is_allowed_to_edit() && !$is_visible) {
api_not_allowed(true);
}

@ -27,19 +27,21 @@ $this_section=SECTION_COURSES;
$is_allowedToEdit=api_is_allowed_to_edit(null,true);
if ( empty ( $delete ) ) {
if (empty($delete)) {
$delete = intval($_GET['delete']);
}
if ( empty ( $recup ) ) {
$recup = intval($_GET['recup']);
}
if ( empty ( $fromExercise ) ) {
$fromExercise = intval($_GET['fromExercise']);
$fromExercise = intval($_REQUEST['fromExercise']);
}
if(isset($_GET['exerciseId'])){
$exerciseId = intval($_GET['exerciseId']);
}
if(isset($_GET['exerciseLevel'])){
$exerciseLevel = -1;
if(isset($_REQUEST['exerciseLevel'])){
$exerciseLevel = intval($_REQUEST['exerciseLevel']);
}
if(isset($_GET['answerType'])){
@ -64,7 +66,7 @@ $selected_course = intval($_GET['selected_course']);
// maximum number of questions on a same page
$limitQuestPage=50;
$limitQuestPage = 20;
// document path
$documentPath = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document';
@ -84,7 +86,7 @@ if ($is_allowedToEdit) {
//Duplicating a Question
if ($copy_question != 0 && isset($fromExercise)) {
if (!isset($_POST['recup']) && $copy_question != 0 && isset($fromExercise)) {
$origin_course_id = intval($_GET['course_id']);
$origin_course_info = api_get_course_info_by_id($origin_course_id);
$current_course = api_get_course_info();
@ -92,39 +94,40 @@ if ($is_allowedToEdit) {
//Reading the source question
$old_question_obj = Question::read($old_question_id, $origin_course_id);
$old_question_obj->updateTitle($old_question_obj->selectTitle().' - '.get_lang('Copy'));
//Duplicating the source question, in the current course
$new_id = $old_question_obj->duplicate($current_course);
//Reading new question
$new_question_obj = Question::read($new_id);
$new_question_obj->addToList($fromExercise);
//Reading Answers obj of the current course
$new_answer_obj = new Answer($old_question_id, $origin_course_id);
$new_answer_obj->read();
//Duplicating the Answers in the current course
$new_answer_obj->duplicate($new_id, $current_course);
// destruction of the Question object
unset($new_question_obj);
unset($old_question_obj);
if (!$objExcercise instanceOf Exercise) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
// adds the question ID represented by $recup into the list of questions for the current exercise
//$objExercise->addToList($new_id);
api_session_register('objExercise');
if ($old_question_obj) {
$old_question_obj->updateTitle($old_question_obj->selectTitle().' - '.get_lang('Copy'));
//Duplicating the source question, in the current course
$new_id = $old_question_obj->duplicate($current_course);
//Reading new question
$new_question_obj = Question::read($new_id);
$new_question_obj->addToList($fromExercise);
//Reading Answers obj of the current course
$new_answer_obj = new Answer($old_question_id, $origin_course_id);
$new_answer_obj->read();
//Duplicating the Answers in the current course
$new_answer_obj->duplicate($new_id, $current_course);
// destruction of the Question object
unset($new_question_obj);
unset($old_question_obj);
if (!$objExcercise instanceOf Exercise) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
api_session_register('objExercise');
}
header("Location: admin.php?".api_get_cidreq()."&exerciseId=$fromExercise");
exit();
}
// deletes a question from the data base and all exercises
if($delete) {
if ($delete) {
// construction of the Question object
// if the question exists
if($objQuestionTmp = Question::read($delete))
@ -136,6 +139,7 @@ if ($is_allowedToEdit) {
// destruction of the Question object
unset($objQuestionTmp);
} elseif($recup && $fromExercise) {
/*
// gets an existing question and copies it into a new exercise
$objQuestionTmp = Question :: read($recup);
@ -155,24 +159,63 @@ if ($is_allowedToEdit) {
$objExercise->addToList($recup);
api_session_register('objExercise');
header("Location: admin.php?".api_get_cidreq()."&exerciseId=$fromExercise");
exit();
exit();*/
} else if( isset($_POST['recup']) && is_array($_POST['recup']) && $fromExercise) {
$list_recup = $_POST['recup'];
foreach ($list_recup as $recup) {
$recup = intval($recup);
// if the question exists
if($objQuestionTmp = Question :: read($recup)) {
// adds the exercise ID represented by $fromExercise into the list of exercises for the current question
$objQuestionTmp->addToList($fromExercise);
$list_recup = $_POST['recup'];
foreach ($list_recup as $course_id => $question_data) {
$origin_course_id = intval($course_id);
$origin_course_info = api_get_course_info_by_id($origin_course_id);
$current_course = api_get_course_info();
foreach ($question_data as $old_question_id) {
/*
$recup = intval($recup);
// if the question exists
if($objQuestionTmp = Question :: read($recup)) {
// adds the exercise ID represented by $fromExercise into the list of exercises for the current question
$objQuestionTmp->addToList($fromExercise);
}
// destruction of the Question object
unset($objQuestionTmp);
if(!$objExcercise instanceOf Exercise) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
// adds the question ID represented by $recup into the list of questions for the current exercise
$objExercise->addToList($recup);
*/
//Reading the source question
$old_question_obj = Question::read($old_question_id, $origin_course_id);
if ($old_question_obj) {
$old_question_obj->updateTitle($old_question_obj->selectTitle().' - '.get_lang('Copy'));
//Duplicating the source question, in the current course
$new_id = $old_question_obj->duplicate($current_course);
//Reading new question
$new_question_obj = Question::read($new_id);
$new_question_obj->addToList($fromExercise);
//Reading Answers obj of the current course
$new_answer_obj = new Answer($old_question_id, $origin_course_id);
$new_answer_obj->read();
//Duplicating the Answers in the current course
$new_answer_obj->duplicate($new_id, $current_course);
// destruction of the Question object
unset($new_question_obj);
unset($old_question_obj);
if (!$objExcercise instanceOf Exercise) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
}
}
// destruction of the Question object
unset($objQuestionTmp);
if(!$objExcercise instanceOf Exercise) {
$objExercise = new Exercise();
$objExercise->read($fromExercise);
}
// adds the question ID represented by $recup into the list of questions for the current exercise
$objExercise->addToList($recup);
}
api_session_register('objExercise');
header("Location: admin.php?".api_get_cidreq()."&exerciseId=$fromExercise");
@ -227,7 +270,7 @@ $session_select_list = array();
foreach($session_list as $item) {
$session_select_list[$item['id']] = $item['name'];
}
$select_session_html = Display::select('session_id', $session_select_list, $session_id, array('onchange'=>'submit_form(this);'));
$select_session_html = Display::select('session_id', $session_select_list, $session_id, array('class'=>'chzn-select','onchange'=>'submit_form(this);'));
echo Display::form_row(get_lang('Session'), $select_session_html);
//Course list
@ -242,7 +285,7 @@ foreach ($course_list as $item) {
$course_select_list[$item['id']] = $item['title'];
}
$select_course_html = Display::select('selected_course', $course_select_list, $selected_course, array('onchange'=>'submit_form(this);'));
$select_course_html = Display::select('selected_course', $course_select_list, $selected_course, array('class'=>'chzn-select','onchange'=>'submit_form(this);'));
echo Display::form_row(get_lang('Course'), $select_course_html);
if (empty($selected_course) || $selected_course == '-1') {
@ -261,8 +304,6 @@ $TBL_REPONSES = Database::get_course_table(TABLE_QUIZ_ANSWER,
$exercise_list = get_all_exercises($course_info, $session_id);
echo '<input type="hidden" name="fromExercise" value="'.$fromExercise.'">';
//Exercise List
$my_exercise_list = array();
$my_exercise_list['0'] = get_lang('AllExercises');
@ -275,18 +316,18 @@ if (is_array($exercise_list)) {
}
}
}
$select_exercise_html = Display::select('exerciseId', $my_exercise_list, $exerciseId, array('onchange'=>'submit_form(this);'), false);
$select_exercise_html = Display::select('exerciseId', $my_exercise_list, $exerciseId, array('class'=>'chzn-select','onchange'=>'submit_form(this);'), false);
echo Display::form_row(get_lang('Exercise'), $select_exercise_html);
//Difficulty list (only from 0 to 5)
$select_difficulty_html = Display::select('exerciseLevel', array(0=>0, 1=>1,2=>2,3=>3,4=>4,5=>5), $exerciseLevel, array('onchange'=>'submit_form(this);'));
//Difficulty list (only from 0 to 5)
$select_difficulty_html = Display::select('exerciseLevel', array(-1 => get_lang('All'), 0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5), $exerciseLevel, array('class'=>'chzn-select', 'onchange'=>'submit_form(this);'), false);
echo Display::form_row(get_lang('Difficulty'), $select_difficulty_html);
//Answer type
$question_list = Question::get_types_information();
$new_question_list = array();
$new_question_list['-1'] = get_lang('All');
$objExercise->feedbacktype;
foreach ($question_list as $key=>$item) {
if ($objExercise->feedbacktype == EXERCISE_FEEDBACK_TYPE_DIRECT) {
@ -303,7 +344,7 @@ foreach ($question_list as $key=>$item) {
}
//Answer type list
$select_answer_html = Display::select('answerType', $new_question_list, $answerType, array('onchange'=>'submit_form(this);'));
$select_answer_html = Display::select('answerType', $new_question_list, $answerType, array('class'=>'chzn-select','onchange'=>'submit_form(this);'), false);
echo Display::form_row(get_lang('AnswerType'), $select_answer_html);
$button = '<button class="save" type="submit" name="name" value="'.get_lang('Filter').'">'.get_lang('Filter').'</button>';
echo Display::form_row('', $button);
@ -311,12 +352,14 @@ echo Display::form_row('', $button);
</form>
<div class="clear"></div>
<form method="post" action="<?php echo $url.'?'.api_get_cidreq().'&fromExercise='.$fromExercise; ?>" >
<?php
echo '<input type="hidden" name="course_id" value="'.$selected_course.'">';
echo '<table class="data_table">';
$from=$page*$limitQuestPage;
// if we have selected an exercise in the list-box 'Filter'
$from = $page * $limitQuestPage;
$show_pagination = true;
// if we have selected an exercise in the list-box 'Filter'
if ($exerciseId > 0) {
//$sql="SELECT id,question,type FROM $TBL_EXERCICE_QUESTION,$TBL_QUESTIONS WHERE question_id=id AND exercice_id='".Database::escape_string($exerciseId)."' ORDER BY question_order LIMIT $from, ".($limitQuestPage + 1);
$where = '';
@ -332,9 +375,9 @@ if ($exerciseId > 0) {
$where .= ' type='.$answerType.' AND ';
}
$sql="SELECT id,question,type,level
$sql = "SELECT id,question,type,level
FROM $TBL_EXERCICE_QUESTION,$TBL_QUESTIONS
WHERE $where question_id=id AND exercice_id='".Database::escape_string($exerciseId)."'
WHERE $where question_id=id AND exercice_id='".$exerciseId."'
ORDER BY question_order";
$result=Database::query($sql);
@ -383,7 +426,7 @@ if ($exerciseId > 0) {
$answer_where = ' questions.type='.$answerType.' AND ';
}
$sql='SELECT questions.id, questions.question, questions.type, quizz_questions.exercice_id , level, session_id
$sql = 'SELECT questions.id, questions.question, questions.type, quizz_questions.exercice_id , level, session_id
FROM '.$TBL_QUESTIONS.' as questions LEFT JOIN '.$TBL_EXERCICE_QUESTION.' as quizz_questions
ON questions.id=quizz_questions.question_id LEFT JOIN '.$TBL_EXERCICES.' as exercices
ON exercice_id=exercices.id
@ -396,9 +439,8 @@ if ($exerciseId > 0) {
}
} else {
$show_pagination = false;
// if we have not selected any option in the list-box 'Filter'
//$sql="SELECT id,question,type FROM $TBL_QUESTIONS LIMIT $from, ".($limitQuestPage + 1);
$filter = '';
if (isset($type) && $type==1){
@ -418,11 +460,11 @@ if ($exerciseId > 0) {
}
$new_limit_page = $limitQuestPage + 1;
if ($session_id != 0) {
if ($session_id != 0) {
$main_question_list = array();
if (!empty($course_list))
foreach ($course_list as $course_item) {
foreach ($course_list as $course_item) {
if (!empty($selected_course) && $selected_course != '-1') {
if ($selected_course != $course_item['id']) {
continue;
@ -454,7 +496,13 @@ if ($exerciseId > 0) {
continue;
}
}
$question_row = array('id'=>$question_obj->id, 'question'=>$question_obj->question, 'type'=>$question_obj->type, 'level'=>$question_obj->level, 'exercise_id'=>$exercise['id']);
$question_row = array( 'id' => $question_obj->id,
'question' => $question_obj->question,
'type' => $question_obj->type,
'level' => $question_obj->level,
'exercise_id' => $exercise['id'],
'course_id' => $course_item['id'],
);
$main_question_list[] = $question_row;
}
@ -467,52 +515,55 @@ if ($exerciseId > 0) {
//By default
$sql="SELECT qu.id, question, qu.type, level, q.session_id FROM $TBL_QUESTIONS as qu, $TBL_EXERCICE_QUESTION as qt, $TBL_EXERCICES as q
WHERE q.id=qt.exercice_id AND qu.id=qt.question_id AND qt.exercice_id<>".$fromExercise." $filter ORDER BY session_id ASC LIMIT $from, $new_limit_page";
$result = Database::query($sql);
while($row = Database::fetch_array($result, 'ASSOC')) {
$main_question_list[] = $row;
}
}
// forces the value to 0
$exerciseId=0;
}
$nbrQuestions = count($main_question_list);
echo '<tr>',
'<td colspan="',($fromExercise?4:4),'">',
'<table border="0" cellpadding="0" cellspacing="0" width="100%">',
'<tr>',
'<td>';
echo '</td>',
'<td align="right">';
if(!empty($page)) {
echo '<a href="',api_get_self(),'?',api_get_cidreq(),'&exerciseId=',$exerciseId,'&fromExercise=',$fromExercise,'&page=',($page-1),'&answerType=',$answerType,'&exerciseLevel='.$exerciseLevel.'">';
echo Display::return_icon('action_prev.png');
echo '&nbsp;'.get_lang('PreviousPage'),'</a> | ';
if ($show_pagination) {
echo '<tr>',
'<td colspan="',($fromExercise?4:4),'">',
'<table border="0" cellpadding="0" cellspacing="0" width="100%">',
'<tr><td align="right">';
} elseif($nbrQuestions > $limitQuestPage) {
echo Display::return_icon('action_prev_na.png');
echo '&nbsp;'.get_lang('PreviousPage'),' | ';
}
if($nbrQuestions > $limitQuestPage) {
echo '<a href="',api_get_self(),'?',api_get_cidreq(),'&exerciseId=',$exerciseId,'&fromExercise=',$fromExercise,'&page=',($page+1),'&answerType=',$answerType,'&exerciseLevel='.$exerciseLevel.'">',get_lang('NextPage').'&nbsp;';
echo Display::return_icon('action_next.png');
echo '</a>';
if(!empty($page)) {
echo '<a href="',api_get_self(),'?',api_get_cidreq(),'&exerciseId=',$exerciseId,'&fromExercise=',$fromExercise,'&page=',($page-1),'&session_id='.$session_id.'&selected_course='.$selected_course.'&answerType=',$answerType,'&exerciseLevel='.$exerciseLevel.'">';
echo Display::return_icon('action_prev.png');
echo '&nbsp;';
} elseif($nbrQuestions > $limitQuestPage) {
echo Display::return_icon('action_prev_na.png');
echo '&nbsp;';
}
} elseif($page) {
echo get_lang('NextPage');
echo '&nbsp;'.Display::return_icon('action_next_na.png');
if($nbrQuestions > $limitQuestPage) {
echo '<a href="',api_get_self(),'?',api_get_cidreq(),'&exerciseId=',$exerciseId,'&fromExercise=',$fromExercise,'&page=',($page+1),'&session_id='.$session_id.'&selected_course='.$selected_course.'&answerType=',$answerType,'&exerciseLevel='.$exerciseLevel.'">';
echo Display::return_icon('action_next.png');
echo '</a>';
} elseif($page) {
echo Display::return_icon('action_next_na.png');
echo '&nbsp;';
}
echo '</td>
</tr>
</table>
</td>
</tr>';
}
echo '</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#e6e6e6">';
echo '<tr>';
if (!empty($fromExercise)) {
if (api_get_session_id() == 0 ){
echo '<th width="4%"> </th>';
}
echo '<th>',get_lang('Question'),'</th>',
'<th>',get_lang('Level'),'</th>',
'<th>',get_lang('Difficulty'),'</th>',
'<th>',get_lang('Reuse'),'</th>';
} else {
echo '<td width="60%" align="center">',get_lang('Question'),'</td>',
@ -525,6 +576,12 @@ $i=1;
$session_id = api_get_session_id();
if (!empty($main_question_list))
foreach ($main_question_list as $row) {
$my_course_id = 0;
if (isset($row['course_id'])) {
$my_course_id = $row['course_id'];
}
// if we come from the exercise administration to get a question,
// don't show the questions already used by that exercise
@ -533,7 +590,7 @@ foreach ($main_question_list as $row) {
if (!$fromExercise || !isset($objExercise) || !($objExercise instanceOf Exercise) || (is_array($objExercise->questionList)) ) {
echo '<tr ',($i%2==0?'class="row_odd"':'class="row_even"'),'>';
if (api_get_session_id() == 0 ){
echo '<td align="center"> <input type="checkbox" value="'.$row['id'].'" name="recup[]"/></td>';
echo '<td align="center"> <input type="checkbox" value="'.$row['id'].'" name="recup['.$my_course_id.'][]"/></td>';
}
echo ' <td><a href="admin.php?',api_get_cidreq(),'&editQuestion=',$row['id'],'&fromExercise='.$fromExercise.'&answerType='.$row['type'].'">',$row['question'],'</a></td>';
echo ' <td align="center" >';
@ -546,7 +603,8 @@ foreach ($main_question_list as $row) {
} else {
echo $row['level'],'</td>',
'<td align="center">';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;copy_question='.$row['id'].'&course_id='.$selected_course.'&fromExercise=',$fromExercise,'">';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;copy_question='.$row['id'].'&course_id='.$my_course_id.'&fromExercise=',$fromExercise,'">';
echo ' '.Display::return_icon('cd.gif', get_lang('ReUseACopyInCurrentTest'));
echo '</a> ';
if ($row['session_id'] == $session_id) {

@ -111,8 +111,8 @@ echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates'));
<td>
<table class="data_table" width="100%" >
<?php
$list_certificate = get_list_gradebook_certificates_by_user_id ($value['user_id'],$cat_id);
foreach ($list_certificate as $index_certificate=>$value_certificate) {
$list_certificate = get_list_gradebook_certificates_by_user_id ($value['user_id'], $cat_id);
foreach ($list_certificate as $index_certificate => $value_certificate) {
?>
<tr >
<td width="50%"><?php echo get_lang('Score').' : '.$value_certificate['score_certificate'] ?></td>
@ -120,6 +120,7 @@ echo Display::tag('h3', get_lang('GradebookListOfStudentsCertificates'));
<td width="20%">
<?php
$url = "index.php?export_certificate=yes&cat_id=".$cat_id."&user=".$value['user_id'];
//$url = api_get_path(WEB_PATH).'certificates/?id=';
$certificates = Display::url(Display::return_icon('certificate.png', get_lang('Certificates'), array(), 22), $url, array('target'=>'_blank'));
echo $certificates;
?>

@ -35,12 +35,12 @@ if ($form->validate()) {
$cat->set_parent_id($values['hid_parent_id']);
$cat->set_weight($values['weight']);
$cat->set_certificate_min_score($values['certif_min_score']);
if (empty ($values['visible'])) {
/*if (empty ($values['visible'])) {
$visible = 0;
} else {
$visible = 1;
}
$cat->set_visible($visible);
$cat->set_visible($visible);*/
$cat->save();
header('Location: '.Security::remove_XSS($_SESSION['gradebook_dest']).'?editcat=&selectcat=' . $cat->get_parent_id());
exit;

@ -608,6 +608,7 @@ if (isset ($_GET['studentoverview'])) {
if (empty($user_id)) {
api_not_allowed();
}
$my_category = Category :: load($category); //hack replace $category = Category :: load ($_GET['cat_id']); to get de course name in certificates
global $charset;
@ -626,7 +627,7 @@ if (isset ($_GET['studentoverview'])) {
echo @file_get_contents($user_certificate);
}
} else {
$new_content_html = get_user_certificate_content($user_id, true);
$new_content_html = get_user_certificate_content($user_id, api_get_course_id(), true);
if (empty($new_content_html)) {
Display :: display_reduced_header();
Display :: display_warning_message(get_lang('NoCertificateAvailable'));
@ -675,7 +676,7 @@ if (isset ($_GET['studentoverview'])) {
$name = $data['path_certificate'];
if (!empty($data)) {
$new_content_html = get_user_certificate_content($user_id, false);
$new_content_html = get_user_certificate_content($user_id, api_get_course_id(), false);
if ($cat_id = strval(intval($cat_id))) {
$my_path_certificate = $path_directory_user_certificate.$name;
@ -847,12 +848,16 @@ if ($category != '0') {
//$score_compare = ($scoretotal[0] / $scoretotal[1]) * 100; //build the total percentage obtained in order to compare it to the minimum certification percentage
if (isset($certificate_min_score) && $item_value >= $certificate_min_score) {
$url = api_get_path(WEB_CODE_PATH) .'gradebook/'.Security::remove_XSS($_SESSION['gradebook_dest']).'?export_certificate=yes&cat_id='.$cats[0]->get_id();
$certificates = Display::url(Display::return_icon('certificate.png', get_lang('Certificates'), array(), 48), $url, array('target'=>'_blank'));
echo '<div class="actions" align="right">';
echo $certificates;
echo '</div>';
$my_certificate = get_certificate_by_user_id($cats[0]->get_id(), api_get_user_id());
if (!empty($my_certificate)) {
$url = api_get_path(WEB_PATH) .'certificates/?id='.$my_certificate['id'];
$certificates = Display::url(Display::return_icon('certificate.png', get_lang('Certificates'), array(), 48), $url, array('target'=>'_blank'));
echo '<div class="actions" align="right">';
echo $certificates;
echo '<br />'.Display::url($url, $url, array('_blank'));
echo '</div>';
}
}
} //end hack

@ -177,7 +177,7 @@ class Evaluation implements GradebookItem
else $sql .= ' WHERE';
$sql .= ' visible = '.intval($locked);
$paramcount ++;
}
}
$result = Database::query($sql);
$alleval = Evaluation::create_evaluation_objects_from_sql_result($result);
return $alleval;

@ -135,7 +135,7 @@ class CatForm extends FormValidator {
$this->addElement('hidden','hid_user_id');
$this->addElement('hidden','hid_parent_id');
$this->addElement('textarea', 'description', get_lang('Description'),array('rows'=>'3','cols' => '34'));
$this->addElement('checkbox', 'visible',get_lang('Visible'));
// $this->addElement('checkbox', 'visible',get_lang('Visible'));
$this->addElement('style_submit_button', null, get_lang('EditCategory'), 'class="save"');
$this->addRule('weight',get_lang('OnlyNumbers'),'numeric');
$this->addRule('weight',get_lang('NoDecimals'),'nopunctuation');

@ -332,13 +332,17 @@ class DisplayGradebook
}
if (!$message_resource) {
$myname=$catobj->shows_all_information_an_category($catobj->get_id());
$myname = $catobj->shows_all_information_an_category($catobj->get_id());
$my_course_id=api_get_course_id();
$my_file= substr($_SESSION['gradebook_dest'],0,5);
$header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '">'.Display::return_icon('stats.png', get_lang('FlatView'),'','32').'</a>';
$header .= '<td style="vertical-align: top;"><a href="../document/document.php?curdirpath=/certificates&'.$my_api_cidreq.'&origin=gradebook&selectcat=' . $catobj->get_id() . '">'.Display::return_icon('certificate.png', get_lang('AttachCertificate'),'','32').'</a>';
$header .= '<td style="vertical-align: top;"><a href="../document/document.php?curdirpath=/certificates&'.$my_api_cidreq.'&origin=gradebook&selectcat=' . $catobj->get_id() . '">'.
Display::return_icon('certificate.png', get_lang('AttachCertificate'),'','32').
'</a>';
$header .= '<td style="vertical-align: top;"><a href="gradebook_display_certificate.php?'.$my_api_cidreq.'&amp;cat_id='.(int)$_GET['selectcat'].'">'.Display::return_icon('certificate_list.png', get_lang('GradebookSeeListOfStudentsCertificates'),'','32').'</a>';
$visibility_icon = ($catobj->is_visible() == 0) ? 'invisible' : 'visible';

@ -598,14 +598,13 @@ function delete_certificate($cat_id, $user_id) {
}
}
function get_user_certificate_content($user_id, $is_preview = false) {
//generate document HTML
$course_id = api_get_course_id();
$content_html = DocumentManager::replace_user_info_into_html($user_id, $course_id, $is_preview);
function get_user_certificate_content($user_id, $course_code, $is_preview = false) {
//generate document HTML
$content_html = DocumentManager::replace_user_info_into_html($user_id, $course_code, $is_preview);
$new_content = explode('</head>', $content_html);
$new_content_html = $new_content[1];
$path_image = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/document/images/gallery';
$path_image = api_get_path(WEB_COURSE_PATH).api_get_course_path($course_code).'/document/images/gallery';
$new_content_html = str_replace('../images/gallery',$path_image,$new_content_html);
$path_image_in_default_course = api_get_path(WEB_CODE_PATH).'default_course_document';

@ -101,12 +101,13 @@ require_once $lib_path.'security.lib.php';
require_once $lib_path.'events.lib.inc.php';
require_once $lib_path.'debug.lib.php';
require_once $lib_path.'model.lib.php';
require_once $lib_path.'sortabletable.class.php';
require_once $lib_path.'usermanager.lib.php';
require_once $lib_path.'message.lib.php';
require_once $lib_path.'social.lib.php';
require_once $lib_path.'notification.lib.php';
/* DATABASE CONNECTION */

@ -8,7 +8,6 @@
/**
* Code
*/
require_once 'model.lib.php';
require_once 'promotion.lib.php';
require_once 'fckeditor/fckeditor.php';

@ -0,0 +1,151 @@
<?php
/**
* @package chamilo.library
*/
class Certificate extends Model {
var $table;
var $columns = array('id','cat_id','score_certificate','created_at','path_certificate');
var $certificate_data;
var $certification_user_path;
var $user_id;
public function __construct($certificate_id = null) {
$this->table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CERTIFICATE);
$this->certificate_data = null;
if (isset($certificate_id)) {
$this->certificate_data = $this->get($certificate_id);
$this->user_id = $this->certificate_data['user_id'];
} else {
//Try with the current user
$this->user_id = api_get_user_id();
}
if ($this->user_id) {
//Need to be called before any operation
$this->check_certificate_path();
if (isset($this->certificate_data) && $this->certificate_data) {
if (empty($this->certificate_data['path_certificate'])) {
$this->generate();
}
}
}
}
/**
* Show an HTML file
*/
public function show() {
//Read file or preview file
if (!empty($this->certificate_data['path_certificate'])) {
$user_certificate = $this->certification_user_path.basename($this->certificate_data['path_certificate']);
if (file_exists($user_certificate)) {
header('Content-Type: text/html; charset='. api_get_system_encoding());
echo @file_get_contents($user_certificate);
}
} else {
Display :: display_reduced_header();
Display :: display_warning_message(get_lang('NoCertificateAvailable'));
}
exit;
}
/**
* Checks the certificate user path directories
* Enter description here ...
*/
public function check_certificate_path() {
$this->certification_user_path = null;
//Setting certification path
$path_info = UserManager::get_user_picture_path_by_id($this->user_id, 'system', true);
if (isset($path_info['dir']) && !empty($path_info)) {
$this->certification_user_path = $path_info['dir'].'certificate/';
if (!is_dir($path_info['dir'])) {
mkdir($path_info['dir'],0777);
}
if (!is_dir($this->certification_user_path)) {
mkdir($this->certification_user_path, 0777);
}
}
}
/**
* Generates a certificate
* */
public function generate() {
if (empty($this->certification_user_path)) {
return false;
}
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be.inc.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/scoredisplay.class.php';
$my_category = Category :: load($this->certificate_data['cat_id']);
if ($my_category[0]->is_certificate_available($this->user_id)) {
$user = api_get_user_info($this->user_id);
$scoredisplay = ScoreDisplay :: instance();
$scorecourse = $my_category[0]->calc_score($this->user_id);
$scorecourse_display = (isset($scorecourse) ? $scoredisplay->display_score($scorecourse,SCORE_AVERAGE) : get_lang('NoResultsAvailable'));
$cattotal = Category :: load($this->certificate_data['cat_id']);
$scoretotal= $cattotal[0]->calc_score($this->user_id);
$scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal,SCORE_PERCENT) : get_lang('NoResultsAvailable'));
//Prepare all necessary variables:
$organization_name = api_get_setting('Institution');
$portal_name = api_get_setting('siteName');
$stud_fn = $user['firstname'];
$stud_ln = $user['lastname'];
//@todo this code is not needed
$certif_text = sprintf(get_lang('CertificateWCertifiesStudentXFinishedCourseYWithGradeZ'), $organization_name, $stud_fn.' '.$stud_ln, $my_category[0]->get_name(), $scorecourse_display);
$certif_text = str_replace("\\n","\n", $certif_text);
$date = date('d/m/Y', time());
if (is_dir($this->certification_user_path)) {
$name = $this->certificate_data['path_certificate'];
if (!empty($this->certificate_data)) {
$new_content_html = get_user_certificate_content($this->user_id, $my_category[0]->get_course_code(), false);
if ($cat_id = strval(intval($this->certificate_data['cat_id']))) {
$my_path_certificate = $this->certification_user_path.$name;
if (file_exists($my_path_certificate) && !empty($name)&& !is_dir($my_path_certificate) ) {
//header('Content-Type: text/html; charset='. $charset);
//echo $new_content_html;
//Seems that the file was already generated
return true;
} else {
$my_new_content_html = $new_content_html;
$my_new_content_html = mb_convert_encoding($my_new_content_html,'UTF-8', api_get_system_encoding());
//Creating new name
$name = md5($this->user_id.$this->certificate_data['cat_id']).'.html';
$my_path_certificate = $this->certification_user_path.$name;
$result = @file_put_contents($my_path_certificate, $my_new_content_html);
$path_certificate='/'.$name;
//@todo move function in this class
update_user_info_about_certificate($this->certificate_data['cat_id'], $this->user_id, $path_certificate);
$this->certificate_data['path_certificate'] = $path_certificate;
return $result;
}
}
}
}
}
return false;
}
}

@ -1346,12 +1346,12 @@ return 'application/octet-stream';
$new_content = '';
if (Database::num_rows($rs)) {
$row=Database::fetch_array($rs);
$filepath = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document'.$row['path'];
$filepath = api_get_path(SYS_COURSE_PATH).$course_info['path'].'/document'.$row['path'];
if (is_file($filepath)) {
$my_content_html=file_get_contents($filepath);
}
$all_user_info = self::get_all_info_to_certificate($user_id, $is_preview);
$all_user_info = self::get_all_info_to_certificate($user_id, $course_id, $is_preview);
$info_to_be_replaced_in_content_html=$all_user_info[0];
$info_to_replace_in_content_html=$all_user_info[1];
$new_content=str_replace($info_to_be_replaced_in_content_html,$info_to_replace_in_content_html, $my_content_html);
@ -1362,11 +1362,10 @@ return 'application/octet-stream';
/**
* return all content to replace and all content to be replace
*/
function get_all_info_to_certificate($user_id, $is_preview = false) {
function get_all_info_to_certificate($user_id, $course_id, $is_preview = false) {
$info_list = array();
$user_id = intval($user_id);
$course_id = api_get_course_id();
$course_info = api_get_course_info($course_id);
//info portal
@ -2884,7 +2883,7 @@ return 'application/octet-stream';
//if admin or course teacher, allow anyway
if (api_is_platform_admin() || CourseManager::is_course_teacher($user_id,$course_code)) { return true; }
$course_info = api_get_course_info($course_code);
if ($document_data['parent_id'] == false) {
if ($document_data['parent_id'] == false || empty($document_data['parent_id'])) {
$visible = self::is_visible_by_id($doc_id, $course_info, $session_id, $user_id);
return $visible;
} else {

@ -287,8 +287,7 @@ class MessageManager
}
}
//Load user settings
require_once api_get_path(LIBRARY_PATH).'notification.lib.php';
//Load user settings
$notification = new Notification();
if (empty($group_id)) {
$sender_info = api_get_user_info($user_sender_id);

@ -8,8 +8,6 @@
/**
* Code
*/
require_once 'model.lib.php';
require_once 'usermanager.lib.php';
//@todo put constants in an array

@ -8,7 +8,7 @@
/**
* Code
*/
require_once 'model.lib.php';
require_once 'career.lib.php';
require_once 'fckeditor/fckeditor.php';
@ -145,11 +145,11 @@ class Promotion extends Model {
function return_form($url, $action = 'add') {
$oFCKeditor = new FCKeditor('description') ;
$oFCKeditor->ToolbarSet = 'careers';
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '200';
$oFCKeditor->Value = '';
$oFCKeditor->CreateHtml();
$oFCKeditor->ToolbarSet = 'careers';
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '200';
$oFCKeditor->Value = '';
$oFCKeditor->CreateHtml();
$form = new FormValidator('promotion', 'post', $url);
// Settting the form elements

@ -191,7 +191,6 @@ class SocialManager extends UserManager {
$sql='INSERT INTO '.$tbl_message.'(user_sender_id,user_receiver_id,msg_status,send_date,title,content) VALUES('.$user_id.','.$friend_id.','.MESSAGE_STATUS_INVITATION_PENDING.',"'.$current_date.'","'.$message_title.'","'.$message_content.'")';
Database::query($sql);
require_once api_get_path(LIBRARY_PATH).'notification.lib.php';
$sender_info = api_get_user_info($user_id);
$notification = new Notification();
$notification->save_notification(NOTIFICATION_TYPE_INVITATION, array($friend_id), $message_title, $message_content, $sender_info);

@ -292,8 +292,7 @@ class UserManager {
GroupPortalManager::delete_user_rel_group($user_id, $group_id);
}
}
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
//Delete user from friend lists
SocialManager::remove_user_rel_user($user_id, true);
}
@ -3251,15 +3250,16 @@ class UserManager {
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
$row = Database::fetch_array($rs,'ASSOC');
$score = $row['score_certificate'];
$score = $row['score_certificate'];
$category_id = $row['cat_id'];
$eval = Evaluation::load(null, null, $course_code, $category_id);
$cat = Category::load($category_id);
$displayscore = ScoreDisplay::instance();
$grade = '';
if (isset($eval) && $displayscore->is_custom()) {
$grade = $displayscore->display_score(array($score, $eval[0]->get_max()), SCORE_DIV_PERCENT_WITH_CUSTOM);
}
$grade = '';
if (isset($cat) && $displayscore->is_custom()) {
$grade = $displayscore->display_score(array($score, $cat[0]->get_weight()), SCORE_DIV_PERCENT_WITH_CUSTOM);
} else {
$grade = $displayscore->display_score(array($score, $cat[0]->get_weight()));
}
$row['grade'] = $grade;
return $row;
}

@ -10,7 +10,6 @@
$language_file = array('registration','messages','userInfo');
$cidReset = true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
api_block_anonymous_users();
if (isset($_GET['messages_page_nr'])) {
@ -150,8 +149,7 @@ echo '<div id="social-content">';
//LEFT CONTENT
if (api_get_setting('allow_social_tool') != 'true') {
$id_content_right = 'inbox';
} else {
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
} else {
$id_content_right = 'social-content-right';
echo '<div id="social-content-left">';
//this include the social menu div

@ -26,7 +26,6 @@ if (api_get_setting('allow_message_tool') !='true' ){
require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'group_portal_manager.lib.php';
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
$nameTools = api_xml_http_response_encode(get_lang('Messages'));
/* Constants and variables */

@ -10,7 +10,6 @@
$language_file = array('registration','messages','userInfo');
$cidReset=true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
api_block_anonymous_users();

@ -9,9 +9,6 @@
$language_file = array('registration','messages','userInfo','admin');
$cidReset=true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
if (api_is_anonymous()) {
api_not_allowed();

@ -9,9 +9,6 @@
$language_file = array('registration','messages','userInfo','admin');
$cidReset = true;
require_once '../inc/global.inc.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
require_once api_get_path(LIBRARY_PATH).'social.lib.php';
if (api_is_anonymous()) {
api_not_allowed();

@ -13,7 +13,6 @@ api_block_anonymous_users();
if (api_get_setting('allow_message_tool')!='true') {
api_not_allowed();
}
require_once api_get_path(LIBRARY_PATH).'message.lib.php';
/* HEADER */

Loading…
Cancel
Save