Changeset 827

Show
Ignore:
Timestamp:
01/18/07 17:01:28 (2 years ago)
Author:
ben
Message:

Further amendments to the API for viewing folders.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • devel/mod/file/lib.php

    r810 r827  
    1111            $CFG->folders->default_handler = "elgg"; 
    1212        } 
    13         $CFG->folders->handler["elgg"]->menuitem = __gettext("Default file folder"); 
     13        $CFG->folders->handler["elgg"]['menuitem'] = __gettext("Default file folder"); 
     14        $CFG->folders->handler["elgg"]['view'] = "file_folder_view"; 
     15        $CFG->folders->handler["elgg"]['preview'] = "file_folder_preview"; 
    1416} 
    1517 
     
    5153} 
    5254 
     55 
     56    function file_folder_view($folder) { 
     57         
     58        global $CFG; 
     59        /* 
     60         *    View a specific folder 
     61         *    (Access rights are presumed) 
     62         */ 
     63         
     64        // Find out who's the owner 
     65             
     66        global $page_owner; 
     67        $owner_username = user_info('username', $page_owner); 
     68         
     69        // If we're not in the parent folder, provide a link to return to the parent 
     70         
     71        /* 
     72        if ($folder->ident != -1) { 
     73            $folder->name = stripslashes($folder->name); 
     74        } 
     75        */ 
     76                 
     77        $body = "<h2>" . $folder->name . "</h2>"; 
     78         
     79        if ($folder->ident != -1) { 
     80             
     81            $parent = (int) $folder->parent; 
     82             
     83            if ($parent != -1) { 
     84                $parent_details = get_record('file_folders','ident',$parent,'files_owner',$page_owner); 
     85                $display_parent = $parent; 
     86            } else { 
     87                $parent_details->name = "root folder"; 
     88                $parent_details->ident = -1; 
     89                $display_parent = ""; 
     90            } 
     91             
     92            $body .= "<p><a href=\"".url."$owner_username/files/$display_parent\">"; 
     93            $body .= "". __gettext("Return to") ." " . stripslashes($parent_details->name); 
     94            $body .= "</a></p>"; 
     95        } 
     96         
     97        // Firstly, get a list of folders 
     98        // Display folders we actually have access to 
     99        if ($folder->idents = get_records_select('file_folders',"parent = $folder->ident AND (". run("users:access_level_sql_where") . ") and files_owner = $page_owner")) { 
     100            $subFolders = __gettext("Subfolders"); // gettext variable 
     101            $body .= <<< END 
     102                 
     103                            <h3> 
     104                                $subFolders 
     105                            </h3> 
     106         
     107END; 
     108             
     109            foreach($folder->idents as $folder->ident_details) { 
     110                 
     111                if (run("users:access_level_check",$folder->ident_details->access) == true) { 
     112                    $username = $owner_username; 
     113                    $ident = (int) $folder->ident_details->ident; 
     114                    $name = get_access_description($folder->ident_details->access); 
     115                    $name .= stripslashes($folder->ident_details->name); 
     116                    if (run("permissions:check", array("files:edit", $folder->ident_details->owner))  || run("permissions:check", array("files:edit", $folder->ident_details->files_owner))) { 
     117                        $areyouSure = __gettext("Are you sure you want to permanently delete this folder?"); // gettext variable 
     118                        $delete = __gettext("Delete"); // gettext variable 
     119                        $edit = __gettext("Edit"); // gettext variable 
     120                        $folder->identmenu = <<< END 
     121            [<a href="{$CFG->wwwroot}_files/edit_folder.php?edit_folder_id={$folder->ident_details->ident}&amp;owner=$page_owner">$edit</a>] 
     122            [<a href="{$CFG->wwwroot}_files/action_redirection.php?action=delete_folder&amp;delete_folder_id={$folder->ident_details->ident}" onclick="return confirm('$areyouSure')">$delete</a>] 
     123         
     124END; 
     125                    } else { 
     126                        $folder->identmenu = ""; 
     127                    } 
     128                    $keywords = display_output_field(array("","keywords","folder","folder",$ident,$folder->ident_details->owner)); 
     129                    if ($keywords) { 
     130                        $keywords = __gettext("Keywords: ") . $keywords; 
     131                    } 
     132                    $body .= templates_draw(array( 
     133                                                  'context' => 'folder', 
     134                                                  'username' => $username, 
     135                                                  'url' => $CFG->wwwroot . "$username/files/$ident", 
     136                                                  'ident' => $ident, 
     137                                                  'name' => $name, 
     138                                                  'menu' => $folder->identmenu, 
     139                                                  'icon' => $CFG->wwwroot . "_files/folder.png", 
     140                                                  'keywords' => $keywords 
     141                                                  ) 
     142                                            ); 
     143                } 
     144                 
     145            } 
     146        } 
     147             
     148        // Then get a list of files 
     149        // View files we actually have access to 
     150        if ($files = get_records_select('files',"folder = ? AND files_owner = ?",array($folder->ident,$page_owner))) { 
     151            foreach($files as $file) { 
     152                 
     153                if (run("users:access_level_check",$file->access) == true || $file->owner == $_SESSION['userid']) { 
     154                    $username = $owner_username; 
     155                    $ident = (int) $file->ident; 
     156                    $folder->ident = $file->folder; 
     157                    $title = get_access_description($file->access); 
     158                    $title .= stripslashes($file->title); 
     159                    $description = nl2br(stripslashes($file->description)); 
     160                    $filetitle = urlencode($title); 
     161                    $originalname = stripslashes($file->originalname); 
     162                    $filemenu = round(($file->size / 1048576),4) . "MB "; 
     163                    $icon = $CFG->wwwroot . "_icon/file/" . $file->ident; 
     164                    $filepath = $CFG->wwwroot . "$username/files/$folder->ident/$ident/" . urlencode($originalname); 
     165                    require_once($CFG->dirroot.'lib/filelib.php'); 
     166                    $mimetype = mimeinfo('type',$file->originalname); 
     167                    if ($mimetype == "audio/mpeg" || $mimetype == "audio/mp3") { 
     168                        $filemenu .= " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" 
     169        codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" 
     170        width=\"17\" height=\"17\" > 
     171            <param name=\"allowScriptAccess\" value=\"sameDomain\" /> 
     172            <param name=\"movie\" value=\"" . $CFG->wwwroot . "_files/mp3player/musicplayer.swf?song_url=$filepath&amp;song_title=$filetitle\" /> 
     173            <param name=\"quality\" value=\"high\" /> 
     174            <embed src=\"" . $CFG->wwwroot . "_files/mp3player/musicplayer.swf?song_url=$filepath&amp;song_title=$filetitle\" 
     175            quality=\"high\" bgcolor=\"#E6E6E6\" name=\"xspf_player\" allowscriptaccess=\"sameDomain\" 
     176            type=\"application/x-shockwave-flash\" 
     177            pluginspage=\"http://www.macromedia.com/go/getflashplayer\" 
     178            align=\"center\" height=\"17\" width=\"17\" /> 
     179        </object>"; 
     180                    } 
     181                    if (run("permissions:check", array("files:edit", $file->owner))  || run("permissions:check", array("files:edit", $file->files_owner))) { 
     182                        $areyouSure = __gettext("Are you sure you want to permanently delete this file?"); // gettext variable 
     183                        $delete = __gettext("Delete"); // gettext variable 
     184                        $edit = __gettext("Edit"); // gettext variable 
     185                        $filemenu .= <<< END 
     186            [<a href="{$CFG->wwwroot}_files/edit_file.php?edit_file_id={$file->ident}&amp;owner=$page_owner">$edit</a>] 
     187            [<a href="{$CFG->wwwroot}_files/action_redirection.php?action=delete_file&amp;delete_file_id={$file->ident}" onclick="return confirm('$areyouSure')">$delete</a>] 
     188END; 
     189                    } 
     190                    $keywords = display_output_field(array("","keywords","file","file",$ident,$file->owner)); 
     191                    if ($keywords) { 
     192                        $keywords = __gettext("Keywords: ") . $keywords; 
     193                    } 
     194                    $body .= templates_draw(array( 
     195                                                  'context' => 'file', 
     196                                                  'username' => $username, 
     197                                                  'title' => $title, 
     198                                                  'ident' => $ident, 
     199                                                  'folder' => $folder->ident, 
     200                                                  'description' => $description, 
     201                                                  'originalname' => $originalname, 
     202                                                  'url' => $filepath, 
     203                                                  'menu' => $filemenu, 
     204                                                  'icon' => $icon, 
     205                                                  'keywords' => $keywords 
     206                                                  ) 
     207                                            ); 
     208                } 
     209                 
     210            } 
     211             
     212        } 
     213         
     214        // Deliver an apologetic message if there aren't any files or folders 
     215         
     216        if (empty($files) && empty($folder->idents)) { 
     217             
     218            $body .= "<p>" . __gettext("This folder is currently empty.") . "</p>"; 
     219             
     220        } 
     221 
     222        return $body; 
     223         
     224         
     225    } 
     226     
     227    function file_folder_preview($folder) { 
     228         
     229    } 
     230 
    53231?> 
  • devel/units/files/edit_folder.php

    r758 r827  
    2525END; 
    2626        $labelValue = __gettext("Folder name:"); // gettext variable 
    27         $parentFolder = __gettext("Parent folder"); // gettext variable 
     27        $parentFolder = __gettext("Parent folder:"); // gettext variable 
     28        $folderType = __gettext("Folder type:"); // gettext variable 
    2829        $body = <<< END 
    2930        <table width="100%"> 
     
    4748END; 
    4849        $body .= run("folder:select", array("edit_folder_parent",$_SESSION['userid'],$folder_details->parent)); 
    49         $accessLabel = __gettext("Access restrictions"); // gettext variable 
     50        $accessLabel = __gettext("Access restrictions:"); // gettext variable 
    5051        $body .= <<< END 
    5152                </p></td> 
     
    107108$title = __gettext("Create a new folder"); 
    108109$createLabel = __gettext("To create a new folder, enter its name:"); //gettext variable 
    109 $accessLabel = __gettext("Access restrictions"); //gettext variable 
     110$accessLabel = __gettext("Access restrictions:"); //gettext variable 
    110111 
    111112$body = <<< END 
  • devel/units/files/files_view.php

    r789 r827  
    77// Get owner and current folder 
    88     
    9 global $owner; 
    10 global $folder; 
     9global $owner, $folder, $CFG; 
    1110 
    1211// Get folder 
     
    2019        $accessible = run("users:access_level_check",$access); 
    2120    } 
     21} else { 
     22    $accessible = true; 
     23    $folder_object = new stdClass(); 
     24    $folder_object->ident = -1; 
     25    $folder_object->handler = "elgg"; 
     26    $folder_object->name = __gettext("Root Folder"); 
     27} 
     28 
     29if (!isset($folder_object->handler)  
     30    || !@is_callable($CFG->folders->handler[$folder_object->handler]['view'])) { 
     31    $folder_object->handler = "elgg"; 
    2232} 
    2333         
    2434// If we're in the root or an accessible folder, view it 
    25  
    26 if ($accessible || $folder == -1) { 
    27     if (!isset($folder_object->handler) || !isset($CFG->folder->handler[$folder_object->handler]) || $folder_object->handler == "elgg") { 
     35if ($accessible) { 
     36    if (!isset($folder_object->handler) || !isset($CFG->folders->handler[$folder_object->handler])) { 
    2837        $run_result .= run("files:folder:view",$folder); 
    29     } else if (is_callable($CFG->folder->handler[$folder_object->handler])) { 
    30         $CFG->folder->handler[$folder_object->handler]($folder_object); 
     38    } else if (is_callable($CFG->folders->handler[$folder_object->handler]['view'])) { 
     39        $run_result .= $CFG->folders->handler[$folder_object->handler]['view']($folder_object); 
    3140    } 
    3241} 
  • devel/units/files/folder_view.php

    r794 r827  
    11<?php 
    2 global $CFG; 
    3 /* 
    4  *    View a specific folder 
    5  *    (Access rights are presumed) 
    6  */ 
    72 
    8 // If a folder has been specified, convert it to integer; 
    9 // otherwise assume we're in the root 
    10  
    11 if (isset($parameter) && $parameter != "") { 
    12     $folder = (int) $parameter; 
    13 } else { 
    14     $folder = -1; 
    15 
    16  
    17 // Find out who's the owner 
    18      
    19 global $page_owner; 
    20 $owner_username = user_info('username', $page_owner); 
    21  
    22 // If we're not in the parent folder, provide a link to return to the parent 
    23      
    24 global $this_folder; 
    25 global $folder_name; 
    26  
    27 $folder_name = __gettext("Root Folder"); 
    28 if ($folder != -1) { 
    29     if ($this_folder = get_record('file_folders','ident',$folder,'files_owner',$page_owner)) { 
    30         $folder_name = stripslashes($this_folder->name); 
     3    if (isset($parameter) && $parameter != "") { 
     4        $folder = (int) $parameter; 
     5    } else { 
     6        $folder = -1; 
    317    } 
    32 
    33          
    34 $body = "<h2>" . $folder_name . "</h2>"; 
    35  
    36 if ($folder != -1) { 
    37      
    38     $parent = (int) $this_folder->parent; 
    39      
    40     if ($parent != -1) { 
    41         $parent_details = get_record('file_folders','ident',$parent,'files_owner',$page_owner); 
    42         $display_parent = $parent; 
     8    if ($folder != -1) { 
     9        $folder_object = get_record('file_folders','ident',$folder,'files_owner',$page_owner); 
    4310    } else { 
    44         $parent_details->name = "root folder"; 
    45         $parent_details->ident = -1; 
    46         $display_parent = ""; 
     11        $folder_object = new stdClass(); 
     12        $folder_object->ident = -1; 
     13        $folder_object->handler = "elgg"; 
     14        $folder_object->name = __gettext("Root Folder"); 
    4715    } 
    4816     
    49     $body .= "<p><a href=\"".url."$owner_username/files/$display_parent\">"; 
    50     $body .= "". __gettext("Return to") ." " . stripslashes($parent_details->name); 
    51     $body .= "</a></p>"; 
    52 
    53  
    54 // Firstly, get a list of folders 
    55 // Display folders we actually have access to 
    56 if ($folders = get_records_select('file_folders',"parent = $folder AND (". run("users:access_level_sql_where") . ") and files_owner = $page_owner")) { 
    57     $subFolders = __gettext("Subfolders"); // gettext variable 
    58     $body .= <<< END 
    59          
    60                     <h3> 
    61                         $subFolders 
    62                     </h3> 
    63  
    64 END; 
    65      
    66     foreach($folders as $folder_details) { 
    67          
    68         if (run("users:access_level_check",$folder_details->access) == true) { 
    69             $username = $owner_username; 
    70             $ident = (int) $folder_details->ident; 
    71             $name = get_access_description($folder_details->access); 
    72             $name .= stripslashes($folder_details->name); 
    73             if (run("permissions:check", array("files:edit", $folder_details->owner))  || run("permissions:check", array("files:edit", $folder_details->files_owner))) { 
    74                 $areyouSure = __gettext("Are you sure you want to permanently delete this folder?"); // gettext variable 
    75                 $delete = __gettext("Delete"); // gettext variable 
    76                 $edit = __gettext("Edit"); // gettext variable 
    77                 $foldermenu = <<< END 
    78     [<a href="{$CFG->wwwroot}_files/edit_folder.php?edit_folder_id={$folder_details->ident}&amp;owner=$page_owner">$edit</a>] 
    79     [<a href="{$CFG->wwwroot}_files/action_redirection.php?action=delete_folder&amp;delete_folder_id={$folder_details->ident}" onclick="return confirm('$areyouSure')">$delete</a>] 
    80  
    81 END; 
    82             } else { 
    83                 $foldermenu = ""; 
    84             } 
    85             $keywords = display_output_field(array("","keywords","folder","folder",$ident,$folder_details->owner)); 
    86             if ($keywords) { 
    87                 $keywords = __gettext("Keywords: ") . $keywords; 
    88             } 
    89             $body .= templates_draw(array( 
    90                                           'context' => 'folder', 
    91                                           'username' => $username, 
    92                                           'url' => $CFG->wwwroot . "$username/files/$ident", 
    93                                           'ident' => $ident, 
    94                                           'name' => $name, 
    95                                           'menu' => $foldermenu, 
    96                                           'icon' => $CFG->wwwroot . "_files/folder.png", 
    97                                           'keywords' => $keywords 
    98                                           ) 
    99                                     ); 
    100         } 
    101          
    102     } 
    103 
    104      
    105 // Then get a list of files 
    106 // View files we actually have access to 
    107 if ($files = get_records_select('files',"folder = ? AND files_owner = ?",array($folder,$page_owner))) { 
    108     foreach($files as $file) { 
    109          
    110         if (run("users:access_level_check",$file->access) == true || $file->owner == $_SESSION['userid']) { 
    111             $username = $owner_username; 
    112             $ident = (int) $file->ident; 
    113             $folder = $file->folder; 
    114             $title = get_access_description($file->access); 
    115             $title .= stripslashes($file->title); 
    116             $description = nl2br(stripslashes($file->description)); 
    117             $filetitle = urlencode($title); 
    118             $originalname = stripslashes($file->originalname); 
    119             $filemenu = round(($file->size / 1048576),4) . "MB "; 
    120             $icon = $CFG->wwwroot . "_icon/file/" . $file->ident; 
    121             $filepath = $CFG->wwwroot . "$username/files/$folder/$ident/" . urlencode($originalname); 
    122             require_once($CFG->dirroot.'lib/filelib.php'); 
    123             $mimetype = mimeinfo('type',$file->originalname); 
    124             if ($mimetype == "audio/mpeg" || $mimetype == "audio/mp3") { 
    125                 $filemenu .= " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" 
    126 codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" 
    127 width=\"17\" height=\"17\" > 
    128     <param name=\"allowScriptAccess\" value=\"sameDomain\" /> 
    129     <param name=\"movie\" value=\"" . $CFG->wwwroot . "_files/mp3player/musicplayer.swf?song_url=$filepath&amp;song_title=$filetitle\" /> 
    130     <param name=\"quality\" value=\"high\" /> 
    131     <embed src=\"" . $CFG->wwwroot . "_files/mp3player/musicplayer.swf?song_url=$filepath&amp;song_title=$filetitle\" 
    132     quality=\"high\" bgcolor=\"#E6E6E6\" name=\"xspf_player\" allowscriptaccess=\"sameDomain\" 
    133     type=\"application/x-shockwave-flash\" 
    134     pluginspage=\"http://www.macromedia.com/go/getflashplayer\" 
    135     align=\"center\" height=\"17\" width=\"17\" /> 
    136 </object>"; 
    137             } 
    138             if (run("permissions:check", array("files:edit", $file->owner))  || run("permissions:check", array("files:edit", $file->files_owner))) { 
    139                 $areyouSure = __gettext("Are you sure you want to permanently delete this file?"); // gettext variable 
    140                 $delete = __gettext("Delete"); // gettext variable 
    141                 $edit = __gettext("Edit"); // gettext variable 
    142                 $filemenu .= <<< END 
    143     [<a href="{$CFG->wwwroot}_files/edit_file.php?edit_file_id={$file->ident}&amp;owner=$page_owner">$edit</a>] 
    144     [<a href="{$CFG->wwwroot}_files/action_redirection.php?action=delete_file&amp;delete_file_id={$file->ident}" onclick="return confirm('$areyouSure')">$delete</a>] 
    145 END; 
    146             } 
    147             $keywords = display_output_field(array("","keywords","file","file",$ident,$file->owner)); 
    148             if ($keywords) { 
    149                 $keywords = __gettext("Keywords: ") . $keywords; 
    150             } 
    151             $body .= templates_draw(array( 
    152                                           'context' => 'file', 
    153                                           'username' => $username, 
    154                                           'title' => $title, 
    155                                           'ident' => $ident, 
    156                                           'folder' => $folder, 
    157                                           'description' => $description, 
    158                                           'originalname' => $originalname, 
    159                                           'url' => $filepath, 
    160                                           'menu' => $filemenu, 
    161                                           'icon' => $icon, 
    162                                           'keywords' => $keywords 
    163                                           ) 
    164                                     ); 
    165         } 
    166          
    167     } 
    168      
    169 
    170  
    171 // Deliver an apologetic message if there aren't any files or folders 
    172  
    173 if (empty($files) && empty($folders)) { 
    174      
    175     $body .= "<p>" . __gettext("This folder is currently empty.") . "</p>"; 
    176      
    177 
    178  
    179 $run_result .= $body; 
     17    $run_result .= file_folder_view($folder_object); 
    18018         
    18119?>