, 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: $ */ /** * Displays action links (for admins, authorized groups members and authorized students) * @param string Current dir * @param integer Whether to show tool options * @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) { $display_output = ""; if(strlen($cur_dir_path) > 0 && $cur_dir_path != '/') { $parent_dir = dirname($cur_dir_path); $display_output .= ''.Display::return_icon('folder_up.gif').' '.get_lang('Up').' '; } if (! $always_show_upload_form ) { $display_output .= "".Display::return_icon('submit_file.gif')." ". get_lang("UploadADocument") . " "; } if (! $always_show_tool_options && api_is_allowed_to_edit() ) { $display_output .= "".Display::return_icon('acces_tool.gif').' ' . get_lang("EditToolOptions") . " "; } if ($display_output != "") { echo $display_output; } } /** * Displays all options for this tool. * These are * - make all files visible / invisible * - set the default visibility of uploaded files * * @param $uploadvisibledisabled * @param $origin * @param $base_work_dir Base working directory (up to '/work') * @param $cur_dir_path Current subdirectory of 'work/' * @param $cur_dir_path_url Current subdirectory of 'work/', url-encoded */ function display_tool_options($uploadvisibledisabled, $origin,$base_work_dir,$cur_dir_path,$cur_dir_path_url) { global $charset; $is_allowed_to_edit = api_is_allowed_to_edit(); $work_table = Database::get_course_table(TABLE_STUDENT_PUBLICATION); if (! $is_allowed_to_edit) return; echo '
'; echo "';
if ($cur_dir_path!= '/' && $cur_dir_path!=$group_properties['directory'])
{
echo ''.
' '.
get_lang("Up").' '."\n";
}
echo '' .
' '.
''.get_lang("CreateDir").' '."\n";
echo " |
';
$action .= '
';
$row[] = $action;
}else{
$row[] = "";
}
$table_data[] = $row;
}
}
while( $work = mysql_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 insert_user_id='$user_id' AND ref=".$work->id;
$author_qry = api_sql_query($author_sql,__FILE__,__LINE__);
if(Database::num_rows($author_qry)==1){
$is_author = true;
}
//display info depending on the permissions
if( $work->accepted == '1' || $is_allowed_to_edit)
{
$row = array();
if($work->accepted == '0')
{
$class='class="invisible"';
}
else
{
$class='';
}
$url = implode("/", array_map("rawurlencode", explode("/", $work->url)));
$row[] = ''.$work->title.'';
$row[] = $work->description;
$row[] = $work->author;
$row[] = $work->sent_date;
if( $is_allowed_to_edit)
{
$action = '';
$action .= '
';
$action .= '
';
$action .= '
';
if($work->accepted == '1')
{
$action .= '
';
}
else
{
$action .= '
';
}
$row[] = $action;
}elseif($is_author){
$action = '';
$action .= '
';
$action .= '
';
$row[] = $action;
}else{
$row[] = " ";
}
$table_data[] = $row;
}
}
//if( count($table_data) > 0)
//{
Display::display_sortable_table($table_header,$table_data);
//}
}
/**
* Returns a list of subdirectories found in the given directory.
*
* The list return starts from the given base directory.
* If you require the subdirs of /var/www/ (or /var/www), you will get 'abc/', 'def/', but not '/var/www/abc/'...
* @param string Base dir
* @param integer 0 if we only want dirs from this level, 1 if we want to recurse into subdirs
* @return strings_array The list of subdirs in 'abc/' form, -1 on error, and 0 if none found
* @todo Add a session check to see if subdirs_list doesn't exist yet (cached copy)
*/
function get_subdirs_list($basedir='',$recurse=0){
//echo "Looking for subdirs of $basedir";
if(empty($basedir) or !is_dir($basedir)){return -1;}
if(substr($basedir,-1,1)!='/'){$basedir = $basedir.'/';}
$dirs_list = array();
$dh = opendir($basedir);
while($entry = readdir($dh)){
if(is_dir($basedir.$entry) && $entry!='..' && $entry!='.'){
$dirs_list[] = $entry;
if($recurse==1){
foreach(get_subdirs_list($basedir.$entry) as $subdir){
$dirs_list[] = $entry.'/'.$subdir;
}
}
}
}
closedir($dh);
return $dirs_list;
}
/**
* Builds the form thats enables the user to
* select a directory to browse/upload in
* This function has been copied from the document/document.inc.php library
*
* @param array $folders
* @param string $curdirpath
* @param string $group_dir
* @return string html form
*/
function build_directory_selector($folders,$curdirpath,$group_dir='')
{
$form = '';
return $form;
}
/**
* Builds the form thats enables the user to
* move a document from one directory to another
* This function has been copied from the document/document.inc.php library
*
* @param array $folders
* @param string $curdirpath
* @param string $move_file
* @return string html form
*/
function build_move_to_selector($folders,$curdirpath,$move_file,$group_dir='')
{
$form = '';
return $form;
}
/**
* Checks if the first given directory exists as a subdir of the second given directory
* This function should now be deprecated by Security::check_abs_path()
* @param string Subdir
* @param string Base dir
* @return integer -1 on error, 0 if not subdir, 1 if subdir
*/
function is_subdir_of($subdir,$basedir){
if(empty($subdir) or empty($basedir)){return -1;}
if(substr($basedir,-1,1)!='/'){$basedir=$basedir.'/';}
if(substr($subdir,0,1)=='/'){$subdir = substr($subdir,1);}
if(is_dir($basedir.$subdir)){
return 1;
}else{
return 0;
}
}
/**
* creates a new directory trying to find a directory name
* that doesn't already exist
* (we could use unique_name() here...)
*
* @author Hugues Peeters