Replacing curdirpath with id when listing works, also using the user_id instead of the authors field

skala
Julio Montoya 14 years ago
parent 5f71d86e95
commit 2ce24bcd54
  1. 2
      main/gradebook/lib/be/studentpublicationlink.class.php
  2. 24
      main/gradebook/lib/gradebook_functions.inc.php
  3. 8
      main/gradebook/user_stats.php
  4. 303
      main/work/work.lib.php
  5. 356
      main/work/work.php

@ -230,7 +230,7 @@ class StudentPublicationLink extends AbstractLink
public function get_link() {
$url = api_get_path(WEB_PATH)
.'main/work/work.php?cidReq='.$this->get_course_code().'&gradebook=view&curdirpath='.substr($this->exercise_data['url'], 1);
.'main/work/work.php?cidReq='.$this->get_course_code().'&id='.$this->exercise_data['id'].'&gradebook=view&curdirpath='.substr($this->exercise_data['url'], 1);
if (!api_is_allowed_to_create_course()
&& $this->calc_score(api_get_user_id()) == null) {
//$url .= '&curdirpath=/'.$this->get_ref_id();

@ -35,7 +35,7 @@ function add_resource_to_course_gradebook($course_code, $resource_type, $resourc
*/
$category = 0;
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be.inc.php';
$link= LinkFactory :: create($resource_type);
$link = LinkFactory :: create($resource_type);
$link->set_user_id(api_get_user_id());
$link->set_course_code($course_code);
// TODO find the corresponding category (the first one for this course, ordered by ID)
@ -50,8 +50,7 @@ function add_resource_to_course_gradebook($course_code, $resource_type, $resourc
$res = Database::query($sql);
if (Database::num_rows($res)<1){
//there is no unique category for this course+session combination,
// => create one
$cat= new Category();
$cat = new Category();
if (!empty($session_id)) {
$my_session_id=api_get_session_id();
$s_name = api_get_session_name($my_session_id);
@ -255,8 +254,8 @@ function build_edit_icons_eval($eval, $selectcat) {
function build_edit_icons_link($link, $selectcat) {
$link->get_course_code();
$cat=new Category();
$message_link=$cat->show_message_resource_delete($link->get_course_code());
$cat = new Category();
$message_link = $cat->show_message_resource_delete($link->get_course_code());
if ($message_link===false) {
$visibility_icon= ($link->is_visible() == 0) ? 'invisible' : 'visible';
$visibility_command= ($link->is_visible() == 0) ? 'set_visible' : 'set_invisible';
@ -265,10 +264,17 @@ function build_edit_icons_link($link, $selectcat) {
//$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?movelink=' . $link->get_id() . '&selectcat=' . $selectcat . '"><img src="../img/deplacer_fichier.gif" border="0" title="' . get_lang('Move') . '" alt="" /></a>';
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?visiblelink=' . $link->get_id() . '&amp;' . $visibility_command . '=&amp;selectcat=' . $selectcat . ' ">'.Display::return_icon($visibility_icon.'.png', get_lang('Visible'),'','22').'</a>';
$modify_icons .= '&nbsp;<a href="gradebook_showlog_link.php?visiblelink=' . $link->get_id() . '&amp;selectcat=' . $selectcat . '&amp;cidReq='.$link->get_course_code().'">'.Display::return_icon('history.png', get_lang('GradebookQualifyLog'),'','22').'</a>';
//if (api_is_course_admin()) {
//$modify_icons .= '&nbsp;<a href="gradebook_showlog_eval.php?visiblelog=' . $eval->get_id() . '&amp;' . $visibility_command . '=&amp;selectcat=' . $selectcat . '">'.Display::return_icon('history.png', get_lang('GradebookQualifyLog'),'','22').'</a>';
//}
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deletelink=' . $link->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$link->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'','22').'</a>';
//If a work is added in a gradebook you can only delete the link in the work tool
$show_delete = true;
if ($link->get_type() == 3) {
$show_delete = false;
}
if ($show_delete) {
$modify_icons .= '&nbsp;<a href="' . api_get_self() . '?deletelink=' . $link->get_id() . '&selectcat=' . $selectcat . ' &amp;cidReq='.$link->get_course_code().'" onclick="return confirmation();">'.Display::return_icon('delete.png', get_lang('Delete'),'','22').'</a>';
} else {
$modify_icons .= '&nbsp;.'.Display::return_icon('delete_na.png', get_lang('Delete'),'','22');
}
return $modify_icons;
}
}

@ -1,7 +1,8 @@
<?php
/* For licensing terms, see /license.txt */
$language_file= 'gradebook';
//$cidReset= true;
require_once '../inc/global.inc.php';
require_once 'lib/be.inc.php';
require_once 'lib/gradebook_functions.inc.php';
@ -10,9 +11,12 @@ require_once 'lib/user_data_generator.class.php';
require_once 'lib/fe/usertable.class.php';
require_once 'lib/fe/displaygradebook.php';
require_once 'lib/scoredisplay.class.php';
require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
api_block_anonymous_users();
block_students();
$interbreadcrumb[]= array (
'url' => $_SESSION['gradebook_dest'],
'name' => get_lang('Gradebook'
@ -101,7 +105,7 @@ $actions.= '<a href="' . api_get_self() . '?exportpdf=&userid='.Security::remove
$actions.='</div>';
Display :: display_header(get_lang('ResultsPerUser'));
DisplayGradebook :: display_header_user(Security::remove_XSS($_GET['userid']));
DisplayGradebook :: display_header_user($_GET['userid']);
echo $actions;
$user_table->display();
Display :: display_footer();

@ -16,6 +16,8 @@
require_once api_get_path(SYS_CODE_PATH).'document/document.inc.php';
require_once api_get_path(LIBRARY_PATH).'fileDisplay.lib.php';
require_once api_get_path(LIBRARY_PATH).'course.lib.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
/**
* Displays action links (for admins, authorized groups members and authorized students)
@ -24,38 +26,32 @@ require_once api_get_path(LIBRARY_PATH).'course.lib.php';
* @param integer Whether to show upload form option
* @return void
*/
function display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form) {
function display_action_links($id, $cur_dir_path, $always_show_tool_options, $always_show_upload_form) {
global $gradebook;
$display_output = '';
$origin = isset($_GET['origin']) ? Security::remove_XSS($_GET['origin']) : '';
$curdirpath = isset($_GET['curdirpath']) ? Security::remove_XSS($_GET['curdirpath']) : empty($curdirpath);
if (strlen($cur_dir_path) > 0 && $cur_dir_path != '/') {
if (!empty($cur_dir_path)) {
$parent_dir = dirname($cur_dir_path);
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&curdirpath='.$parent_dir.'">'.Display::return_icon('back.png', get_lang('BackToWorksList'),'','32').'</a>';
} else {
if ($_GET['display_tool_options'] == 'true' OR $_GET['display_upload_form'] == 'true') {
if ($origin != 'learnpath') {
//$display_output .= '<a href="work.php?gradebook='.$gradebook.'">'.Display::return_icon('back.png', get_lang('BackToWorksList'),'','32').'</a>';
}
}
}
if (!$always_show_tool_options && api_is_allowed_to_edit(null, true) && $origin != 'learnpath') {
if (empty($curdirpath)) {
//$display_output .= '<a href="work.php?">'.Display::return_icon('back.png', get_lang('BackToWorksList'),'','32').'</a>';
}
// Create dir
if ($cur_dir_path == '/') {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;toolgroup='.Security::remove_XSS($_GET['toolgroup']).'&amp;createdir=1&origin='.$origin.'&gradebook='.$gradebook.'">'.Display::return_icon('new_work.png', get_lang('CreateAssignment'),'','32').'</a>';
if (empty($cur_dir_path)) {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;toolgroup='.Security::remove_XSS($_GET['toolgroup']).'&amp;createdir=1&origin='.$origin.'&gradebook='.$gradebook.'">';
$display_output .= Display::return_icon('new_work.png', get_lang('CreateAssignment'),'','32').'</a>';
}
if (empty($curdirpath) || $curdirpath == '.') {
if (empty($cur_dir_path)) {
// Options
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;display_tool_options=true&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'">'.Display::return_icon('settings.png', get_lang('EditToolOptions'),'','32').'</a>';
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;display_tool_options=true&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'">';
$display_output .= Display::return_icon('settings.png', get_lang('EditToolOptions'),'','32').'</a>';
}
}
if (!$always_show_upload_form && api_is_allowed_to_session_edit(false, true) && (isset($_GET['curdirpath']) && (!empty($_GET['curdirpath']) && $_GET['curdirpath'] != '.') )) {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;curdirpath='.$cur_dir_path.'&amp;display_upload_form=true&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'">'.Display::return_icon('upload_file.png', get_lang('UploadADocument'),'','32').'</a>';
if (!$always_show_upload_form && api_is_allowed_to_session_edit(false, true) && (isset($cur_dir_path) && (!empty($cur_dir_path) && $cur_dir_path != '/') )) {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$id.'&amp;curdirpath='.$cur_dir_path.'&amp;display_upload_form=true&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'">';
$display_output .= Display::return_icon('upload_file.png', get_lang('UploadADocument'),'','32').'</a>';
}
if (api_is_allowed_to_edit(null, true) && $origin != 'learnpath' && api_is_allowed_to_session_edit(false, true)) {
@ -79,31 +75,22 @@ function display_action_links($cur_dir_path, $always_show_tool_options, $always_
if ($sql_result) {
$columnStatus = Database::fetch_array($sql_result);
/*
if (empty($curdirpath) || $curdirpath == '.') {
if ($columnStatus['Default'] == 1) {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;make_invisible=all&amp;curdirpath='.$cur_dir_path.'">'.
Display::return_icon('visible.png', get_lang('MakeAllPapersInvisible'),'','32')."</a>\n";
} else {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;make_visible=all&amp;curdirpath='.$cur_dir_path.'">'.
Display::return_icon('invisible.png', get_lang('MakeAllPapersVisible'),'','32')."</a>\n";
}
}*/
}
}
if (api_is_allowed_to_edit(null, true)) {
global $publication;
if (empty($curdirpath) or $curdirpath != '.' or $cur_dir_path != '/') {
if (!empty($cur_dir_path)) {
if (empty($_GET['list']) or Security::remove_XSS($_GET['list']) == 'with') {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=without">'.
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$id.'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=without">'.
Display::return_icon('exercice_uncheck.png', get_lang('ViewUsersWithoutTask'),'','32')."</a>\n";
} else {
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=with">'.
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$id.'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=with">'.
Display::return_icon('exercice_check.png', get_lang('ViewUsersWithTask'),'','32')."</a>\n";
$_SESSION['token'] = time();
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=without&amp;action=send_mail&amp;sec_token='.$_SESSION['token'].'">'.
$display_output .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&amp;id='.$id.'&amp;curdirpath='.$cur_dir_path.'&amp;origin='.$origin.'&amp;gradebook='.$gradebook.'&amp;list=without&amp;action=send_mail&amp;sec_token='.$_SESSION['token'].'">'.
Display::return_icon('mail_send.png', get_lang('ReminderMessage'),'','32')."</a>";
}
}
@ -294,26 +281,61 @@ function create_group_date_select($prefix = '') {
return $group_name;
}
function get_work_data_by_path($path) {
$path = Database::escape_string($path);
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$sql = "SELECT * FROM ".$work_table." WHERE url = '$path'";
$result = Database::query($sql);
$return = array();
if (Database::num_rows($result)) {
$return = Database::fetch_array($result,'ASSOC');
}
return $return;
}
function get_work_data_by_id($id) {
$id = intval($id);
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$sql = "SELECT * FROM ".$work_table." WHERE id = $id";
$result = Database::query($sql);
$return = array();
if (Database::num_rows($result)) {
$return = Database::fetch_array($result,'ASSOC');
}
return $return;
}
function get_work_assignment_by_id($id) {
$id = intval($id);
$table = Database :: get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT);
$sql = "SELECT * FROM ".$table." WHERE publication_id = $id";
$result = Database::query($sql);
$return = array();
if (Database::num_rows($result)) {
$return = Database::fetch_array($result,'ASSOC');
}
return $return;
}
/**
* Display the list of student publications, taking into account the user status
*
* @param $currentCourseRepositoryWeb, the web location of the course folder
* @param $link_target_parameter - should there be a target parameter for the links
* @param $dateFormatLong - date format
* @param $origin - typically empty or 'learnpath'
*/
function display_student_publications_list($id, $link_target_parameter, $dateFormatLong, $origin, $add_in_where_query = '') {
function display_student_publications_list($work_dir, $sub_course_dir, $currentCourseRepositoryWeb, $link_target_parameter, $dateFormatLong, $origin, $add_in_where_query = '') {
global $timeNoSecFormat, $dateFormatShort, $gradebook, $_user;
global $timeNoSecFormat, $dateFormatShort, $gradebook, $_user, $_course;
// Database table names
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$work_assigment = Database::get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT);
$is_allowed_to_edit = api_is_allowed_to_edit(null, true);
$user_id = api_get_user_id();
$user_id = api_get_user_id();
$publications_list = array();
$sort_params = array();
@ -329,10 +351,37 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
if (isset($_GET['direction'])) {
$sort_params[] = 'direction='.Security::remove_XSS($_GET['direction']);
}
$sort_params = implode('&amp;', $sort_params);
$my_params = $sort_params;
$origin = Security::remove_XSS($origin);
$sort_params = implode('&amp;', $sort_params);
$my_params = $sort_params;
$origin = Security::remove_XSS($origin);
/*
*
* Getting may work data
*
*/
$my_folder_data = get_work_data_by_id($id);
$work_in_gradebook_link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $id, api_get_session_id());
if ($work_in_gradebook_link_id) {
if ($is_allowed_to_edit)
if (intval($my_folder_data['qualification']) == 0) {
Display::display_warning_message(get_lang('MaxWeightNeedToBeProvided'));
}
}
$qualification_exists = false;
if(!empty($my_folder_data['qualification']) && intval($my_folder_data['qualification']) > 0) {
$qualification_exists = true;
}
$work_dir = api_get_path(SYS_COURSE_PATH).$_course['path'].'/work';
$sub_course_dir = '';
if (!empty($my_folder_data)) {
$work_dir = api_get_path(SYS_COURSE_PATH).$_course['path'].'/work'.$my_folder_data['url'];
$sub_course_dir = 'work' .$my_folder_data['url'];
}
if (substr($sub_course_dir, -1, 1) != '/' && !empty($sub_course_dir)) {
$sub_course_dir = $sub_course_dir.'/';
}
@ -346,7 +395,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
//Get list from database
if ($is_allowed_to_edit) {
$sql_get_publications_list = "SELECT * FROM ".$work_table." " .
$sql_get_publications_list = "SELECT * FROM ".$work_table." " .
"WHERE url LIKE BINARY '$sub_course_dir%' " .
"AND url NOT LIKE BINARY '$sub_course_dir%/%' " .$add_in_where_query.$condition_session.
" ORDER BY sent_date DESC";
@ -371,11 +420,10 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
"WHERE url LIKE BINARY '$sub_course_dir%' AND url NOT LIKE BINARY '$sub_course_dir%/%' " .$add_in_where_query.
$condition_session.
" ORDER BY id";
}
//echo $sql_get_publications_list;
$sql_result = Database::query($sql_get_publications_list);
//echo $sql_get_publications_list;
$sql_result = Database::query($sql_get_publications_list);
$sql_result_num = Database::query($sql_get_publications_num);
$row = Database::fetch_array($sql_result_num);
@ -385,28 +433,36 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$table_header[] = array(get_lang('Title'), true);
if ($count_files != 0) {
$table_header[] = array(get_lang('Authors'), true);
$table_header[] = array(get_lang('Qualification'), true);
$table_header[] = array(get_lang('FirstName'), true);
$table_header[] = array(get_lang('LastName'), true);
if ($qualification_exists)
$table_header[] = array(get_lang('Qualification'), true);
}
$table_header[] = array(get_lang('Date'), true, 'style="width:160px"');
if ($origin != 'learnpath') {
if ($is_allowed_to_edit) {
$table_header[] = array(get_lang('Actions'), false, 'style="width:90px"');
$table_header[] = array('RealDate', true);
}
$table_header[] = array('RealDate', true);
// An array with the setting of the columns -> 1: columns that we will show, 0:columns that will be hide
$column_show = array();
$column_show[] = 1; // type
$column_show[] = 1; // title
if ($count_files != 0) {
$column_show[] = 1; // authors
$column_show[] = 1; // qualification
$column_show[] = 1; // firstname
$column_show[] = 1; // lastname
if ($qualification_exists) {
$column_show[] = 1; // qualification
}
}
$column_show[] = 1; //date
$column_show[] = 1; // modify
if ($is_allowed_to_edit) {
$column_show[] = 1; // modify
}
$column_show[] = 0; //real date in correct format
// Here we change the way how the colums are going to be sort
@ -421,13 +477,8 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
}
if ($count_files != 0) {
if ($sub_course_dir == '/work') {
$column_order[2] = 2;
} else {
//$column_order[2] = 5;
}
$column_order[2] = 2;
} else {
//$column_order[1] = 4;
$column_order[2] = 4;
}
@ -443,6 +494,9 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
// List of all folders
if (is_array($dirs_list)) {
foreach ($dirs_list as $dir) {
$work_data = get_work_data_by_path('/'.$dir);
if ($my_sub_dir == '') {
$mydir_temp = '/'.$dir;
} else {
@ -465,7 +519,9 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
continue;
}
$direc_date = $row['lastedit_date']; //directory's date
$author = $row['author']; //directory's author
$view_properties = $row['view_properties'];
$is_assignment = $row['has_properties'];
$id2 = $row['id'];
@ -477,7 +533,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
// form edit directory
if (isset($clean_edit_dir) && $clean_edit_dir == $mydir) {
if (!empty($row['has_properties'])) {
$sql = Database::query('SELECT * FROM '.$work_assigment.' WHERE id = '."'".$row['has_properties']."'".' LIMIT 1');
$sql = Database::query('SELECT * FROM '.$work_assigment.' WHERE id = "'.$row['has_properties'].'" LIMIT 1');
$homework = Database::fetch_array($sql);
}
@ -492,19 +548,16 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
//$form_folder-> addElement('textarea', 'description', get_lang('Description'), array('rows' => 5, 'cols' => 50));
$form_folder->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'work', 'Width' => '100%', 'Height' => '200'));
if ($row['weight'] > 0) {
}
$there_is_a_end_date = false;
$form_folder -> addElement('html', '<div class="row">
<div class="label">&nbsp;</div>
<div class="formw">
<a href="javascript://" onclick="javascript: return plus();" ><span id="plus">&nbsp;<img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />&nbsp;'.get_lang('AdvancedParameters').'</span></a>
<a href="javascript://" onclick="javascript: return plus();" >
<span id="plus">&nbsp;<img style="vertical-align:middle;" src="../img/div_show.gif" alt="" />
&nbsp;'.get_lang('AdvancedParameters').'
</span>
</a>
</div>
</div> ');
$form_folder->addElement('html', '<div id="options" style="display: none;">');
@ -513,13 +566,10 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$default = api_get_local_time();
}
$parts = split(' ', $default);
list($d_year, $d_month, $d_day) = split('-', $parts[0]);
list($d_hour, $d_minute) = split(':', $parts[1]);
$parts = explode(' ', $default);
//if ($row['view_properties'] == '1') {
list($d_year, $d_month, $d_day) = explode('-', $parts[0]);
list($d_hour, $d_minute) = explode(':', $parts[1]);
$qualification_input[] = FormValidator :: createElement('text','qualification');
$form_folder -> addGroup($qualification_input, 'qualification', get_lang('QualificationNumeric'), 'size="10"');
@ -537,7 +587,6 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
//$form_folder->freeze();
}
if ($homework['expires_on'] != '0000-00-00 00:00:00') {
$homework['expires_on'] = api_get_local_time($homework['expires_on']);
$there_is_a_expire_date = true;
@ -571,8 +620,6 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$form_folder -> addElement('html', '</div>');
$form_folder -> addElement('style_submit_button', 'submit', get_lang('ModifyDirectory'), 'class="save"');
if ($there_is_a_end_date) {
$end_date_array = convert_date_to_array($homework['ends_on'], 'ends');
@ -650,7 +697,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$resource_name = $_POST['dir_name'];
add_resource_to_course_gradebook(api_get_course_id(), 3, $row['id'], Database::escape_string($resource_name), (float)$_POST['weight']['weight'], (float)$_POST['qualification']['qualification'], Database::escape_string($_POST['description']), time(), 1, api_get_session_id());
add_resource_to_course_gradebook(api_get_course_id(), 3, $row['id'], $resource_name, (float)$_POST['weight']['weight'], (float)$_POST['qualification']['qualification'], $_POST['description'] , time(), 1, api_get_session_id());
}
update_dir_name($mydir, $dir_name);
@ -696,7 +743,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$cant_dir = 0;
if (api_is_allowed_to_edit()) {
$sql_document = "SELECT count(*) FROM $work_table WHERE url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'";
$sql_document = "SELECT count(*) FROM $work_table WHERE url LIKE 'work/".$dir."/%'";
} else {
// gets admin_course
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -710,26 +757,27 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
}
if ($course_info['show_score'] == 1) {
$sql_document = "SELECT count(*) FROM $work_table s, $iprop_table p
WHERE s.id = p.ref AND p.tool='work' AND s.accepted='1' AND user_id = ".api_get_user_id()." AND url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'";
WHERE s.id = p.ref AND p.tool='work' AND s.accepted='1' AND user_id = ".api_get_user_id()." AND url LIKE 'work/".$dir."/%'";
} else {
$sql_document = "SELECT count(*) FROM $work_table s, $iprop_table p
WHERE s.id = p.ref AND p.tool='work' AND s.accepted='1' AND url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'";
WHERE s.id = p.ref AND p.tool='work' AND s.accepted='1' AND url LIKE 'work/".$dir."/%'";
}
}
//count documents
$res_document = Database::query($sql_document);
$res_document = Database::query($sql_document);
$count_document = Database::fetch_row($res_document);
$cant_files = $count_document[0];
//count directories
$sql_directory = "SELECT count(*) FROM $work_table s WHERE url NOT LIKE '/".$mydir."/%/%' AND url LIKE '/".$mydir."/%'";
$res_directory = Database::query($sql_directory);
$count_directory = Database::fetch_row($res_directory);
$cant_dir = $count_directory[0];
$text_file = get_lang('FilesUpload');
$text_dir = get_lang('Directories');
$text_dir = get_lang('Directories');
if ($cant_files == 1) {
$text_file = api_strtolower(get_lang('FileUpload'));
@ -745,7 +793,7 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$dirtext = '';
}
$icon = Display::return_icon('work.png', get_lang('Assignment'),array(), 22);
$icon = Display::return_icon('work.png', get_lang('Assignment'), array(), 22);
if (!empty($display_edit_form) && isset($clean_edit_dir) && $clean_edit_dir == $mydir) {
$row[] = $icon;
@ -767,15 +815,21 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$add_to_name = '';
}
$show_as_icon = get_work_id($mydir); //true or false
$work_title = !empty($work_data['title']) ? $work_data['title'] : basename($work_data['url']);
if ($show_as_icon) {
if (api_is_allowed_to_edit()) {
$zip = '<a href="'.api_get_self().'?cidReq='.api_get_course_id().'&gradebook='.$gradebook.'&action=downloadfolder&path=/'.$mydir.'">
'.Display::return_icon('save_pack.png', get_lang('Save'), array('style' => 'float:right;'), 22).'</a>';
}
$row[] = $zip.'<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&curdirpath='.$mydir.'"'.$class.'>'.$dir.'</a>'.$add_to_name.'<br />'.$cant_files.' '.$text_file.$dirtext;
$row[] = $zip.
'<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&id='.$work_data['id'].'"'.$class.'>'.
$work_title.'</a>'.
$add_to_name.'<br />'.$cant_files.' '.$text_file.$dirtext;
} else {
$row[] = '<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&curdirpath='.$mydir.'"'.$class.'>'.$dir.'</a>'.$add_to_name.'<br />'.$cant_files.' '.$text_file.$dirtext;
$row[] = '<a href="'.api_get_self().'?'.api_get_cidreq().'&origin='.$origin.'&gradebook='.$gradebook.'&id='.$work_data['id'].'"'.$class.'>'.
$work_title.'</a>'.
$add_to_name.'<br />'.$cant_files.' '.$text_file.$dirtext;
}
}
if ($count_files != 0) {
@ -808,21 +862,20 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
if (substr($my_sub_dir,strlen($my_sub_dir)-1, strlen($my_sub_dir)) == '/') {
$my_sub_dir = substr($my_sub_dir, 0,strlen($my_sub_dir)-1);
}
$my_assignment = get_work_assignment_by_id($id);
if (Database::num_rows($sql_result) > 0) {
while ($work = Database::fetch_object($sql_result)) {
//Get the author ID for that document from the item_property table
$is_author = false;
$author_sql = "SELECT * FROM $iprop_table WHERE tool = 'work' AND ref=".$work->id;
$author_qry = Database::query($author_sql);
$row2 = Database::fetch_array($author_qry);
if (Database::num_rows($author_qry) == 1) {
$item_property_data = api_get_item_property_info(api_get_course_id(), 'work', $work->id);
if (!$is_allowed_to_edit && $item_property_data['insert_user_id'] == api_get_user_id()) {
$is_author = true;
}
$user_info = api_get_user_info($item_property_data['insert_user_id']);
//display info depending on the permissions
if ($work->accepted == '1' || $is_allowed_to_edit) {
if ($is_author && $work->accepted == '1' || $is_allowed_to_edit) {
$row = array();
if ($work->accepted == '0') {
$class = 'class="invisible"';
@ -832,15 +885,19 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$qualification_string = '';
$add_string = '';
if (defined('IS_ASSIGNMENT')) {
if($work->qualification == '') {
//$qualification_string = '<b style="color:orange">'.get_lang('NotRevised').'</b>';
if ($qualification_exists) {
if ($work->qualification == '') {
$qualification_string = '<b style="color:orange"> - </b>';
} else {
//$qualification_string = '<b style="color:blue">'.get_lang('Qualification').': '.$work->qualification.'</b>';
$qualification_string = '<b style="color:blue">'.$work->qualification.'</b>';
}
if (defined('ASSIGNMENT_EXPIRES') && (ASSIGNMENT_EXPIRES < api_strtotime($work->sent_date))) {
$time_expires = api_strtotime($my_assignment['expires_on']);
if (!empty($my_assignment['expires_on']) && $my_assignment['expires_on'] != '0000-00-00 00:00:00' && $time_expires < api_strtotime($work->sent_date)) {
$add_string = ' <b style="color:red">'.get_lang('Expired').'</b>';
}
}
@ -849,29 +906,35 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
$row[] = '<a href="download.php?file='.$url.'">'.build_document_icon_tag('file', substr(basename($work->url), 13)).'</a>';
$row[] = '<a href="download.php?file='.$url.'"'.$class.'>'.Display::return_icon('save.png', get_lang('Save'),array('style' => 'float:right;'), 22).' '.$work->title.'</a><br />'.$work->description;
$row[] = display_user_link_work($row2['insert_user_id'], $work->author, $gradebook); // $work->author;
$row[] = $qualification_string;
$row[] = $user_info['firstname']; // $work->author;
$row[] = $user_info['lastname'];
if ($qualification_exists)
$row[] = $qualification_string;
$work_sent_date_local = api_get_local_time($work->sent_date);
$row[] = date_to_str_ago($work_sent_date_local).$add_string.'<br /><span class="dropbox_date">'.api_format_date($work_sent_date_local).'</span>';
if ($is_allowed_to_edit) {
$action = '';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;edit='.$work->id.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;parent_id='.$work->parent_id.'" title="'.get_lang('Modify').'" >'.Display::return_icon('rate_work.png', get_lang('CorrectAndRate'),array(), 22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;move='.$work->id.'" title="'.get_lang('Move').'">'.Display::return_icon('move.png', get_lang('Move'),array(), 22).'</a>';
if ($qualification_exists)
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;edit='.$work->id.'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;parent_id='.$work->parent_id.'" title="'.get_lang('Modify').'" >'.
Display::return_icon('rate_work.png', get_lang('CorrectAndRate'),array(), 22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;move='.$work->id.'" title="'.get_lang('Move').'">'.Display::return_icon('move.png', get_lang('Move'),array(), 22).'</a>';
if ($work->accepted == '1') {
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;make_invisible='.$work->id.'&amp;'.$sort_params.'" title="'.get_lang('Invisible').'" >'.Display::return_icon('visible.png', get_lang('Invisible'),array(), 22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;make_invisible='.$work->id.'&amp;'.$sort_params.'" title="'.get_lang('Invisible').'" >'.Display::return_icon('visible.png', get_lang('Invisible'),array(), 22).'</a>';
} else {
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;make_visible='.$work->id.'&amp;'.$sort_params.'" title="'.get_lang('Visible').'" >'.Display::return_icon('invisible.png', get_lang('Visible'),array(), 22).'</a> ';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;make_visible='.$work->id.'&amp;'.$sort_params.'" title="'.get_lang('Visible').'" >'.Display::return_icon('invisible.png', get_lang('Visible'),array(), 22).'</a> ';
}
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;delete='.$work->id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('WorkDelete').'" >'.Display::return_icon('delete.png', get_lang('WorkDelete'),'',22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;delete='.$work->id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('WorkDelete').'" >'.Display::return_icon('delete.png', get_lang('WorkDelete'),'',22).'</a>';
$row[] = $action;
// the user that is not course admin can only edit/delete own document
} elseif ($row2['insert_user_id'] == $_user['user_id']) {
$action = '';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;edit='.$work->id.'" title="'.get_lang('Modify').'" >'.Display::return_icon('edit.png', get_lang('Modify'),array(), 22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&gradebook='.Security::remove_XSS($_GET['gradebook']).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;edit='.$work->id.'" title="'.get_lang('Modify').'" >'.Display::return_icon('edit.png', get_lang('Modify'),array(), 22).'</a>';
if (api_get_course_setting('student_delete_own_publication') == 1) {
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;delete='.$work->id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('WorkDelete').'" >'.Display::return_icon('delete.png',get_lang('WorkDelete'),'',22).'</a>';
$action .= '<a href="'.api_get_self().'?'.api_get_cidreq().'&id='.$my_folder_data['id'].'&curdirpath='.urlencode($my_sub_dir).'&amp;origin='.$origin.'&gradebook='.$gradebook.'&amp;delete='.$work->id.'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'),ENT_QUOTES))."'".')) return false;" title="'.get_lang('WorkDelete').'" >'.Display::return_icon('delete.png',get_lang('WorkDelete'),'',22).'</a>';
}
$row[] = $action;
} else {
@ -889,6 +952,9 @@ function display_student_publications_list($work_dir, $sub_course_dir, $currentC
if (isset($_GET['curdirpath'])) {
$my_params = array ('curdirpath' => Security::remove_XSS($_GET['curdirpath']));
}
$my_params = array ('id' => Security::remove_XSS($_GET['id']));
if (isset($_GET['edit_dir'])) {
$my_params = array ('edit_dir' => Security::remove_XSS($_GET['edit_dir']));
}
@ -1515,19 +1581,22 @@ function get_work_id($path) {
* Get list of users who have not given the task
* @param int
* @return array
* @author cvargas carlos.vargas@beeznest.com
* @author cvargas
* @author Julio Montoya <gugli100@gmail.com> Fixing query
*/
function get_list_users_without_publication($task_id) {
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database::get_course_table(TABLE_ITEM_PROPERTY);
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$session_course_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
//condition for the session
$session_id = api_get_session_id();
if ($session_id == 0){
$task_id = intval($task_id);
if ($session_id == 0) {
$sql = "SELECT user_id as id FROM $work_table WHERE parent_id='$task_id'";
} else {
$sql = "SELECT user_id as id FROM $work_table WHERE parent_id='$task_id' and session_id='".$session_id."'";
@ -1602,18 +1671,20 @@ function display_list_users_without_publication($task_id) {
* @return array
* @author cvargas carlos.vargas@beeznest.com cfasanando, christian.fasanado@beeznest.com
*/
function send_reminder_users_without_publication($task_id) {
function send_reminder_users_without_publication($task_data) {
global $_course, $currentUserFirstName, $currentUserLastName, $currentUserEmail;
$task_id = $task_data['id'];
$task_title = !empty($task_data['title']) ? $task_data['title'] : basename($task_data['url']);
global $_course, $my_cur_dir_path, $currentUserFirstName, $currentUserLastName, $currentUserEmail;
$emailsubject = '[' . api_get_setting('siteName') . '] ';
$sender_name = api_get_person_name($currentUserFirstName, $currentUserLastName, null, PERSON_NAME_EMAIL_ADDRESS);
$email_admin = $currentUserEmail;
// The body can be as long as you wish, and any combination of text and variables
$emailbody_user .= get_lang('ReminderToSubmitPendingTask')."\n".get_lang('CourseName').' : '.$_course['name']."\n";
$emailbody_user .= get_lang('WorkName').' : '.substr($my_cur_dir_path, 0, -1)."\n\n".get_lang('Teacher').' : '.api_get_person_name($currentUserFirstName, $currentUserLastName)."\n".get_lang('Email').' : '.$currentUserEmail;
$emailbody_user .= get_lang('WorkName').' : '.$task_title."\n\n".get_lang('Teacher').' : '.api_get_person_name($currentUserFirstName, $currentUserLastName)."\n".get_lang('Email').' : '.$currentUserEmail;
$list_users = get_list_users_without_publication($task_id);
foreach ($list_users as $user) {
$name_user = api_get_person_name($user[0], $user[1], null, PERSON_NAME_EMAIL_ADDRESS);
@api_mail($name_user, $user[3], $emailsubject, $emailbody_user, $sender_name, $email_admin);

@ -7,7 +7,6 @@
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University - ability for course admins to specify wether uploaded documents are visible or invisible by default.
* @author Roan Embrechts, code refactoring and virtual course support
* @author Frederic Vauthier, directories management
* @version $Id: work.php 22201 2009-07-17 19:57:03Z cfasanando $
*
* @todo refactor more code into functions, use quickforms, coding standards, ...
*/
@ -85,6 +84,21 @@ $this_section = SECTION_COURSES;
$ctok = $_SESSION['sec_token'];
$stok = Security::get_token();
$work_id = isset($_GET['id']) ? intval($_GET['id']) : null;
$my_folder_data = get_work_data_by_id($work_id);
$curdirpath = '';
$is_special = false;
if (!empty($my_folder_data)) {
if ($my_folder_data['filetype'] == 'folder') {
$curdirpath = $my_folder_data['url'];
if (!empty($my_folder_data['has_properties'])) {
$is_special = true;
}
}
}
$htmlHeadXtra[] = to_javascript_work();
$htmlHeadXtra[] = '<script type="text/javascript">
function setFocus(){
@ -100,7 +114,6 @@ $main_course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
$work_table = Database :: get_course_table(TABLE_STUDENT_PUBLICATION);
$iprop_table = Database :: get_course_table(TABLE_ITEM_PROPERTY);
$TSTDPUBASG = Database :: get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT);
//$t_gradebook_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$table_session = Database :: get_main_table(TABLE_MAIN_SESSION);
@ -110,18 +123,19 @@ $table_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURS
/* Constants and variables */
$tool_name = get_lang('StudentPublications');
$user_id = api_get_user_id();
$course_code = $_course['sysCode'];
$session_id = api_get_session_id();
$user_id = api_get_user_id();
$course_code = api_get_course_id();
$session_id = api_get_session_id();
$is_course_member = CourseManager::is_user_subscribed_in_real_or_linked_course($user_id, $course_code,$session_id);
$is_course_member = $is_course_member || api_is_platform_admin();
$currentCourseRepositorySys = api_get_path(SYS_COURSE_PATH) . $_course['path'] . '/';
$currentCourseRepositoryWeb = api_get_path(WEB_COURSE_PATH) . $_course['path'] . '/';
$currentUserFirstName = $_user['firstName'];
$currentUserLastName = $_user['lastName'];
$currentUserEmail = $_user['mail'];
$currentUserFirstName = $_user['firstName'];
$currentUserLastName = $_user['lastName'];
$currentUserEmail = $_user['mail'];
$authors = isset($_POST['authors']) ? Database::escape_string($_POST['authors']) : '';
$delete = isset($_REQUEST['delete']) ? Database::escape_string($_REQUEST['delete']) : '';
@ -141,54 +155,22 @@ $id = isset($_REQUEST['id']) ? strval(intval($_REQUEST['id'])) : '';
// get data for publication assignment
$has_expired = false;
$has_ended = false;
$curdirpath = isset($_REQUEST['curdirpath']) ? Database::escape_string($_REQUEST['curdirpath']) : '';
//This means that we are in a folder assignment
$sql_select ='SELECT id, description FROM '.Database :: get_course_table(TABLE_STUDENT_PUBLICATION).' WHERE filetype = '."'folder'".' and has_properties != '."''".' and url = '."'/".$curdirpath."'".' LIMIT 1';
$sql = Database::query($sql_select);
$is_special = Database::num_rows($sql);
if ($is_special > 0) {
$publication = Database::fetch_array($sql);
}
//directories management
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$course_dir = $sys_course_path . $_course['path'];
$base_work_dir = $course_dir . '/work';
$http_www = api_get_path(WEB_COURSE_PATH) . $_course['path'] . '/work';
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$course_dir = $sys_course_path . $_course['path'];
$base_work_dir = $course_dir . '/work';
$cur_dir_path = '';
if (isset ($_GET['curdirpath']) && $_GET['curdirpath'] != '') {
//$cur_dir_path = preg_replace('#[\.]+/#','',$_GET['curdirpath']); //escape '..' hack attempts
if (isset($curdirpath) && $curdirpath != '') {
//now using common security approach with security lib
$in_course = Security :: check_abs_path($base_work_dir . '/' . $_GET['curdirpath'], $base_work_dir);
$in_course = Security :: check_abs_path($base_work_dir.$curdirpath, $base_work_dir);
if (!$in_course) {
$cur_dir_path = "/";
} else {
$cur_dir_path = $_GET['curdirpath'];
}
} elseif (isset ($_POST['curdirpath']) && $_POST['curdirpath'] != '') {
//$cur_dir_path = preg_replace('#[\.]+/#','/',$_POST['curdirpath']); //escape '..' hack attempts
//now using common security approach with security lib
$in_course = Security :: check_abs_path($base_work_dir . '/' . $_POST['curdirpath'], $base_work_dir);
if (!$in_course) {
$cur_dir_path = "/";
} else {
$cur_dir_path = $_POST['curdirpath'];
$curdirpath = "/";
}
} else {
$cur_dir_path = '/';
}
if ($cur_dir_path == '.') {
$cur_dir_path = '/';
}
$cur_dir_path_url = urlencode($cur_dir_path);
//prepare a form of path that can easily be added at the end of any url ending with "work/"
$my_cur_dir_path = $cur_dir_path;
if ($my_cur_dir_path == '/') {
$my_cur_dir_path = '';
} elseif (substr($my_cur_dir_path, -1, 1) != '/') {
$my_cur_dir_path = $my_cur_dir_path . '/';
if ($curdirpath == '.') {
$curdirpath = '/';
}
/* Configuration settings */
@ -208,7 +190,7 @@ $display_list_users_without_publication = isset($_GET['list']) && Security::remo
if (isset($_GET['action']) && $_GET['action'] == 'send_mail') {
if ($_GET['sec_token'] == $_SESSION['token']) {
send_reminder_users_without_publication($publication['id']);
send_reminder_users_without_publication($my_folder_data);
unset($_SESSION['token']);
}
}
@ -278,7 +260,7 @@ if (!empty($_SESSION['toolgroup'])) {
$interbreadcrumb[] = array ('url' =>'#','name' => get_lang('StudentPublications'));
$dir_array = explode('/', $cur_dir_path);
$dir_array = explode('/', $curdirpath);
$array_len = count($dir_array);
$dir_acum = '';
@ -307,13 +289,13 @@ if (!empty($_SESSION['toolgroup'])) {
if (isset($origin) && $origin != 'learnpath') {
$url_dir = '';
if (isset($_GET['curdirpath']) && $_GET['curdirpath'] != '.' || $display_upload_form || $display_tool_options || $_GET['createdir'] == 1) {
if (isset($_GET['id']) && !empty($_GET['id']) || $display_upload_form || $display_tool_options || $_GET['createdir'] == 1) {
$interbreadcrumb[] = array ('url' => 'work.php', 'name' => get_lang('StudentPublications'));
} else {
$interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('StudentPublications'));
}
$dir_array = explode('/', $cur_dir_path);
$dir_array = explode('/', $curdirpath);
$array_len = count($dir_array);
$dir_acum = '';
@ -453,15 +435,6 @@ if (!empty($make_visible)) {
Database::query($sql);
Display::display_confirmation_message(get_lang('FileVisible'));
}
/* No need to update this because it will break the end date and expiration date code see BT#1775
*
// update all the parents in the table item propery
$list_id = get_parent_directories($my_cur_dir_path);
for ($i = 0; $i < count($list_id); $i++) {
api_item_property_update($_course, 'work', $list_id[$i], 'FolderUpdated', $user_id);
}
*/
}
/* Create dir command */
@ -476,11 +449,11 @@ if (!empty($_REQUEST['new_dir'])) {
$fend = get_date_from_select('ends');
require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
$added_slash = (substr($cur_dir_path, -1, 1) == '/') ? '' : '/';
$directory = Security::remove_XSS($_POST['new_dir']);
$directory = replace_dangerous_char($directory);
$directory = disable_dangerous_file($directory);
$dir_name = $cur_dir_path . $added_slash . $directory;
$dir_name = $curdirpath.$directory;
$created_dir = create_unexisting_work_directory($base_work_dir, $dir_name);
// we insert here the directory in the table $work_table
@ -488,7 +461,7 @@ if (!empty($_REQUEST['new_dir'])) {
if ($ctok == $_POST['sec_token']) {
if (!empty($created_dir)) {
if ($cur_dir_path == '/') {
if ($curdirpath == '/') {
$dir_name_sql = $created_dir;
} else {
$dir_name_sql = '/'.$created_dir;
@ -512,22 +485,22 @@ if (!empty($_REQUEST['new_dir'])) {
$agenda_id = agenda_add_item($course, $title, $content, $date, $end_date, array('GROUP:'.$toolgroup), 0);
}
$sql_add_publication = "INSERT INTO " . $work_table . " SET
url = '".Database::escape_string($dir_name_sql)."',
title = '',
description = '".Database::escape_string($_POST['description'])."',
author = '',
active = '0',
accepted = '1',
filetype = 'folder',
post_group_id = '".$toolgroup."',
sent_date = '".api_get_utc_datetime()."',
url = '".Database::escape_string($dir_name_sql)."',
title = '".Database::escape_string($_POST['new_dir'])."',
description = '".Database::escape_string($_POST['description'])."',
author = '',
active = '0',
accepted = '1',
filetype = 'folder',
post_group_id = '".$toolgroup."',
sent_date = '".api_get_utc_datetime()."',
qualification = '".(($_POST['qualification_value']!='') ? Database::escape_string($_POST['qualification_value']) : '') ."',
parent_id = '',
parent_id = '',
qualificator_id = '',
date_of_qualification = '0000-00-00 00:00:00',
weight = '".Database::escape_string($_POST['weight'])."',
session_id = '".intval($id_session)."',
user_id = '".$user_id."'";
weight = '".Database::escape_string($_POST['weight'])."',
session_id = '".intval($id_session)."',
user_id = '".$user_id."'";
Database::query($sql_add_publication);
@ -578,9 +551,9 @@ if (!empty($_REQUEST['new_dir'])) {
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be/abstractlink.class.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$resource_name = (empty($_POST['qualification_name'])) ? $_POST['new_dir'] : $_POST['qualification_name'];
add_resource_to_course_gradebook(api_get_course_id(), 3, $id, Database::escape_string($resource_name), $_POST['weight'], $_POST['qualification_value'], Database::escape_string($_POST['description']), time(), 1, api_get_session_id());
//$resource_name = (empty($_POST['qualification_name'])) ? $_POST['new_dir'] : $_POST['qualification_name'];
$resource_name = $_POST['new_dir'];
add_resource_to_course_gradebook(api_get_course_id(), 3, $id, $resource_name, $_POST['weight'], $_POST['qualification_value'], $_POST['description'], time(), 1, api_get_session_id());
}
// end features
@ -588,17 +561,6 @@ if (!empty($_REQUEST['new_dir'])) {
if (api_get_course_setting('email_alert_students_on_new_homework') == 1) {
send_email_on_homework_creation(api_get_course_id());
}
// update all the parents in the table item propery
$list_id = get_parent_directories($my_cur_dir_path);
for ($i = 0; $i < count($list_id); $i++) {
api_item_property_update($_course, 'work', $list_id[$i], 'FolderUpdated', $user_id);
}
//uncomment if you want to enter the created dir
//$curdirpath = $created_dir;
//$curdirpathurl = urlencode($curdirpath);
} else {
Display :: display_error_message(get_lang('CannotCreateDir'));
}
@ -638,9 +600,7 @@ if (!empty($_REQUEST['delete2'])) {
}
$sql2 = "DELETE FROM $TSTDPUBASG WHERE publication_id ='$delete_2'";
$result2 = Database::query($sql2);
/*$sql3 = "DELETE FROM $t_gradebook_link WHERE course_code='$course_code' AND ref_id='$delete_2'";
$result3 = Database::query($sql3);*/
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
$link_id = is_resource_in_course_gradebook(api_get_course_id(), 3 , $delete_2, api_get_session_id());
if ($link_id !== false) {
remove_resource_from_course_gradebook($link_id);
@ -659,7 +619,7 @@ if (!empty ($_REQUEST['move'])) {
while($folder = Database::fetch_array($res)) {
$folders[$folder['id']] = substr($folder['url'], 1, strlen($folder['url']) - 1);
}
echo build_work_move_to_selector($folders, $cur_dir_path, $_REQUEST['move']);
echo build_work_move_to_selector($folders, $curdirpath, $_REQUEST['move']);
}
/* Move file command */
@ -682,10 +642,6 @@ if (isset ($_POST['move_to']) && isset ($_POST['move_file'])) {
//update db
update_work_url($move_file_id, 'work' . $move_to_path, $move_to);
//set the current path
//$cur_dir_path = $move_to_path;
//$cur_dir_path_url = urlencode($move_to_path);
// update all the parents in the table item propery
$list_id = get_parent_directories($move_to_path);
for ($i = 0; $i < count($list_id); $i++) {
@ -864,6 +820,7 @@ else {
/* FORM SUBMIT PROCEDURE */
$error_message = '';
$user_id = api_get_user_id();
if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
if (!empty($_POST['submitWork']) && !empty($is_course_member)) {
@ -892,46 +849,39 @@ if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
if (!$title) {
$title = $_FILES['file']['name'];
}
//if (!$authors) {
$authors = api_get_person_name($currentUserFirstName, $currentUserLastName);
//}
// compose a unique file name to avoid any conflict
$new_file_name = uniqid('') . $new_file_name;
// Compose a unique file name to avoid any conflict
$new_file_name = api_get_unique_id();
if (isset ($_SESSION['toolgroup'])) {
$post_group_id = $_SESSION['toolgroup'];
} else {
$post_group_id = '0';
}
//if we come from the group tools the groupid will be saved in $work_table
@move_uploaded_file($_FILES['file']['tmp_name'], $updir . $my_cur_dir_path . $new_file_name);
$url = 'work/' . $my_cur_dir_path . $new_file_name;
@move_uploaded_file($_FILES['file']['tmp_name'], $updir.$curdirpath.'/'.$new_file_name);
$url = 'work'.$curdirpath.'/'.$new_file_name;
$result = Database::query("SHOW FIELDS FROM " . $work_table . " LIKE 'sent_date'");
if (!Database::num_rows($result)) {
Database::query("ALTER TABLE " . $work_table . " ADD sent_date DATETIME NOT NULL");
}
$current_date = api_get_utc_datetime();
$parent_id = '';
$active = '1';
$user_id = api_get_user_id();
$sql = Database::query('SELECT id FROM '.Database::get_course_table(TABLE_STUDENT_PUBLICATION).' WHERE url = '."'/".Database::escape_string($_GET['curdirpath'])."' AND filetype='folder' LIMIT 1");
if (Database::num_rows($sql) > 0) {
$dir_row = Database::fetch_array($sql);
$parent_id = $dir_row['id'];
}
$sql_add_publication = "INSERT INTO " . $work_table . " SET " .
"url = '" . $url . "',
title = '" . Database::escape_string($title) . "',
description = '" . Database::escape_string($description) . "',
author = '" . Database::escape_string($authors) . "',
active = '" . $active . "',
accepted = '1',
post_group_id = '" . $post_group_id . "',
sent_date = '".$current_date ."',
parent_id = '".$parent_id ."' ,
session_id = '".intval($id_session)."' ,
user_id = '".$user_id."'";
$sql_add_publication = "INSERT INTO " . $work_table . " SET
url = '" . $url . "',
title = '" . Database::escape_string($title) . "',
description = '" . Database::escape_string($description) . "',
author = '" . Database::escape_string($authors) . "',
active = '" . $active . "',
accepted = '1',
post_group_id = '".$post_group_id."',
sent_date = '".api_get_utc_datetime()."',
parent_id = '".$work_id."' ,
session_id = '".intval($id_session)."' ,
user_id = '".$user_id."'";
Database::query($sql_add_publication);
@ -954,9 +904,8 @@ if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
$post_group_id = '0';
}
/*
* SPECIAL CASE ! For a work coming from another area (i.e. groups)
*/
// SPECIAL CASE ! For a work coming from another area (i.e. groups)
$url = str_replace('../../' . $_course['path'] . '/', '', $newWorkUrl);
if (!$title) {
@ -968,14 +917,13 @@ if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
if (!Database::num_rows($result)) {
Database::query("ALTER TABLE " . $work_table . " ADD sent_date DATETIME NOT NULL");
}
$current_date = api_get_utc_datetime();
$sql = "INSERT INTO " . $work_table . "
SET url = '" . $url . "',
title = '" . Database::escape_string($title) . "',
description = '" . Database::escape_string($description) . "',
author = '" . Database::escape_string($authors) . "',
post_group_id = '".$post_group_id."',
sent_date = '".$current_date."',
sent_date = '".api_get_utc_datetime()."',
session_id = '".intval($id_session)."',
user_id = '".$user_id."'";
@ -985,39 +933,38 @@ if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
api_item_property_update($_course, 'work', $insertId, 'DocumentAdded', $user_id);
$succeed = true;
// update all the parents in the table item propery
/*// update all the parents in the table item propery
$list_id=get_parent_directories($my_cur_dir_path);
for ($i = 0; $i < count($list_id); $i++) {
api_item_property_update($_course, 'work', $list_id[$i], 'FolderUpdated', $user_id);
}
}
/*
* SPECIAL CASE ! For a work edited
*/
}*/
} else {
/*
* SPECIAL CASE ! For a work edited
*/
else {
//Get the author ID for that document from the item_property table
$is_author = false;
if ($id != '') {
$author_sql = "SELECT * FROM $iprop_table WHERE tool = 'work' AND insert_user_id='$user_id' AND ref=" . Database::escape_string($id);
$item_to_edit_id = intval($_POST['item_to_edit']);
$item_to_edit_data = api_get_item_property_info(api_get_course_id(), 'work', $item_to_edit_id);
$author_qry = Database::query($author_sql);
if (Database :: num_rows($author_qry) == 1) {
if ($is_allowed_to_edit) {
$is_author = true;
} else {
if ($item_to_edit_data['insert_user_id'] == api_get_user_id()) {
$is_author = true;
}
} else {
Display::display_error_message(get_lang('IsNotPosibleSaveTheDocument'));
}
if ($id && ($is_allowed_to_edit or $is_author)) {
if ($is_author) {
if (!$title) {
$title = basename($newWorkUrl);
}
if($is_allowed_to_edit && ($_POST['qualification']!='')) {
$add_to_update = ',qualificator_id ='."'".api_get_user_id()."',";
$add_to_update .= 'qualification ='."'".Database::escape_string($_POST['qualification'])."',";
$add_to_update .= 'date_of_qualification ='."'".api_get_utc_datetime()."'";
if ($is_allowed_to_edit && ($_POST['qualification'] !='' )) {
$add_to_update = ', qualificator_id ='."'".api_get_user_id()."',";
$add_to_update .= ' qualification ='."'".Database::escape_string($_POST['qualification'])."',";
$add_to_update .= ' date_of_qualification ='."'".api_get_utc_datetime()."'";
}
if ((int)$_POST['qualification'] > (int)$_POST['qualification_over']) {
@ -1027,15 +974,13 @@ if ($ctok == $_POST['sec_token']) { //check the token inserted into the form
SET title = '" . Database::escape_string($title) . "',
description = '" . Database::escape_string($description) . "'
".$add_to_update."
WHERE id = '$id'";
WHERE id = $item_to_edit_id";
Database::query($sql);
}
$insertId = $id;
api_item_property_update($_course, 'work', $insertId, 'DocumentUpdated', $user_id);
api_item_property_update($_course, 'work', $item_to_edit_id, 'DocumentUpdated', $user_id);
$succeed = true;
} else {
$error_message = get_lang('TooBig');
$error_message = get_lang('IsNotPosibleSaveTheDocument');
}
}
}
@ -1061,10 +1006,10 @@ if (!empty($_POST['submitWork']) && !empty($succeed) && !$id) {
} else {
// coachs of the session
$sql_resp = 'SELECT user.email as myemail
FROM ' . $table_session . ' session
INNER JOIN ' . $table_user . ' user
ON user.user_id = session.id_coach
WHERE session.id = ' . intval($id_session);
FROM ' . $table_session . ' session
INNER JOIN ' . $table_user . ' user
ON user.user_id = session.id_coach
WHERE session.id = ' . intval($id_session);
$res_resp = Database::query($sql_resp);
while ($row_email = Database :: fetch_array($res_resp)) {
if (!empty ($row_email['myemail'])) {
@ -1074,10 +1019,10 @@ if (!empty($_POST['submitWork']) && !empty($succeed) && !$id) {
//coach of the course
$sql_resp = 'SELECT user.email as myemail
FROM ' . $table_session_course_user . ' scu
INNER JOIN ' . $table_user . ' user
ON user.user_id = scu.id_user AND scu.status=2
WHERE scu.id_session = ' . intval($id_session);
FROM ' . $table_session_course_user . ' scu
INNER JOIN ' . $table_user . ' user
ON user.user_id = scu.id_user AND scu.status=2
WHERE scu.id_session = ' . intval($id_session);
$res_resp = Database::query($sql_resp);
while ($row_email = Database :: fetch_array($res_resp)) {
if (!empty ($row_email['myemail'])) {
@ -1134,26 +1079,17 @@ if (!empty($_POST['submitWork']) && !empty($succeed) && !$id) {
/* Display links to upload form and tool options */
/*
$has_expired = false;
$has_ended = false;
isset($_GET['curdirpath'])?$curdirpath=Database::escape_string($_GET['curdirpath']):$curdirpath='';
$sql = Database::query('SELECT description,id FROM '.Database :: get_course_table(TABLE_STUDENT_PUBLICATION).' WHERE filetype = '."'folder'".' and has_properties != '."''".' and url = '."'/".$curdirpath."'".' LIMIT 1');
$is_special = Database::num_rows($sql);
*/
if ($is_special) {
$homework = get_work_assignment_by_id($my_folder_data['id']);
if ($is_special > 0) {
$is_special = true; //we are in a folder
define('IS_ASSIGNMENT', 1);
$sql = Database::query('SELECT * FROM '.$TSTDPUBASG.' WHERE publication_id = '.intval($publication['id']).' LIMIT 1');
$homework = Database::fetch_array($sql,'ASSOC');
$has_expired = $has_ended = false;
$has_expiry_date = false;
if ($homework['expires_on'] != '0000-00-00 00:00:00' || $homework['ends_on'] != '0000-00-00 00:00:00') {
$time_now = time();
if ($homework['expires_on'] != '0000-00-00 00:00:00') {
if (!empty($homework['expires_on']) && $homework['expires_on'] != '0000-00-00 00:00:00') {
$time_expires = api_strtotime($homework['expires_on']);
$difference = $time_expires - $time_now;
if ($difference < 0) {
@ -1161,46 +1097,42 @@ if ($is_special > 0) {
$has_expiry_date = true;
}
}
if ($homework['ends_on'] != '0000-00-00 00:00:00') {
if (!empty($homework['ends_on']) && $homework['ends_on'] != '0000-00-00 00:00:00') {
$time_ends = api_strtotime($homework['ends_on']);
$difference2 = $time_ends - $time_now;
if ($difference2 < 0) {
$has_ended = true;
}
}
if ($homework['expires_on'] == '0000-00-00 00:00:00') {
if (empty($homework['expires_on']) || $homework['expires_on'] == '0000-00-00 00:00:00') {
$has_expiry_date = false;
}
if ($has_expiry_date) {
//@todo fix me
define('ASSIGNMENT_EXPIRES', $time_expires);
}
$ends_on = api_convert_and_format_date($homework['ends_on']);
$expires_on = api_convert_and_format_date($homework['expires_on']);
if ($has_ended) {
display_action_links($cur_dir_path, $always_show_tool_options, true);
display_action_links($work_id, $curdirpath, $always_show_tool_options, true);
Display :: display_error_message(get_lang('EndDateAlreadyPassed').' '.$ends_on);
} elseif ($has_expired) {
display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form);
display_action_links($work_id,$curdirpath, $always_show_tool_options, $always_show_upload_form);
Display :: display_warning_message(get_lang('ExpiryDateAlreadyPassed').' '.$expires_on);
} else {
display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form);
display_action_links($work_id,$curdirpath, $always_show_tool_options, $always_show_upload_form);
if ($has_expiry_date) {
Display :: display_normal_message(get_lang('ExpiryDateToSendWorkIs').' '.$expires_on);
}
}
} else {
display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form);
display_action_links($work_id,$curdirpath, $always_show_tool_options, $always_show_upload_form);
}
} else {
display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form);
display_action_links($work_id, $curdirpath, $always_show_tool_options, $always_show_upload_form);
}
/* Display form to upload document */
if ($is_course_member) {
if (($display_upload_form || $edit)&&!$has_ended) {
if (($display_upload_form || $edit) && !$has_ended) {
if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) {
api_not_allowed();
@ -1219,7 +1151,7 @@ if ($is_course_member) {
//require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
require_once api_get_path(LIBRARY_PATH).'fileDisplay.lib.php';
$form = new FormValidator('form', 'POST', api_get_self() . "?curdirpath=" . rtrim(Security :: remove_XSS($cur_dir_path),'/') . "&gradebook=".Security::remove_XSS($_GET['gradebook'])."&origin=$origin", '', 'enctype="multipart/form-data"');
$form = new FormValidator('form', 'POST', api_get_self() . "?id=".$work_id."curdirpath=" . rtrim(Security :: remove_XSS($curdirpath),'/') . "&gradebook=".Security::remove_XSS($_GET['gradebook'])."&origin=$origin", '', 'enctype="multipart/form-data"');
// form title
if ($edit) {
@ -1236,14 +1168,14 @@ if ($is_course_member) {
if ($submitGroupWorkUrl) {
// For user comming from group space to publish his work
$realUrl = str_replace($_configuration['root_sys'], $_configuration['root_web'], str_replace("\\", '/', realpath($submitGroupWorkUrl)));
$realUrl = str_replace($_configuration['root_sys'], api_get_path(WEB_PATH), str_replace("\\", '/', realpath($submitGroupWorkUrl)));
$form->addElement('hidden', 'newWorkUrl', $submitGroupWorkUrl);
$text_document = & $form->addElement('text', 'document', get_lang('Document'));
$defaults['document'] = '<a href="' . format_url($submitGroupWorkUrl) . '">' . $realUrl . '</a>';
$text_document->freeze();
} elseif ($edit && ($is_allowed_to_edit or $is_author)) {
$workUrl = $currentCourseRepositoryWeb . $workUrl;
$form->addElement('hidden', 'id', $edit);
//$form->addElement('hidden', 'id', $edit);
$html = '<div class="row">
<div class="label">' . get_lang("Document") . '
@ -1258,7 +1190,7 @@ if ($is_course_member) {
$form->addElement('file', 'file', get_lang('UploadADocument'), 'size="40" onchange="updateDocumentTitle(this.value)"');
$show_progress_bar = true;
}
$form->addElement('hidden', 'id', $work_id);
$titleWork = $form->addElement('text', 'title', get_lang('TitleWork'), 'id="file_upload" style="width: 350px;"');
$defaults['title'] = $edit ? stripslashes($workTitle) : stripslashes($title);
@ -1273,9 +1205,9 @@ if ($is_course_member) {
$titleAuthors = $form->addElement('textarea', 'description', get_lang("Description"), 'style="width: 350px; height: 60px;"');
$defaults["description"] = ($edit ? stripslashes($workDescription) : stripslashes($description));
if ($is_allowed_to_edit && !empty($edit) && !empty($parent_id)) {
if ($is_allowed_to_edit && !empty($edit)) {
// Get qualification from parent_id that'll allow the validation qualification over
$sql = "SELECT qualification FROM $work_table WHERE id='$parent_id'";
$sql = "SELECT qualification FROM $work_table WHERE id='$work_id'";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$qualification_over = $row['qualification'];
@ -1287,6 +1219,8 @@ if ($is_course_member) {
$defaults['qualification'] = $qualification_number;//($edit ? stripslashes($qualification_number) : stripslashes($qualification_number));
$form->addElement('hidden', 'active', 1);
$form->addElement('hidden', 'accepted', 1);
$form->addElement('hidden', 'item_to_edit', $edit);
$form->addElement('hidden', 'sec_token', $stok);
if (isset($_GET['edit'])) {
@ -1326,7 +1260,7 @@ if ($is_course_member) {
//create the form that asks for the directory name
$new_folder_text = '<form name="form1" method="POST">';
$new_folder_text .= '<div class="row"><div class="form_header">'.get_lang('CreateAssignment').'</div></div>';
$new_folder_text .= '<input type="hidden" name="curdirpath" value="' . Security :: remove_XSS($cur_dir_path) . '"/>';
$new_folder_text .= '<input type="hidden" name="curdirpath" value="' . Security :: remove_XSS($curdirpath) . '"/>';
$new_folder_text .= '<input type="hidden" name="sec_token" value="'.$stok.'" />';
$new_folder_text .= '<div class="row">
<div class="label">
@ -1337,7 +1271,6 @@ if ($is_course_member) {
<input type="text" id="work_title" name="new_dir" onfocus="document.getElementById(\'msg_error1\').style.display=\'none\';"/>
</div>
</div>';
//$new_folder_text .= '<button type="button" name="create_dir" class="add" onClick="validate();" value="' . get_lang('Ok') . '"/>'.get_lang('CreateDirectory').'</button>';
//new additional fields inside the "if condition" just to agroup
$new_folder_text .= '<div class="row">
@ -1345,13 +1278,13 @@ if ($is_course_member) {
'.get_lang('Description').'
</div>
<div class="formw">';
$oFCKeditor = new FCKeditor('description') ;
$oFCKeditor->ToolbarSet = 'work';
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '200';
$oFCKeditor->Value = $message;
$return = $oFCKeditor->CreateHtml();
$new_folder_text .= $return;
$oFCKeditor = new FCKeditor('description') ;
$oFCKeditor->ToolbarSet = 'work';
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '200';
$oFCKeditor->Value = $message;
$return = $oFCKeditor->CreateHtml();
$new_folder_text .= $return;
$new_folder_text .= '</div>
</div>';
@ -1415,14 +1348,14 @@ if ($is_course_member) {
/* Display of tool options */
if ($display_tool_options) {
display_tool_options($uploadvisibledisabled, $origin, $base_work_dir, $cur_dir_path, $cur_dir_path_url);
display_tool_options($uploadvisibledisabled, $origin, $base_work_dir, $curdirpath, $cur_dir_path_url);
}
/* Display list of student publications */
if ($cur_dir_path == '/') {
if ($curdirpath == '/') {
$my_cur_dir_path = '';
} else {
$my_cur_dir_path = $cur_dir_path;
$my_cur_dir_path = $curdirpath;
}
//If no upload form is showed and if NO tooloptions
@ -1465,7 +1398,7 @@ if (!$display_upload_form && !$display_tool_options) {
$filter = isset($_REQUEST['filter']) ? (int)$_REQUEST['filter'] : '';
if ($origin != 'learnpath') {
$form_filter = '<form method="post" action="'.api_get_self().'?cidReq='.$cidreq.'&curdirpath='.$curdirpath.'&gradebook='.$gradebook.'">';
$form_filter = '<form method="post" action="'.api_get_self().'?cidReq='.$cidreq.'&id='.$work_id.'&curdirpath='.$curdirpath.'&gradebook='.$gradebook.'">';
$form_filter .= make_select('filter', array(0 => get_lang('SelectAFilter'), 1 => get_lang('FilterByNotRevised'), 2 => get_lang('FilterByRevised'), 3 => get_lang('FilterByNotExpired')), $filter).'&nbsp&nbsp';
$form_filter .= '<button type="submit" class="save" value="'.get_lang('FilterAssignments').'">'.get_lang('FilterAssignments').'</button></form>';
echo $form_filter;
@ -1473,13 +1406,14 @@ if (!$display_upload_form && !$display_tool_options) {
}
}
if (!empty($publication['description'])) {
echo '<p><div><strong>'.get_lang('Description').':</strong><p>'.Security::remove_XSS($publication['description'], STUDENT).'</p></div></p>';
if (!empty($my_folder_data['description'])) {
echo '<p><div><strong>'.get_lang('Description').':</strong><p>'.Security::remove_XSS($my_folder_data['description'], STUDENT).'</p></div></p>';
}
if ($display_list_users_without_publication) {
display_list_users_without_publication($publication['id']);
display_list_users_without_publication($my_folder_data['id']);
} else {
display_student_publications_list($base_work_dir . '/' . $my_cur_dir_path, 'work/' . $my_cur_dir_path, $currentCourseRepositoryWeb, $link_target_parameter, $dateFormatLong, $origin, $add_query);
//$base_work_dir . '/' . $my_cur_dir_path, 'work/' . $my_cur_dir_path,
display_student_publications_list($work_id, $link_target_parameter, $dateFormatLong, $origin, $add_query);
}
}

Loading…
Cancel
Save