diff --git a/main/work/work.lib.php b/main/work/work.lib.php index 8e64f427f9..3bca3575c8 100644 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -1,4 +1,4 @@ -, 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.lib.php 18420 2009-02-10 20:19:02Z cvargas1 $ +* @version $Id: work.lib.php 18437 2009-02-11 16:34:36Z cfasanando $ */ /** * Displays action links (for admins, authorized groups members and authorized students) @@ -99,8 +99,8 @@ function display_tool_options($uploadvisibledisabled, $origin,$base_work_dir,$cu } echo ""; display_default_visibility_form($uploadvisibledisabled); - echo ''; - echo '
'.get_lang("ValidateChanges").' :
'; + echo ''; + echo '
'.get_lang("ValidateChanges").' :
'; } @@ -534,18 +534,35 @@ function display_student_publications_list($work_dir,$sub_course_dir,$currentCou $row = array(); $class = ''; $row[] = ''.get_lang('Folder').''; //image - $a_count_directory=count_dir($work_dir.'/'.$dir,false); + //$a_count_directory=count_dir($work_dir.'/'.$dir,false); + $cant_files=0; + $cant_dir = 0; if(api_is_allowed_to_edit()) { - $cant_files=$a_count_directory[0]; + $sql_document = "SELECT count(*) FROM $work_table WHERE url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'"; } else { - $sql = "SELECT count(*) FROM $work_table s, $iprop_table p WHERE s.id = p.ref AND lastedit_user_id='".(int)api_get_user_id()."' AND url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'"; - $res = api_sql_query($sql,__FILE__,__LINE__); - $r = Database::fetch_row($res); - $cant_files = $r[0]; + // gets admin_course + $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); + $table_user = Database :: get_main_table(TABLE_MAIN_USER); + $sql = "SELECT course_user.user_id FROM $table_user user, $table_course_user course_user + WHERE course_user.user_id=user.user_id AND course_user.course_code='".api_get_course_id()."' AND course_user.status='1'"; + $res = api_sql_query($sql,__FILE__,__LINE__); + $admin_course = ''; + while($row_admin = Database::fetch_row($res)) { + $admin_course .='\''.$row_admin[0].'\','; + } + $sql_document = "SELECT count(*) FROM $work_table s, $iprop_table p WHERE s.id = p.ref AND p.tool='work' AND lastedit_user_id IN(".$admin_course.'\''.api_get_user_id().'\''.") AND s.accepted='1' AND url NOT LIKE '".$sub_course_dir.$dir."/%/%' AND url LIKE '".$sub_course_dir.$dir."/%'"; } - $cant_dir=$a_count_directory[1]; - + //count documents + $res_document = api_sql_query($sql_document,__FILE__,__LINE__); + $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 = api_sql_query($sql_directory,__FILE__,__LINE__); + $count_directory = Database::fetch_row($res_directory); + $cant_dir = $count_directory[0]; + $text_file=get_lang('FilesUpload'); $text_dir=get_lang('Directories'); @@ -608,7 +625,7 @@ function display_student_publications_list($work_dir,$sub_course_dir,$currentCou $table_data[] = $row; } - while( $work = mysql_fetch_object($sql_result)) { + 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; diff --git a/main/work/work.php b/main/work/work.php index ff15b10739..5c802b782d 100644 --- a/main/work/work.php +++ b/main/work/work.php @@ -1,4 +1,4 @@ -, 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 18407 2009-02-10 16:03:50Z cfasanando $ +* @version $Id: work.php 18437 2009-02-11 16:34:36Z cfasanando $ * * @todo refactor more code into functions, use quickforms, coding standards, ... */ @@ -107,6 +107,10 @@ $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); +$table_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE); /* ----------------------------------------------------------- Constants and variables @@ -809,15 +813,14 @@ if ($ctok==$_POST['sec_token']) { //check the token inserted into the form 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 = '" . $title . "', description = '" . $description . "', author = '" . $authors . "', active = '" . $active . "', - accepted = '" . (!$uploadvisibledisabled) . "', + accepted = '" . (api_is_allowed_to_edit()?$uploadvisibledisabled:(!$uploadvisibledisabled)) . "', post_group_id = '" . $post_group_id . "', sent_date = '".$current_date ."', parent_id = '".$parent_id ."' , @@ -936,11 +939,7 @@ if (!empty($_POST['submitWork']) && !empty($succeed) && !$id) { $send = api_get_course_setting('email_alert_manager_on_new_doc'); if ($send > 0) { - // Lets predefine some variables. Be sure to change the from address! - $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); - $table_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE); + // Lets predefine some variables. Be sure to change the from address! $emailto = array (); if (empty ($id_session)) { @@ -1296,9 +1295,16 @@ if ($cur_dir_path == '/') { } if (!$display_upload_form && !$display_tool_options) { - $add_query = ''; + $add_query = ''; + $sql = "SELECT concat(user.firstname,' ',user.lastname) FROM $table_user user, $table_course_user course_user + WHERE course_user.user_id=user.user_id AND course_user.course_code='".api_get_course_id()."' AND course_user.status='1'"; + $res = api_sql_query($sql,__FILE__,__LINE__); + $admin_course = ''; + while($row = Database::fetch_row($res)) { + $admin_course .='\''.$row[0].'\','; + } if(!$is_allowed_to_edit && $is_special==true) { - $add_query = ' AND author = '."'".$_user['firstName'].' '.$_user['lastName']."' "; + $add_query = ' AND author IN('.$admin_course.'\''.$_user['firstName'].' '.$_user['lastName'].'\')'; } if($is_allowed_to_edit && $is_special==true) {