diff options
author | Adrian Lang <mail@adrianlang.de> | 2011-09-24 16:34:32 +0200 |
---|---|---|
committer | Adrian Lang <mail@adrianlang.de> | 2011-09-24 16:34:32 +0200 |
commit | 554a8c9ffe7dc256ff10fdb49a144ca7dc510989 (patch) | |
tree | 5946bdb4e94cdcaaa6a34a2d97ebfb9cb6d643c3 /inc | |
parent | 33e91473c28e8f1c8542459bb4d755beb620305e (diff) | |
download | rpg-554a8c9ffe7dc256ff10fdb49a144ca7dc510989.tar.gz rpg-554a8c9ffe7dc256ff10fdb49a144ca7dc510989.tar.bz2 |
More mediamanager reworking
Diffstat (limited to 'inc')
-rw-r--r-- | inc/common.php | 12 | ||||
-rw-r--r-- | inc/media.php | 79 |
2 files changed, 48 insertions, 43 deletions
diff --git a/inc/common.php b/inc/common.php index 56a7fb060..ec7f9bece 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1558,4 +1558,16 @@ function valid_input_set($param, $valid_values, $array, $exc = '') { } } +function get_doku_pref($pref, $default) { + if (strpos($_COOKIE['DOKU_PREFS'], $pref) !== false) { + $parts = explode('#', $_COOKIE['DOKU_PREFS']); + for ($i = 0; $i < count($parts); $i+=2){ + if ($parts[$i] == $pref) { + return $parts[$i+1]; + } + } + } + return $default; +} + //Setup VIM: ex: et ts=2 : diff --git a/inc/media.php b/inc/media.php index d26d18626..4ca4c509c 100644 --- a/inc/media.php +++ b/inc/media.php @@ -576,12 +576,7 @@ function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false,$sort=fals echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL; }else { if ($fullscreenview) { - $view = $_REQUEST['list']; - if ($view == 'rows') { - echo '<ul class="rows">'.NL; - } else { - echo '<ul class="thumbs">'.NL; - } + echo '<ul class="' . _media_get_list_type() . '">'; } foreach($data as $item){ if (!$fullscreenview) { @@ -651,25 +646,23 @@ function media_tabs_details($image, $selected_tab = ''){ */ function media_tab_files_options(){ global $lang, $NS; - $sort = _media_get_sort_type(); - $form = new Doku_Form(array('class' => 'options', 'method' => 'get')); + $form = new Doku_Form(array('class' => 'options', 'method' => 'get', + 'action' => media_managerURL(array(), '&'))); $form->addHidden('sectok', null); - $form->addHidden('ns', $NS); - $form->addHidden('do', 'media'); + if (isset($_REQUEST['q'])) { + $form->addHidden('q', $_REQUEST['q']); + } $form->addElement('<ul>'.NL); foreach(array('list' => array('listType', array('thumbs', 'rows')), - 'sort' => array('sortBy', array('name', 'date'), $sort)) + 'sort' => array('sortBy', array('name', 'date'))) as $group => $content) { - if (count($content) < 3) { - $content[2] = isset($_REQUEST[$group]) - ? $_REQUEST[$group] - : $content[1][0]; - } + $checked = "_media_get_${group}_type"; + $checked = $checked(); $form->addElement('<li class="' . $content[0] . '">'); foreach($content[1] as $option) { $attrs = array(); - if ($content[2] == $option) { + if ($checked == $option) { $attrs['checked'] = 'checked'; } $form->addElement(form_makeRadioField($group, $option, @@ -693,16 +686,20 @@ function media_tab_files_options(){ * @return string - sort type */ function _media_get_sort_type() { - $sort = 'name'; - if (isset($_REQUEST['sort'])) { - $sort = $_REQUEST['sort']; - } elseif (strpos($_COOKIE['DOKU_PREFS'], 'sort') >= 0) { - $parts = explode('#', $_COOKIE['DOKU_PREFS']); - for ($i = 0; $i < count($parts); $i+=2){ - if ($parts[$i] == 'sort') $sort = $parts[$i+1]; - } + return _media_get_display_param('sort', array('default' => 'name', 'date')); +} + +function _media_get_list_type() { + return _media_get_display_param('list', array('default' => 'thumbs', 'rows')); +} + +function _media_get_display_param($param, $values) { + if (isset($_REQUEST[$param]) && in_array($_REQUEST[$param], $values)) { + // FIXME: Set cookie + return $_REQUEST[$param]; + } else { + return get_doku_pref($param, $values['default']); } - return $sort; } /** @@ -1295,12 +1292,7 @@ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort=''){ echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL; }else { if ($fullscreen) { - $view = $_REQUEST['view']; - if ($view == 'list') { - echo '<ul class="mediamanager-list" id="mediamanager__file_list">'.NL; - } else { - echo '<ul class="mediamanager-thumbs" id="mediamanager__file_list">'.NL; - } + echo '<ul class="' . _media_get_list_type() . '">'; } foreach($evdata['data'] as $item){ if (!$fullscreen) media_printfile($item,$item['perm'],'',true); @@ -1514,18 +1506,16 @@ function media_managerURL($params=false, $amp='&', $abs=false, $params_array global $ID; $gets = array('do' => 'media'); - $media_manager_params = array('tab_files', 'tab_details', 'image', 'ns', 'view'); + $media_manager_params = array('tab_files', 'tab_details', 'image', 'ns', 'list', 'sort'); foreach ($media_manager_params as $x) { if (isset($_REQUEST[$x])) $gets[$x] = $_REQUEST[$x]; } if ($params) { - foreach ($params as $k => $v) { - $gets[$k] = $v; - } + $gets = $params + $gets; } unset($gets['id']); - if ($gets['delete']) { + if (isset($gets['delete'])) { unset($gets['image']); unset($gets['tab_details']); } @@ -1603,15 +1593,18 @@ function media_searchform($ns,$query='',$fullscreen=false){ // The default HTML search form $params = array('id' => 'dw__mediasearch'); - if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php'; - else $params['action'] = media_managerURL(array(), '&'); + if (!$fullscreen) { + $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php'; + } else { + $params['action'] = media_managerURL(array(), '&'); + } $form = new Doku_Form($params); - if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>'.NL); $form->addHidden('ns', $ns); - if (!$fullscreen) $form->addHidden('do', 'searchlist'); - else $form->addHidden('mediado', 'searchlist'); + $form->addHidden($fullscreen ? 'mediado' : 'do', 'searchlist'); + + if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>'.NL); $form->addElement(form_makeOpenTag('p')); - $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'mediamanager__sort_textfield','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*')))); + $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*')))); $form->addElement(form_makeButton('submit', '', $lang['btn_search'])); $form->addElement(form_makeCloseTag('p')); html_form('searchmedia', $form); |