Dotclear

Changeset 3100:5632642ba008 for admin


Ignore:
Timestamp:
09/27/15 12:12:07 (10 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Add a list display mode to the media manager

Location:
admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • admin/media.php

    r3099 r3100  
    4444} 
    4545 
    46 # We set session information about directory and page 
     46# We set session information about directory, page and display mode 
    4747if ($d) { 
    4848     $_SESSION['media_manager_dir'] = $d; 
     
    6767     ); 
    6868 
     69# Display mode combo 
     70$mode_combo = array( 
     71     __('Grid') => 'grid', 
     72     __('List') => 'list' 
     73     ); 
     74 
     75if (!empty($_GET['file_mode'])) { 
     76     $_SESSION['media_file_mode'] = $_GET['file_mode']; 
     77} 
     78$file_mode = !empty($_SESSION['media_file_mode']) ? $_SESSION['media_file_mode'] : false; 
     79 
    6980if (!empty($_GET['file_sort']) && in_array($_GET['file_sort'],$sort_combo)) { 
    7081     $_SESSION['media_file_sort'] = $_GET['file_sort']; 
    7182} 
    7283$file_sort = !empty($_SESSION['media_file_sort']) ? $_SESSION['media_file_sort'] : null; 
     84 
    7385$nb_per_page = !empty($_SESSION['nb_per_page']) ? (integer)$_SESSION['nb_per_page'] : $nb_per_page; 
    7486if (!empty($_GET['nb_per_page']) && (integer)$_GET['nb_per_page'] > 0) { 
     
    472484     '</form>'. 
    473485     '<form action="'.$core->adminurl->get("admin.media").'" method="get" id="filters-form">'. 
    474      '<p class="two-boxes"><label for="file_sort" class="classic">'.__('Sort files:').'</label> '. 
     486     '<p class="three-boxes"><label for="file_mode" class="classic">'.__('Display mode:').'</label> '. 
     487     form::combo('file_mode',$mode_combo,$file_mode).'</p>'. 
     488     '<p class="three-boxes"><label for="file_sort" class="classic">'.__('Sort files:').'</label> '. 
    475489     form::combo('file_sort',$sort_combo,$file_sort).'</p>'. 
    476      '<p class="two-boxes"><label for="nb_per_page" class="classic">'.__('Number of elements displayed per page:').'</label> '. 
     490     '<p class="three-boxes"><label for="nb_per_page" class="classic">'.__('Number of elements displayed per page:').'</label> '. 
    477491     form::field('nb_per_page',5,3,(integer) $nb_per_page).' '. 
    478492     '<input type="submit" value="'.__('OK').'" />'. 
     
    485499     $pager->getLinks(); 
    486500 
    487      $dgroup = ''; 
    488      $fgroup = ''; 
    489      for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++,$j++) 
    490      { 
    491           if ($items[$i]->d) { 
    492                $dgroup .= mediaItemLine($items[$i],$j,$query); 
    493           } else { 
    494                $fgroup .= mediaItemLine($items[$i],$j,$query); 
    495           } 
    496      } 
    497  
    498      echo 
    499      ($dgroup != '' ? '<div class="folders-group">'.$dgroup.'</div>' : ''). 
    500      sprintf($fmt_form_media,$fgroup,''); 
     501     if ($file_mode == 'list') { 
     502          $table = 
     503          '<div class="table-outer">'. 
     504          '<table>'. 
     505          '<caption class="hidden">'.__('Media list').'</caption>'. 
     506          '<tr>'. 
     507          '<th colspan="2" class="first">'.__('Name').'</th>'. 
     508          '<th scope="col">'.__('Date').'</th>'. 
     509          '<th scope="col">'.__('Size').'</th>'. 
     510          '</tr>'; 
     511 
     512          $dlist = ''; 
     513          $flist = ''; 
     514          for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++,$j++) 
     515          { 
     516               if ($items[$i]->d) { 
     517                    $dlist .= mediaItemLine($items[$i],$j,$query,true); 
     518               } else { 
     519                    $flist .= mediaItemLine($items[$i],$j,$query,true); 
     520               } 
     521          } 
     522          $table .= $dlist.$flist; 
     523 
     524          $table .= 
     525          '</table></div>'; 
     526          echo sprintf($fmt_form_media,$table,''); 
     527     } else { 
     528          $dgroup = ''; 
     529          $fgroup = ''; 
     530          for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++,$j++) 
     531          { 
     532               if ($items[$i]->d) { 
     533                    $dgroup .= mediaItemLine($items[$i],$j,$query); 
     534               } else { 
     535                    $fgroup .= mediaItemLine($items[$i],$j,$query); 
     536               } 
     537          } 
     538          echo 
     539          ($dgroup != '' ? '<div class="folders-group">'.$dgroup.'</div>' : ''). 
     540          sprintf($fmt_form_media,$fgroup,''); 
     541     } 
    501542 
    502543     echo $pager->getLinks(); 
     
    633674 
    634675/* ----------------------------------------------------- */ 
    635 function mediaItemLine($f,$i,$query) 
     676function mediaItemLine($f,$i,$query,$table=false) 
    636677{ 
    637678     global $core, $page_url, $popup, $post_id, $plugin_id,$page_url_params; 
     
    640681     $file = $query ? $f->relname : $f->basename; 
    641682 
    642      $class = 'media-item media-col-'.($i%2); 
     683     $class = $table ? '' : 'media-item media-col-'.($i%2); 
    643684 
    644685     if ($f->d) { 
     
    671712          $fname = substr($fname, 0, $maxchars-4).'...'.($f->d ? '' : files::getExtension($fname)); 
    672713     } 
    673      $res = 
    674      '<div class="'.$class.'"><p><a class="media-icon media-link" href="'.rawurldecode($link).'">'. 
    675      '<img src="'.$f->media_icon.'" alt="" />'.($query ? $file : $fname).'</a></p>'; 
    676  
    677      $lst = ''; 
    678  
    679      if (!$f->d) { 
    680           $lst .= 
    681           '<li>'.$f->media_title.'</li>'. 
    682           '<li>'. 
    683           $f->media_dtstr.' - '. 
    684           files::size($f->size).' - '. 
    685           '<a href="'.$f->file_url.'">'.__('open').'</a>'. 
    686           '</li>'; 
    687      } 
    688714 
    689715     $act = ''; 
    690  
    691716     if ($post_id && !$f->d) { 
     717          // Media attachment button 
    692718          $act .= 
    693719          '<a class="attach-media" title="'.__('Attach this file to entry').'" href="'. 
     
    697723          '</a>'; 
    698724     } 
    699  
    700725     if ($popup && !$f->d) { 
     726          // Media insertion button 
    701727          $act .= '<a href="'.$link.'"><img src="images/plus.png" alt="'.__('Insert this file into entry').'" '. 
    702728          'title="'.__('Insert this file into entry').'" /></a> '; 
    703729     } 
    704  
    705730     if ($f->del) { 
     731          // Deletion button or checkbox 
    706732          if (!$popup && !$f->d) { 
    707733               $act .= form::checkbox(array('medias[]', 'media_'.rawurlencode($file)),$file); 
     
    717743     } 
    718744 
    719      $lst .= ($act != '' ? '<li class="media-action">&nbsp;'.$act.'</li>' : ''); 
    720  
    721      // Show player if relevant 
    722      $file_type = explode('/',$f->type); 
    723      if ($file_type[0] == 'audio') 
    724      { 
    725           $lst .= '<li>'.dcMedia::audioPlayer($f->type,$f->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))).'</li>'; 
    726      } 
    727  
    728      $res .=   ($lst != '' ? '<ul>'.$lst.'</ul>' : ''); 
    729  
    730      $res .= '</div>'; 
     745     if (!$table) { 
     746          $res = 
     747          '<div class="'.$class.'"><p><a class="media-icon media-link" href="'.rawurldecode($link).'">'. 
     748          '<img src="'.$f->media_icon.'" alt="" />'.($query ? $file : $fname).'</a></p>'; 
     749 
     750          $lst = ''; 
     751          if (!$f->d) { 
     752               $lst .= 
     753               '<li>'.$f->media_title.'</li>'. 
     754               '<li>'. 
     755               $f->media_dtstr.' - '. 
     756               files::size($f->size).' - '. 
     757               '<a href="'.$f->file_url.'">'.__('open').'</a>'. 
     758               '</li>'; 
     759          } 
     760          $lst .= ($act != '' ? '<li class="media-action">&nbsp;'.$act.'</li>' : ''); 
     761 
     762          // Show player if relevant 
     763          $file_type = explode('/',$f->type); 
     764          if ($file_type[0] == 'audio') 
     765          { 
     766               $lst .= '<li>'.dcMedia::audioPlayer($f->type,$f->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf'))).'</li>'; 
     767          } 
     768 
     769          $res .=   ($lst != '' ? '<ul>'.$lst.'</ul>' : ''); 
     770          $res .= '</div>'; 
     771     } else { 
     772          $res = '<tr class="'.$class.'">'; 
     773          $res .= '<td class="media-action">'.$act.'</td>'; 
     774          $res .= '<td class="maximal" scope="row"><a class="media-flag media-link" href="'.rawurldecode($link).'">'. 
     775                    '<img src="'.$f->media_icon.'" alt="" />'.($query ? $file : $fname).'</a>'. 
     776                    '<br />'.($f->d ? '' : $f->media_title).'</td>'; 
     777          $res .= '<td class="nowrap count">'.($f->d ? '' : $f->media_dtstr).'</td>'; 
     778          $res .= '<td class="nowrap count">'.($f->d ? '' : files::size($f->size).' - '.'<a href="'.$f->file_url.'">'.__('open').'</a>').'</td>'; 
     779          $res .= '</tr>'; 
     780     } 
    731781 
    732782     return $res; 
  • admin/style/default.css

    r2796 r3100  
    18801880     display: block; 
    18811881     } 
     1882a.media-flag { 
     1883     border-bottom: none; 
     1884} 
     1885.media-flag img { 
     1886     float: left; 
     1887     margin-right: .5em; 
     1888} 
    18821889.media-link { 
    18831890     font-size: 1.1em; 
     
    19271934     border-color: #eee; 
    19281935     } 
     1936tr.media-folder { 
     1937     background: transparent; 
     1938} 
    19291939.media-folder-up { 
    19301940     border-color: #fff; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map