Dotclear

Changeset 3136:0f2e1b90399b for admin


Ignore:
Timestamp:
11/13/15 15:22:01 (10 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Add recent folders direct access mechanism for the media manager (setting in user prefs)

Location:
admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • admin/media.php

    r3101 r3136  
    117117     } 
    118118     if (!$query) { 
    119           $core->media->chdir($d); 
     119          $try_d = $d; 
     120          // Reset current dir 
     121          $d = null; 
     122          // Change directory (may cause an exception if directory doesn't exist) 
     123          $core->media->chdir($try_d); 
     124          // Restore current dir variable 
     125          $d = $try_d; 
    120126          $core->media->getDir(); 
    121127     } else { 
     
    131137     $core->error->add($e->getMessage()); 
    132138} 
     139 
     140# Recent media dirs 
     141$last_dirs = null; 
     142//if ($d) { 
     143     $recent_dir = rtrim($d,'/');; 
     144     $core->auth->user_prefs->addWorkspace('interface'); 
     145     $nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
     146     if ($nb_last_dirs > 0) { 
     147          $last_dirs = @unserialize($core->auth->user_prefs->interface->media_last_dirs); 
     148          if (!is_array($last_dirs)) { 
     149               $last_dirs = array(); 
     150          } 
     151          if (!in_array($recent_dir,$last_dirs)) { 
     152               // Add new dir at the top of the list 
     153               array_unshift($last_dirs,$recent_dir); 
     154               // Remove oldest dir(s) 
     155               while (count($last_dirs) > $nb_last_dirs) { 
     156                    array_pop($last_dirs); 
     157               } 
     158          } else { 
     159               // Move current dir at the top of list 
     160               unset($last_dirs[array_search($recent_dir,$last_dirs)]); 
     161               array_unshift($last_dirs,$recent_dir); 
     162          } 
     163          // Store new list 
     164          $core->auth->user_prefs->interface->put('media_last_dirs',serialize($last_dirs)); 
     165     } 
     166//} 
    133167 
    134168# Zip download 
     
    318352     ); 
    319353} else { 
     354     $home_params = $page_url_params; 
     355     $home_params['d']=''; 
     356     $home_params['q']=''; 
    320357     if ($query || (!$query && $q)) { 
    321358          $count = $query ? count($dir['files']) : 0; 
    322           $home_params = $page_url_params; 
    323           $home_params['d']=''; 
    324           $home_params['q']=''; 
    325359          $breadcrumb = dcPage::breadcrumb( 
    326360               array( 
     
    340374                    array( 
    341375                         html::escapeHTML($core->blog->name) => '', 
    342                          __('Media manager') => '' 
     376                         __('Media manager') => $core->adminurl->get('admin.media',$home_params) 
    343377                    ), 
    344378                    array('home_link' => !$popup) 
     
    363397} 
    364398 
     399// Recent media folders 
     400$last_folders = ''; 
     401$last_folders_item = ''; 
     402$nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
     403if ($nb_last_dirs > 0) { 
     404     if (!is_array($last_dirs)) { 
     405          $last_dirs = @unserialize($core->auth->user_prefs->interface->media_last_dirs); 
     406     } 
     407     if (is_array($last_dirs)) { 
     408          foreach ($last_dirs as $ld) { 
     409               $ld_params = $page_url_params; 
     410               $ld_params['d'] = $ld; 
     411               $last_folders_item .= 
     412                    '<option value="'.urldecode($core->adminurl->get('admin.media',$ld_params)).'"'. 
     413                    ($ld == rtrim($d,'/') ? ' selected="selected"' : '').'>'. 
     414                    '/'.$ld.'</option>'."\n"; 
     415          } 
     416          if ($last_folders_item != '') { 
     417               $last_folders = 
     418                    '<p class="media-recent hidden-if-no-js">'. 
     419                    '<label class="classic" for="switchfolder">'.__('Goto recent folder:').'</label> '. 
     420                    '<select name="switchfolder" id="switchfolder">'. 
     421                    $last_folders_item. 
     422                    '</select>'. 
     423                    '<script type="text/javascript">var urlmenu = document.getElementById(\'switchfolder\'); 
     424                     urlmenu.onchange = function() { window.location = this.options[this.selectedIndex].value; }; 
     425                    </script>'. 
     426                    '</p>'; 
     427          } 
     428     } 
     429} 
     430 
    365431call_user_func($open_f,__('Media manager'), 
    366432     dcPage::jsLoad('js/_media.js'). 
     
    456522 
    457523echo '<div class="media-list">'; 
     524echo $last_folders; 
     525 
    458526if (count($items) == 0) 
    459527{ 
  • admin/preferences.php

    r3036 r3136  
    4747$user_ui_nofavmenu = $core->auth->user_prefs->interface->nofavmenu; 
    4848$user_ui_media_by_page = ($core->auth->user_prefs->interface->media_by_page ? $core->auth->user_prefs->interface->media_by_page : 30); 
     49$user_ui_media_nb_last_dirs = $core->auth->user_prefs->interface->media_nb_last_dirs; 
    4950 
    5051$default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'user-profile'; 
     
    191192          } 
    192193          $core->auth->user_prefs->interface->put('media_by_page',(integer)$_POST['user_ui_media_by_page'],'integer'); 
    193  
    194           # Udate user 
     194          $core->auth->user_prefs->interface->put('media_nb_last_dirs',(integer)$_POST['user_ui_media_nb_last_dirs'],'integer'); 
     195 
     196          # Update user 
    195197          $core->updUser($core->auth->userID(),$cur); 
    196198 
     
    438440form::field('user_ui_media_by_page',5,3,(integer) $user_ui_media_by_page).'</p>'; 
    439441 
     442echo 
     443'<p><label for="user_ui_media_nb_last_dirs" class="classic">'.__('Number of recent folders proposed in media manager:').'</label> '. 
     444form::field('user_ui_media_nb_last_dirs',5,3,(integer) $user_ui_media_nb_last_dirs).'</p>'. 
     445'<p class="clear form-note">'.__('Leave empty to ignore, displayed only if Javascript is enabled in your browser.').'</p>'; 
     446 
    440447if ($core->auth->isSuperAdmin()) { 
    441448     echo 
  • admin/style/default.css

    r3101 r3136  
    19591959     text-align: right; 
    19601960     } 
     1961.media-recent { 
     1962     float: left; 
     1963     margin-right: 2em; 
     1964} 
    19611965/* upload multiple */ 
    19621966.enhanced_uploader .choose_files, .enhanced_uploader .cancel, 
Note: See TracChangeset for help on using the changeset viewer.

Sites map