Changeset 817 for trunk/admin.php


Ignore:
Timestamp:
Aug 17, 2005, 4:25:38 PM (19 years ago)
Author:
plg
Message:
  • modification : major simplification of admin.php. Titles are managed by included page, localized items are managed directly in the template.
  • new : sub template admin/double_select is included in templates admin/cat_options, admin/user_perm and admin/group_perm. I haven't been able to use it in admin/picture_modify because it seems impossible to have two instance of the same sub-template without interfering.
  • modification : bug 99, in profile manager, no auto submit when changing language (useless and generate accessibility problem).
  • improvement : HTML semantically correct for administration menu, simpler syntax, less tags, correct tags (dl/dt/dd instead of div/div).
  • modification : number of waiting elements and unvalidated comments are displayed in admin/intro instead of administration menu (with a link to the dedicated pages).
  • deletion : no link to profile from admin/user_list anymore (no need).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin.php

    r815 r817  
    3838sync_users();
    3939
    40 //--------------------------------------- validating page and creation of title
    41 $page_valide = false;
    42 $title = '';
    43 $username='';
    44 if (isset($_POST['username']))
     40// +-----------------------------------------------------------------------+
     41// |                            variables init                             |
     42// +-----------------------------------------------------------------------+
     43
     44if (isset($_GET['page'])
     45    and preg_match('/^[a-z_]*$/', $_GET['page'])
     46    and is_file(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php'))
    4547{
    46   $username = $_POST['username'];
     48  $page['page'] = $_GET['page'];
    4749}
    48 else if (isset($_POST['userid']))
     50else
    4951{
    50   $username = get_username($_POST['userid']);
    51 }
    52 else if (isset($_GET['user_id']))
    53 {
    54   $username = get_username($_GET['user_id']);
    55 }
    56 
    57 $_GET['page'] = isset($_GET['page']) ? $_GET['page'] : 'intro';
    58 
    59 switch ( $_GET['page'] )
    60 {
    61   case 'user_list' :
    62   {
    63     $title = $lang['title_liste_users'];
    64     $page_valide = true;
    65     break;
    66   }
    67   case 'profile' :
    68   {
    69     $title = $lang['title_user_modify'];
    70     $page_valide = true;
    71     break;
    72   }
    73  case 'user_perm':
    74    $title = $lang['title_user_perm'].' '.$username;
    75    $page_valide = true; break;
    76  case 'group_list' :
    77    $title = $lang['title_groups'];        $page_valide = true; break;
    78  case 'group_perm' :
    79    if (!is_numeric($_GET['group_id']))
    80    {
    81      $_GET['group_id'] = -1;
    82    }
    83    $query = '
    84 SELECT name
    85   FROM '.GROUPS_TABLE.'
    86   WHERE id = '.$_GET['group_id'].'
    87 ;';
    88    $result = pwg_query($query);
    89    if (mysql_num_rows($result) > 0 )
    90    {
    91      $row = mysql_fetch_array($result);
    92      $title = $lang['title_group_perm'].' "'.$row['name'].'"';
    93      $page_valide = true;
    94    }
    95    else
    96    {
    97      $page_valide = false;
    98    }
    99    break;
    100  case 'stats':
    101    $title = $lang['title_history'];       $page_valide = true; break;
    102  case 'update':
    103    $title = $lang['title_update'];        $page_valide = true; break;
    104  case 'configuration':
    105    $title = $lang['title_configuration']; $page_valide = true; break;
    106  case 'help':
    107    $title = $lang['title_instructions'];  $page_valide = true; break;
    108  case 'cat_perm':
    109    $title = $lang['title_cat_perm'];
    110    if ( isset( $_GET['cat'] ) )
    111    {
    112      check_cat_id( $_GET['cat'] );
    113      if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) )
    114      {
    115        $result = get_cat_info( $page['cat'] );
    116        $name = get_cat_display_name($result['name'], '');
    117        $title.= ' "'.$name.'"';
    118      }
    119    }
    120    $page_valide = true;
    121    break;
    122  case 'cat_list':
    123    $title = $lang['title_categories'];    $page_valide = true; break;
    124  case 'cat_modify':
    125    $title = $lang['title_edit_cat'];      $page_valide = true; break;
    126  case 'infos_images':
    127    $title = $lang['title_info_images'];   $page_valide = true; break;
    128  case 'waiting':
    129    $title = $lang['title_waiting'];       $page_valide = true; break;
    130  case 'thumbnail':
    131    $title = $lang['title_thumbnails'];
    132    if ( isset( $_GET['dir'] ) )
    133    {
    134      $title.= ' '.$lang['title_thumbnails_2'].' <span class="titreImg">';
    135      // $_GET['dir'] contains :
    136      // ./galleries/vieux_lyon ou
    137      // ./galleries/vieux_lyon/visite ou
    138      // ./galleries/vieux_lyon/visite/truc ...
    139      $dir = explode( "/", $_GET['dir'] );
    140      $title.= $dir[2];
    141      for ( $i = 2; $i < sizeof( $dir ) - 1; $i++ )
    142      {
    143        $title.= ' &gt; '.$dir[$i+1];
    144      }
    145      $title.= "</span>";
    146    }
    147    $page_valide = true;
    148    break;
    149  case 'comments' :
    150    $title = $lang['title_comments'];
    151    $page_valide = true;
    152    break;
    153  case 'picture_modify' :
    154    $title = $lang['title_picmod'];
    155    $page_valide = true;
    156    break;
    157  case 'remote_site' :
    158  {
    159    $title = $lang['remote_sites'];
    160    $page_valide = true;
    161    break;
    162  }
    163  case 'cat_options' :
    164  {
    165    $title = $lang['title_cat_options'];
    166    $page_valide = true;
    167    break;
    168  }
    169  case 'element_set' :
    170  {
    171    $title = 'batch management';
    172    $page_valide = true;
    173    break;
    174  }
    175  case 'maintenance' :
    176  {
    177    $title = l10n('Maintenance');
    178    $page_valide = true;
    179    break;
    180  }
    181  case 'representative' :
    182  {
    183    $title = l10n('Representative');
    184    $page_valide = true;
    185    break;
    186  }
    187 //  case 'element_set_unit' :
    188 //  {
    189 //    $title = 'batch management';
    190 //    $page_valide = true;
    191 //    break;
    192 //  }
    193  case 'intro' :
    194  {
    195    $_GET['page'] = 'intro';
    196    $title = $lang['title_default'];
    197    $page_valide = true;
    198    break;
    199  }
    200  default :
    201  {
    202    break;
    203  }
    204 }
    205 if ( $title == '' ) $title = $lang['title_default'];
    206 
    207 // waiting
    208 $query = 'SELECT id FROM '.WAITING_TABLE;
    209 $query.= " WHERE validated='false'";
    210 $query.= ';';
    211 $result = pwg_query( $query );
    212 $nb_waiting = '';
    213 if ( mysql_num_rows( $result ) > 0 )
    214 {
    215   $nb_waiting =  ' [ '.mysql_num_rows( $result ).' ]';
    216 }
    217 // comments
    218 $query = 'SELECT id FROM '.COMMENTS_TABLE;
    219 $query.= " WHERE validated='false'";
    220 $query.= ';';
    221 $result = pwg_query( $query );
    222 $nb_comments = '';
    223 if ( mysql_num_rows( $result ) > 0 )
    224 {
    225   $nb_comments =  ' [ '.mysql_num_rows( $result ).' ]';
     52  $page['page'] = 'intro';
    22653}
    22754
     
    23057$opt_link = $link_start.'cat_options&amp;section=';
    23158//----------------------------------------------------- template initialization
     59$title = l10n('PhpWebGallery administration'); // for include/page_header.php
    23260include(PHPWG_ROOT_PATH.'include/page_header.php');
    233 $template->set_filenames( array('admin'=>'admin.tpl') );
    23461
    235 $template->assign_vars(array(
    236   'L_TITLE'=>$lang['admin_panel'],
    237   'L_LINKS'=>$lang['links'],
    238   'L_GALLERY_INDEX'=>$lang['home'],
    239   'L_GENERAL'=>$lang['general'],
    240   'L_DEFAULT'=>$lang['gallery_default'],
    241   'L_HISTORY'=>$lang['history'],
    242   'L_FAQ'=>$lang['instructions'],
    243   'L_CONFIGURATION'=>$lang['config'],
    244   'L_CONFIG_GENERAL'=>$lang['general'],
    245   'L_CONFIG_COMMENTS'=>$lang['comments'],
    246   'L_CONFIG_DISPLAY'=>$lang['conf_default'],
    247   'L_CONFIG_UPLOAD'=>$lang['upload'],
    248   'L_CONFIG_SESSION'=>$lang['conf_cookie'],
    249   'L_CONFIG_METADATA'=>$lang['metadata'],
    250   'L_SITES'=>$lang['remote_sites'],
    251   'L_CATEGORIES'=>$lang['categories'],
    252   'L_MANAGE'=>$lang['manage'],
    253   'L_IMAGES'=>$lang['pictures'],
    254   'L_WAITING'=>$lang['waiting'].$nb_waiting,
    255   'L_COMMENTS'=>$lang['comments'].$nb_comments,
    256   'L_THUMBNAILS'=>$lang['thumbnails'],
    257   'L_IDENTIFY'=>$lang['identification'],
    258   'L_USERS'=>$lang['users'],
    259   'L_GROUPS'=>$lang['groups'],
    260   'L_UPDATE'=>$lang['update'],
    261   'L_CAT_UPLOAD'=>$lang['upload'],
    262   'L_CAT_COMMENTS'=>$lang['comments'],
    263   'L_CAT_VISIBLE'=>$lang['lock'],
    264   'L_CAT_STATUS'=>$lang['cat_security'],
     62$template->set_filenames(array('admin' => 'admin.tpl'));
    26563
    266   'U_HISTORY'=>add_session_id($link_start.'stats' ),
    267   'U_FAQ'=>add_session_id($link_start.'help' ),
    268   'U_SITES'=>add_session_id($link_start.'remote_site'),
    269   'U_MAINTENANCE'=>add_session_id($link_start.'maintenance'),
    270   'U_CONFIG_GENERAL'=>add_session_id($conf_link.'general' ),
    271   'U_CONFIG_COMMENTS'=>add_session_id($conf_link.'comments' ),
    272   'U_CONFIG_DISPLAY'=>add_session_id($conf_link.'default' ),
    273   'U_CONFIG_UPLOAD'=>add_session_id($conf_link.'upload' ),
    274   'U_CONFIG_SESSION'=>add_session_id($conf_link.'session' ),
    275   'U_CONFIG_METADATA'=>add_session_id($conf_link.'metadata' ),
    276   'U_CATEGORIES'=>add_session_id($link_start.'cat_list' ),
    277   'U_CAT_UPLOAD'=>add_session_id($opt_link.'upload'),
    278   'U_CAT_COMMENTS'=>add_session_id($opt_link.'comments'),
    279   'U_CAT_VISIBLE'=>add_session_id($opt_link.'visible'),
    280   'U_CAT_STATUS'=>add_session_id($opt_link.'status'),
    281   'U_CAT_OPTIONS'=>add_session_id($link_start.'cat_options'),
    282   'U_CAT_UPDATE'=>add_session_id($link_start.'update'),
    283   'U_WAITING'=>add_session_id($link_start.'waiting' ),
    284   'U_COMMENTS'=>add_session_id($link_start.'comments' ),
    285   'U_CADDIE'=>add_session_id($link_start.'element_set&amp;cat=caddie'),
    286   'U_THUMBNAILS'=>add_session_id($link_start.'thumbnail' ),
    287   'U_USERS'=>add_session_id($link_start.'user_list' ),
    288   'U_GROUPS'=>add_session_id($link_start.'group_list' ),
    289   'U_RETURN'=>add_session_id(PHPWG_ROOT_PATH.'category.php')
    290   ));
     64$template->assign_vars(
     65  array(
     66    'U_HISTORY'=>add_session_id($link_start.'stats' ),
     67    'U_FAQ'=>add_session_id($link_start.'help' ),
     68    'U_SITES'=>add_session_id($link_start.'remote_site'),
     69    'U_MAINTENANCE'=>add_session_id($link_start.'maintenance'),
     70    'U_CONFIG_GENERAL'=>add_session_id($conf_link.'general' ),
     71    'U_CONFIG_COMMENTS'=>add_session_id($conf_link.'comments' ),
     72    'U_CONFIG_DISPLAY'=>add_session_id($conf_link.'default' ),
     73    'U_CONFIG_UPLOAD'=>add_session_id($conf_link.'upload' ),
     74    'U_CONFIG_SESSION'=>add_session_id($conf_link.'session' ),
     75    'U_CONFIG_METADATA'=>add_session_id($conf_link.'metadata' ),
     76    'U_CATEGORIES'=>add_session_id($link_start.'cat_list' ),
     77    'U_CAT_UPLOAD'=>add_session_id($opt_link.'upload'),
     78    'U_CAT_COMMENTS'=>add_session_id($opt_link.'comments'),
     79    'U_CAT_VISIBLE'=>add_session_id($opt_link.'visible'),
     80    'U_CAT_STATUS'=>add_session_id($opt_link.'status'),
     81    'U_CAT_OPTIONS'=>add_session_id($link_start.'cat_options'),
     82    'U_CAT_UPDATE'=>add_session_id($link_start.'update'),
     83    'U_WAITING'=>add_session_id($link_start.'waiting' ),
     84    'U_COMMENTS'=>add_session_id($link_start.'comments' ),
     85    'U_CADDIE'=>add_session_id($link_start.'element_set&amp;cat=caddie'),
     86    'U_THUMBNAILS'=>add_session_id($link_start.'thumbnail' ),
     87    'U_USERS'=>add_session_id($link_start.'user_list' ),
     88    'U_GROUPS'=>add_session_id($link_start.'group_list' ),
     89    'U_RETURN'=>add_session_id(PHPWG_ROOT_PATH.'category.php')
     90    )
     91  );
    29192
    29293if ($conf['allow_random_representative'])
     
    300101}
    301102 
    302 //--------------------------------------------------------------------- summary
    303 $link_start = PHPWG_ROOT_PATH.'admin.php?page=';
    304103//------------------------------------------------------------- content display
    305104$page['errors'] = array();
    306 $page['infos'] = array();
     105$page['infos']  = array();
    307106
    308 if ($page_valide)
    309 {
    310   switch ($_GET['page'])
    311   {
    312     case 'comments' :
    313     {
    314       include(PHPWG_ROOT_PATH.'comments.php');
    315       break;
    316     }
    317     case 'profile' :
    318     {
    319       include(PHPWG_ROOT_PATH.'profile.php');
    320       break;
    321     }
    322     default :
    323     {
    324       include(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php');
    325     }
    326   }
    327 }
    328 else
    329 {
    330   $template->assign_vars(
    331     array(
    332       'ADMIN_CONTENT'
    333       =>'<div style="text-align:center">'.$lang['default_message'].'</div>'
    334       )
    335     );
    336 }
     107include(PHPWG_ROOT_PATH.'admin/'.$page['page'].'.php');
     108
    337109// +-----------------------------------------------------------------------+
    338110// |                            errors & infos                             |
    339111// +-----------------------------------------------------------------------+
     112
    340113if (count($page['errors']) != 0)
    341114{
     
    346119  }
    347120}
     121
    348122if (count($page['infos']) != 0)
    349123{
     
    357131$template->parse('admin');
    358132include(PHPWG_ROOT_PATH.'include/page_tail.php');
     133
    359134// +-----------------------------------------------------------------------+
    360135// |                     order permission refreshment                      |
    361136// +-----------------------------------------------------------------------+
     137
    362138$query = '
    363139UPDATE '.USER_CACHE_TABLE.'
Note: See TracChangeset for help on using the changeset viewer.