Changeset 21


Ignore:
Timestamp:
Jul 1, 2003, 11:27:20 AM (17 years ago)
Author:
z0rglub
Message:

* empty log message *

Location:
trunk
Files:
13 added
5 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/admin.php

    r10 r21  
    2626//--------------------------------------- validating page and creation of title
    2727$page_valide = false;
     28$title = '';
    2829switch ( $_GET['page'] )
    2930{
    3031 case 'user_add':
    31    $titre = $lang['title_add'];           $page_valide = true; break;
     32   $title = $lang['title_add'];           $page_valide = true; break;
    3233 case 'user_list':
    33    $titre = $lang['title_liste_users'];   $page_valide = true; break;
     34   $title = $lang['title_liste_users'];   $page_valide = true; break;
    3435 case 'user_modify':
    35    $titre = $lang['title_modify'];        $page_valide = true; break;
     36   $title = $lang['title_modify'];        $page_valide = true; break;
     37 case 'user_perm':
     38   if ( !is_numeric( $_GET['user_id'] ) ) $_GET['user_id'] = -1;
     39   $query = 'SELECT status,username';
     40   $query.= ' FROM '.PREFIX_TABLE.'users';
     41   $query.= ' WHERE id = '.$_GET['user_id'];
     42   $query.= ';';
     43   $result = mysql_query( $query );
     44   if ( mysql_num_rows( $result ) > 0 )
     45   {
     46     $row = mysql_fetch_array( $result );
     47     $page['user_status']   = $row['status'];
     48     if ( $row['username'] == 'guest' ) $row['username'] = $lang['guest'];
     49     $page['user_username'] = $row['username'];
     50     $page_valide = true;
     51     $title = $lang['title_user_perm'].' "'.$page['user_username'].'"';
     52   }
     53   else
     54   {
     55     $page_valide = false;
     56   }
     57   break;
     58 case 'group_list' :
     59   $title = $lang['title_groups'];        $page_valide = true; break;
     60 case 'group_perm' :
     61   if ( !is_numeric( $_GET['group_id'] ) ) $_GET['group_id'] = -1;
     62   $query = 'SELECT name';
     63   $query.= ' FROM '.PREFIX_TABLE.'groups';
     64   $query.= ' WHERE id = '.$_GET['group_id'];
     65   $query.= ';';
     66   $result = mysql_query( $query );
     67   if ( mysql_num_rows( $result ) > 0 )
     68   {
     69     $row = mysql_fetch_array( $result );
     70     $title = $lang['title_group_perm'].' "'.$row['name'].'"';
     71     $page_valide = true;
     72   }
     73   else
     74   {
     75     $page_valide = false;
     76   }
     77   break;
    3678 case 'historique':
    37    $titre = $lang['title_history'];       $page_valide = true; break;
     79   $title = $lang['title_history'];       $page_valide = true; break;
    3880 case 'update':
    39    $titre = $lang['title_update'];        $page_valide = true; break;
     81   $title = $lang['title_update'];        $page_valide = true; break;
    4082 case 'configuration':
    41    $titre = $lang['title_configuration']; $page_valide = true; break;
     83   $title = $lang['title_configuration']; $page_valide = true; break;
    4284 case 'manuel':
    43    $titre = $lang['title_instructions'];  $page_valide = true; break;
    44  case 'perm':
    45    $titre = $lang['title_permissions'];   $page_valide = true; break;
    46  case 'cat':
    47    $titre = $lang['title_categories'];    $page_valide = true; break;
    48  case 'edit_cat':
    49    $titre = $lang['title_edit_cat'];      $page_valide = true; break;
     85   $title = $lang['title_instructions'];  $page_valide = true; break;
     86 case 'cat_perm':
     87   $title = $lang['title_cat_perm'];
     88   if ( isset( $_GET['cat_id'] ) )
     89   {
     90     check_cat_id( $_GET['cat_id'] );
     91     if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) )
     92     {
     93       $result = get_cat_info( $page['cat'] );
     94       $name = get_cat_display_name( $result['name'],' > ', '' );
     95       $title.= ' "'.$name.'"';
     96     }
     97   }
     98   $page_valide = true;
     99   break;
     100 case 'cat_list':
     101   $title = $lang['title_categories'];    $page_valide = true; break;
     102 case 'cat_modify':
     103   $title = $lang['title_edit_cat'];      $page_valide = true; break;
    50104 case 'infos_images':
    51    $titre = $lang['title_info_images'];   $page_valide = true; break;
     105   $title = $lang['title_info_images'];   $page_valide = true; break;
    52106 case 'waiting':
    53    $titre = $lang['title_waiting'];       $page_valide = true; break;
     107   $title = $lang['title_waiting'];       $page_valide = true; break;
    54108 case 'thumbnail':
    55    $titre = $lang['title_thumbnails'];
     109   $title = $lang['title_thumbnails'];
    56110   if ( isset( $_GET['dir'] ) )
    57111   {
    58      $titre.= ' '.$lang['title_thumbnails_2'].' <span style="color:#006699;">';
     112     $title.= ' '.$lang['title_thumbnails_2'].' <span style="color:#006699;">';
    59113     // $_GET['dir'] contient :
    60114     // ../galleries/vieux_lyon ou
     
    62116     // ../galleries/vieux_lyon/visite/truc ...
    63117     $dir = explode( "/", $_GET['dir'] );
    64      $titre.= $dir[2];
     118     $title.= $dir[2];
    65119     for ( $i = 3; $i < sizeof( $dir ) - 1; $i++ )
    66120     {
    67        $titre.= ' &gt; '.$dir[$i];
     121       $title.= ' &gt; '.$dir[$i];
    68122     }
    69      $titre.= "</span>";
     123     $title.= "</span>";
    70124   }
    71125   $page_valide = true;
    72126   break;
    73127 default:
    74    $titre = $lang['title_default']; break;
    75 }
    76 $vtp->setGlobalVar( $handle, 'title', $titre );
     128   $title = $lang['title_default']; break;
     129}
     130if ( $title == '' ) $title = $lang['title_default'];
     131$vtp->setGlobalVar( $handle, 'title', $title );
    77132//--------------------------------------------------------------------- summary
    78133$link_start = './admin.php?page=';
     
    88143$vtp->setVar( $handle, 'summary.indent', '' );
    89144$vtp->setVar( $handle, 'summary.link',
    90               add_session_id( $link_start.'liste_users' ) );
     145              add_session_id( $link_start.'user_list' ) );
    91146$vtp->setVar( $handle, 'summary.name', $lang['menu_users'] );
    92147$vtp->closeSession( $handle, 'summary' );
     
    105160$vtp->setVar( $handle, 'summary.name', $lang['menu_add_user'] );
    106161$vtp->closeSession( $handle, 'summary' );
     162// groups
     163$vtp->addSession( $handle, 'summary' );
     164$vtp->setVar( $handle, 'summary.indent', '' );
     165$vtp->setVar( $handle, 'summary.link',
     166              add_session_id( $link_start.'group_list' ) );
     167$vtp->setVar( $handle, 'summary.name', $lang['menu_groups'] );
     168$vtp->closeSession( $handle, 'summary' );
    107169// categories
    108170$vtp->addSession( $handle, 'summary' );
    109171$vtp->setVar( $handle, 'summary.indent', '' );
    110 $vtp->setVar( $handle, 'summary.link', add_session_id( $link_start.'cat' ) );
     172$vtp->setVar( $handle, 'summary.link',add_session_id( $link_start.'cat_list'));
    111173$vtp->setVar( $handle, 'summary.name', $lang['menu_categories'] );
    112174$vtp->closeSession( $handle, 'summary' );
  • trunk/admin/configuration.php

    r20 r21  
    1616 *                                                                         *
    1717 ***************************************************************************/
    18  
     18
    1919include_once( './include/isadmin.inc.php' );
    2020       
     
    4949if ( isset( $_POST['submit'] ) )
    5050{
    51   //purge de la table des session si demandé
     51  $int_pattern = '/^\d+$/';
     52  // empty session table if asked
    5253  if ( $_POST['empty_session_table'] == 1 )
    5354  {
     
    8081  }
    8182  // periods must be integer values, they represents number of days
    82   if ( !is_int( $_POST['short_period'] )
    83        or !is_int( $_POST['long_period'] ) )
     83  if ( !preg_match( $int_pattern, $_POST['short_period'] )
     84       or !preg_match( $int_pattern, $_POST['long_period'] ) )
    8485  {
    8586    array_push( $error, $lang['err_periods'] );
     
    9596  }
    9697  // session_id size must be an integer between 4 and 50
    97   if ( !is_int( $_POST['session_id_size'] )
     98  if ( !preg_match( $int_pattern, $_POST['session_id_size'] )
    9899       or $_POST['session_id_size'] < 4
    99100       or $_POST['session_id_size'] > 50 )
     
    102103  }
    103104  // session_time must be an integer between 5 and 60, in minutes
    104   if ( !is_int( $_POST['session_time'] )
     105  if ( !preg_match( $int_pattern, $_POST['session_time'] )
    105106       or $_POST['session_time'] < 5
    106107       or $_POST['session_time'] > 60 )
     
    109110  }
    110111  // max_user_listbox must be an integer between 0 and 255 included
    111   if ( !is_int( $_POST['max_user_listbox'] )
     112  if ( !preg_match( $int_pattern, $_POST['max_user_listbox'] )
    112113       or $_POST['max_user_listbox'] < 0
    113114       or $_POST['max_user_listbox'] > 255 )
     
    117118  // the number of comments per page must be an integer between 5 and 50
    118119  // included
    119   if ( !is_int( $_POST['nb_comment_page'] )
     120  if ( !preg_match( $int_pattern, $_POST['nb_comment_page'] )
    120121       or $_POST['nb_comment_page'] < 5
    121122       or $_POST['nb_comment_page'] > 50 )
     
    124125  }
    125126  // the maximum upload filesize must be an integer between 10 and 1000
    126   if ( !is_int( $_POST['upload_maxfilesize'] )
     127  if ( !preg_match( $int_pattern, $_POST['upload_maxfilesize'] )
    127128       or $_POST['upload_maxfilesize'] < 10
    128129       or $_POST['upload_maxfilesize'] > 1000 )
     
    132133  // the maximum width of uploaded pictures must be an integer superior to
    133134  // 10
    134   if ( !is_int( $_POST['upload_maxwidth'] )
     135  if ( !preg_match( $int_pattern, $_POST['upload_maxwidth'] )
    135136       or $_POST['upload_maxwidth'] < 10 )
    136137  {
     
    139140  // the maximum height  of uploaded pictures must be an integer superior to
    140141  // 10
    141   if ( !is_int( $_POST['upload_maxheight'] )
     142  if ( !preg_match( $int_pattern, $_POST['upload_maxheight'] )
    142143       or $_POST['upload_maxheight'] < 10 )
    143144  {
     
    146147  // the maximum width of uploaded thumbnails must be an integer superior to
    147148  // 10
    148   if ( !is_int( $_POST['upload_maxwidth_thumbnail'] )
     149  if ( !preg_match( $int_pattern, $_POST['upload_maxwidth_thumbnail'] )
    149150       or $_POST['upload_maxwidth_thumbnail'] < 10 )
    150151  {
     
    153154  // the maximum width of uploaded thumbnails must be an integer superior to
    154155  // 10
    155   if ( !is_int( $_POST['upload_maxheight_thumbnail'] )
     156  if ( !preg_match( $int_pattern, $_POST['upload_maxheight_thumbnail'] )
    156157       or $_POST['upload_maxheight_thumbnail'] < 10 )
    157158  {
    158159    array_push( $error, $lang['conf_err_upload_maxheight_thumbnail'] );
    159160  }
    160   $test = '';
    161   if ( is_int( $test ) ) echo 'salut'; exit();
    162   if ( $_POST['maxwidth'] != '' )
    163   {
    164     if ( !ereg( "^[0-9]{2,}$", $_POST['maxwidth'] )
    165          or $_POST['maxwidth'] < 50 )
    166     {
    167       $error[$i++] = $lang['err_maxwidth'];
    168     }
    169   }
    170   if ( $_POST['maxheight'] != '' )
    171   {
    172     if ( !ereg( "^[0-9]{2,}$", $_POST['maxheight'] )
    173          or $_POST['maxheight'] < 50 )
    174     {
    175       $error[$i++] = $lang['err_maxheight'];
    176     }
    177   }
    178   // on met à jour les paramètres de l'application
    179   // dans le cas où il n'y aucune erreurs
    180   if ( sizeof( $error ) == 0 )
    181   {
    182     mysql_query( 'delete from '.PREFIX_TABLE.'config;' );
    183     $query = 'insert into '.PREFIX_TABLE.'config';
     161
     162  if ( $_POST['maxwidth'] != ''
     163       and ( !preg_match( $int_pattern, $_POST['maxwidth'] )
     164             or $_POST['maxwidth'] < 50 ) )
     165  {
     166    array_push( $error, $lang['err_maxwidth'] );
     167  }
     168  if ( $_POST['maxheight']
     169       and ( !preg_match( $int_pattern, $_POST['maxheight'] )
     170             or $_POST['maxheight'] < 50 ) )
     171  {
     172    array_push( $error, $lang['err_maxheight'] );
     173  }
     174  // updating configuraiton if no error found
     175  if ( count( $error ) == 0 )
     176  {
     177    mysql_query( 'DELETE FROM '.PREFIX_TABLE.'config;' );
     178    $query = 'INSERT INTO '.PREFIX_TABLE.'config';
    184179    $query.= ' (';
    185180    foreach ( $conf_infos as $i => $conf_info ) {
     
    188183    }
    189184    $query.= ')';
    190     $query.= ' values';
     185    $query.= ' VALUES';
    191186    $query.= ' (';
    192187    foreach ( $conf_infos as $i => $conf_info ) {
     
    261256}
    262257//----------------------------------------------------- template initialization
    263 $sub = $vtp->Open( '../template/'.$user['template'].
    264                    '/admin/configuration.vtp' );
    265 // language
    266 $vtp->setGlobalVar( $sub, 'conf_confirmation',  $lang['conf_confirmation'] );
    267 $vtp->setGlobalVar( $sub, 'remote_site',        $lang['remote_site'] );
    268 $vtp->setGlobalVar( $sub, 'delete',             $lang['delete'] );
    269 $vtp->setGlobalVar( $sub, 'conf_remote_site_delete_info',
    270                     $lang['conf_remote_site_delete_info'] );
    271 $vtp->setGlobalVar( $sub, 'submit',             $lang['submit'] );
     258$sub = $vtp->Open(
     259  '../template/'.$user['template'].'/admin/configuration.vtp' );
     260
     261$tpl = array( 'conf_confirmation','remote_site','delete',
     262              'conf_remote_site_delete_info','submit' );
     263templatize_array( $tpl, 'lang', $sub );
    272264//-------------------------------------------------------------- errors display
    273265if ( sizeof( $error ) != 0 )
     
    346338$vtp->setVar( $sub, 'radio.option', $lang['conf_general_access_1'] );
    347339$checked = '';
    348 echo $access.'<br />';
    349340if ( $access == 'free' )
    350341{
  • trunk/admin/include/functions.php

    r19 r21  
    102102    delete_image( $row['id'] );
    103103  }
    104                
    105   // destruction of the restrictions linked to the category
    106   $query = 'DELETE FROM '.PREFIX_TABLE.'restrictions';
     104
     105  // destruction of the access linked to the category
     106  $query = 'DELETE FROM '.PREFIX_TABLE.'user_access';
    107107  $query.= ' WHERE cat_id = '.$id;
    108108  $query.= ';';
    109109  mysql_query( $query );
    110                
     110  $query = 'DELETE FROM '.PREFIX_TABLE.'group_access';
     111  $query.= ' WHERE cat_id = '.$id;
     112  $query.= ';';
     113  mysql_query( $query );
     114
    111115  // destruction of the sub-categories
    112116  $query = 'SELECT id';
     
    119123    delete_category( $row['id'] );
    120124  }
    121                
     125
    122126  // destruction of the category
    123127  $query = 'DELETE FROM '.PREFIX_TABLE.'categories';
     
    157161// The delete_user function delete a user identified by the $user_id
    158162// It also deletes :
    159 //     - all the restrictions linked to this user
     163//     - all the access linked to this user
     164//     - all the links to any group
    160165//     - all the favorites linked to this user
     166//     - all sessions linked to this user
    161167function delete_user( $user_id )
    162168{
    163   // destruction of the restrictions linked to the user
    164   $query = 'DELETE FROM '.PREFIX_TABLE.'restrictions';
    165   $query.= ' WHERE user_id = '.$user_id;
    166   $query.= ';';
    167   mysql_query( $query );
    168                
     169  // destruction of the access linked to the user
     170  $query = 'DELETE FROM '.PREFIX_TABLE.'user_access';
     171  $query.= ' WHERE user_id = '.$user_id;
     172  $query.= ';';
     173  mysql_query( $query );
     174
     175  // destruction of the group links for this user
     176  $query = 'DELETE FROM '.PREFIX_TABLE.'user_group';
     177  $query.= ' WHERE user_id = '.$user_id;
     178  $query.= ';';
     179  mysql_query( $query );
     180
    169181  // destruction of the favorites associated with the user
    170182  $query = 'DELETE FROM '.PREFIX_TABLE.'favorites';
     183  $query.= ' WHERE user_id = '.$user_id;
     184  $query.= ';';
     185  mysql_query( $query );
     186
     187  // destruction of the sessions linked with the user
     188  $query = 'DELETE FROM '.PREFIX_TABLE.'sessions';
    171189  $query.= ' WHERE user_id = '.$user_id;
    172190  $query.= ';';
     
    179197  mysql_query( $query );
    180198}
    181        
     199
     200// delete_group deletes a group identified by its $group_id.
     201// It also deletes :
     202//     - all the access linked to this group
     203//     - all the links between this group and any user
     204function delete_group( $group_id )
     205{
     206  // destruction of the access linked to the group
     207  $query = 'DELETE FROM '.PREFIX_TABLE.'group_access';
     208  $query.= ' WHERE group_id = '.$group_id;
     209  $query.= ';';
     210  mysql_query( $query );
     211
     212  // destruction of the group links for this group
     213  $query = 'DELETE FROM '.PREFIX_TABLE.'user_group';
     214  $query.= ' WHERE group_id = '.$group_id;
     215  $query.= ';';
     216  mysql_query( $query );
     217
     218  // destruction of the group
     219  $query = 'DELETE FROM '.PREFIX_TABLE.'groups';
     220  $query.= ' WHERE id = '.$group_id;
     221  $query.= ';';
     222  mysql_query( $query );
     223}
     224
    182225// The check_favorites function deletes all the favorites of a user if he is
    183226// not allowed to see them (the category or an upper category is restricted
  • trunk/admin/include/isadmin.inc.php

    r2 r21  
    1515 *                                                                         *
    1616 ***************************************************************************/
    17 define( PREFIXE_INCLUDE, '.' );
     17define( PREFIX_INCLUDE, '.' );
    1818
    1919include_once( '../include/config.inc.php' );
    2020include_once( '../include/user.inc.php' );
    2121include( './include/functions.php' );
    22 
    23 $conf['lien_puce'] = $conf['repertoire_image'].'puce.gif';
    2422
    2523$isadmin = true;
  • trunk/admin/user_list.php

    r10 r21  
    1818//----------------------------------------------------- template initialization
    1919$sub = $vtp->Open( '../template/'.$user['template'].'/admin/user_list.vtp' );
    20 // language
    21 $vtp->setGlobalVar( $sub, 'listuser_confirm',  $lang['listuser_confirm'] );
    22 $vtp->setGlobalVar( $sub, 'listuser_modify_hint',
    23                     $lang['listuser_modify_hint'] );
    24 $vtp->setGlobalVar( $sub, 'listuser_modify', $lang['listuser_modify'] );
    25 $vtp->setGlobalVar( $sub, 'listuser_permission',
    26                     $lang['listuser_permission'] );
    27 $vtp->setGlobalVar( $sub, 'listuser_permission_hint',
    28                     $lang['listuser_permission_hint'] );
    29 $vtp->setGlobalVar( $sub, 'listuser_delete_hint',
    30                     $lang['listuser_delete_hint'] );
    31 $vtp->setGlobalVar( $sub, 'listuser_delete',   $lang['listuser_delete'] );
    32 $vtp->setGlobalVar( $sub, 'yes',               $lang['yes'] );
    33 $vtp->setGlobalVar( $sub, 'no',                $lang['no'] );
    34 $vtp->setGlobalVar( $sub, 'listuser_button_all',
    35                     $lang['listuser_button_all'] );
    36 $vtp->setGlobalVar( $sub, 'listuser_button_invert',
    37                     $lang['listuser_button_invert'] );
    38 $vtp->setGlobalVar( $sub, 'listuser_button_create_address',
    39                     $lang['listuser_button_create_address'] );
     20$tpl = array( 'listuser_confirm','listuser_modify_hint','listuser_modify',
     21              'listuser_permission','listuser_permission_hint',
     22              'listuser_delete_hint','listuser_delete','yes','no',
     23              'listuser_button_all','listuser_button_invert',
     24              'listuser_button_create_address' );
     25templatize_array( $tpl, 'lang', $sub );
    4026//--------------------------------------------------------------- delete a user
    4127if ( isset ( $_GET['delete'] ) and is_numeric( $_GET['delete'] ) )
    4228{
    43   $query = 'select username';
    44   $query.= ' from '.PREFIX_TABLE.'users';
    45   $query.= ' where id = '.$_GET['delete'];
     29  $query = 'SELECT username';
     30  $query.= ' FROM '.PREFIX_TABLE.'users';
     31  $query.= ' WHERE id = '.$_GET['delete'];
    4632  $query.= ';';
    4733  $row = mysql_fetch_array( mysql_query( $query ) );
     
    6551         and $row['username'] != $conf['webmaster'] )
    6652    {
    67       $query = 'select count(*) as nb_result';
    68       $query.= ' from '.PREFIX_TABLE.'users';
    69       $query.= ' where id = '.$_GET['delete'];
     53      $query = 'SELECT COUNT(*) AS nb_result';
     54      $query.= ' FROM '.PREFIX_TABLE.'users';
     55      $query.= ' WHERE id = '.$_GET['delete'];
    7056      $query.= ';';
    7157      $row2 = mysql_fetch_array( mysql_query( $query ) );
     
    10389  $vtp->setVar( $sub, 'users.form_action', $action );
    10490
    105   $query = 'select id,username,status,mail_address';
    106   $query.= ' from '.PREFIX_TABLE.'users';
    107   $query.= ' order by status asc, username asc';
     91  $query = 'SELECT id,username,status,mail_address';
     92  $query.= ' FROM '.PREFIX_TABLE.'users';
     93  $query.= ' ORDER BY status ASC, username ASC';
    10894  $query.= ';';
    10995  $result = mysql_query( $query );
     
    123109      switch ( $row['status'] )
    124110      {
    125       case 'admin' :
    126       {
    127         $title.= $lang['adduser_status_admin'];
    128         break;
    129       }
    130       case 'guest' :
    131       {
    132         $title.= $lang['adduser_status_guest'];
    133         break;
    134       }
     111      case 'admin' : $title.= $lang['adduser_status_admin']; break;
     112      case 'guest' : $title.= $lang['adduser_status_guest']; break;
    135113      }
    136114      $vtp->setVar( $sub, 'category.title', $title );
     
    153131    {
    154132      $vtp->setVar( $sub, 'user.color', 'green' );
    155     }
    156     if ( $row['username'] == 'guest' )
    157     {
    158133      $vtp->setVar( $sub, 'user.login', $lang['guest'] );
    159134    }
     
    180155    }
    181156    // manage permission or not ?
    182     if ( $row['username'] == $conf['webmaster'] )
     157    if ( $row['username'] == $conf['webmaster']
     158         and $user['username'] != $conf['webmaster'] )
    183159    {
    184160      $vtp->addSession( $sub, 'not_permission' );
     
    188164    {
    189165      $vtp->addSession( $sub, 'permission' );
    190       $url = './admin.php?page=perm&amp;user_id='.$row['id'];
     166      $url = './admin.php?page=user_perm&amp;user_id='.$row['id'];
    191167      $vtp->setVar( $sub, 'permission.url', add_session_id( $url ) );
    192168      $vtp->setVar( $sub, 'permission.login', $row['username'] );
     
    216192    $mail_address = array();
    217193    $i = 0;
    218     $query = 'select';
    219     $query.= ' id,mail_address';
    220     $query.= ' from '.PREFIX_TABLE.'users';
     194    $query = 'SELECT id,mail_address';
     195    $query.= ' FROM '.PREFIX_TABLE.'users';
    221196    $query.= ';';
    222197    $result = mysql_query( $query );
  • trunk/admin/user_modify.php

    r10 r21  
    2121$tpl = array( 'adduser_info_message', 'adduser_info_back', 'adduser_fill_form',
    2222              'login', 'new', 'password', 'mail_address', 'adduser_status',
    23               'submit', 'adduser_info_password_updated' );
     23              'submit', 'adduser_info_password_updated','menu_groups',
     24              'dissociate','adduser_associate' );
    2425templatize_array( $tpl, 'lang', $sub );
    2526//--------------------------------------------------------- form criteria check
     
    3536$query.= ';';
    3637$row = mysql_fetch_array( mysql_query( $query ) );
    37 
     38$page['username'] = $row['username'];
     39$page['status'] = $row['status'];
     40$page['mail_address'] = $row['mail_address'];
    3841// user is not modifiable if :
    3942//   1. the selected user is the user "guest"
     
    6770                          $_POST['password'] ) );
    6871}
     72// association with groups management
     73if ( isset( $_POST['submit'] ) )
     74{
     75  // deletion of checked groups
     76  $query = 'SELECT id,name';
     77  $query.= ' FROM '.PREFIX_TABLE.'groups';
     78  $query.= ' ORDER BY id ASC';
     79  $query.= ';';
     80  $result = mysql_query( $query );
     81  while ( $row = mysql_fetch_array( $result ) )
     82  {
     83    $dissociate = 'dissociate-'.$row['id'];
     84    if ( $_POST[$dissociate] == 1 )
     85    {
     86      $query = 'DELETE FROM '.PREFIX_TABLE.'user_group';
     87      $query.= ' WHERE user_id = '.$_GET['user_id'];
     88      $query.= ' AND group_id ='.$row['id'];
     89      $query.= ';';
     90      mysql_query( $query );
     91    }
     92  }
     93  // create a new association between the user and a group
     94  $query = 'INSERT INTO '.PREFIX_TABLE.'user_group';
     95  $query.= ' (user_id,group_id) VALUES';
     96  $query.= ' ('.$_GET['user_id'].','.$_POST['associate'].')';
     97  $query.= ';';
     98  mysql_query( $query );
     99}
    69100//-------------------------------------------------------------- errors display
    70101if ( sizeof( $error ) != 0 )
     
    83114{
    84115  $vtp->addSession( $sub, 'confirmation' );
    85   $vtp->setVar( $sub, 'confirmation.username', $row['username'] );
     116  $vtp->setVar( $sub, 'confirmation.username', $page['username'] );
    86117  $url = add_session_id( './admin.php?page=user_list' );
    87118  $vtp->setVar( $sub, 'confirmation.url', $url );
     
    92123    $vtp->closeSession( $sub, 'password_updated' );
    93124  }
    94   $display_form = false;
    95125}
    96126//------------------------------------------------------------------------ form
     
    100130  $action = './admin.php?page=user_modify&amp;user_id='.$_GET['user_id'];
    101131  $vtp->setVar( $sub, 'form.form_action', add_session_id( $action ) );
    102   $vtp->setVar( $sub, 'form.user:username',     $row['username'] );
    103   $vtp->setVar( $sub, 'form.user:password',     $_POST['password'] );
    104   $vtp->setVar( $sub, 'form.user:mail_address', $_POST['mail_address'] );
    105 
    106   if ( !isset( $_POST['status'] ) )
    107   {
    108     $_POST['status'] = 'guest';
     132  $vtp->setVar( $sub, 'form.user:username',     $page['username'] );
     133  if ( isset( $_POST['mail_address'] ) )
     134  {
     135    $page['mail_address'] = $_POST['mail_address'];
     136  }
     137  $vtp->setVar( $sub, 'form.user:mail_address', $page['mail_address'] );
     138  if ( isset( $_POST['status'] ) )
     139  {
     140    $page['status'] = $_POST['status'];
    109141  }
    110142  $option = get_enums( PREFIX_TABLE.'users', 'status' );
     
    115147    $vtp->setVar( $sub, 'status_option.option',
    116148                  $lang['adduser_status_'.$option[$i]] );
    117     if( $option[$i] == $_POST['status'] )
     149    if( $option[$i] == $page['status'] )
    118150    {
    119151      $vtp->setVar( $sub, 'status_option.selected', ' selected="selected"' );
     
    121153    $vtp->closeSession( $sub, 'status_option' );
    122154  }
     155  // groups linked with this user
     156  $query = 'SELECT id,name';
     157  $query.= ' FROM '.PREFIX_TABLE.'user_group, '.PREFIX_TABLE.'groups';
     158  $query.= ' WHERE group_id = id';
     159  $query.= ' AND user_id = '.$_GET['user_id'];
     160  $query.= ';';
     161  $result = mysql_query( $query );
     162  $user_groups = array();
     163  if ( mysql_num_rows( $result ) > 0 )
     164  {
     165    $vtp->addSession( $sub, 'groups' );
     166    while ( $row = mysql_fetch_array( $result ) )
     167    {
     168      $vtp->addSession( $sub, 'group' );
     169      $vtp->setVar( $sub, 'group.name', $row['name'] );
     170      $vtp->setVar( $sub, 'group.dissociate_id', $row['id'] );
     171      $vtp->closeSession( $sub, 'group' );
     172      array_push( $user_groups, $row['id'] );
     173    }
     174    $vtp->closeSession( $sub, 'groups' );
     175  }
     176  // empty group not to take into account
     177  $vtp->addSession( $sub, 'associate_group' );
     178  $vtp->setVar( $sub, 'associate_group.value', 'undef' );
     179  $vtp->setVar( $sub, 'associate_group.option', '' );
     180  $vtp->closeSession( $sub, 'associate_group' );
     181  // groups not linked yet to the user
     182  $query = 'SELECT id,name';
     183  $query.= ' FROM '.PREFIX_TABLE.'groups';
     184  $query.= ' ORDER BY id ASC';
     185  $query.= ';';
     186  $result = mysql_query( $query );
     187  while ( $row = mysql_fetch_array( $result ) )
     188  {
     189    if ( !in_array( $row['id'], $user_groups ) )
     190    {
     191      $vtp->addSession( $sub, 'associate_group' );
     192      $vtp->setVar( $sub, 'associate_group.value', $row['id'] );
     193      $vtp->setVar( $sub, 'associate_group.option', $row['name'] );
     194      $vtp->closeSession( $sub, 'associate_group' );
     195    }
     196  }
     197
    123198  $url = add_session_id( './admin.php?page=user_list' );
    124199  $vtp->setVar( $sub, 'form.url_back', $url );
  • trunk/include/config.inc.php

    r20 r21  
    2121$lang = array();
    2222
    23 include_once( PREFIXE_INCLUDE.'./include/functions.inc.php' );
    24 include_once( PREFIXE_INCLUDE.'./include/vtemplate.class.php' );
     23include_once( PREFIX_INCLUDE.'./include/functions.inc.php' );
     24include_once( PREFIX_INCLUDE.'./include/vtemplate.class.php' );
    2525
    2626// How to change the order of display for images in a category ?
  • trunk/include/functions.inc.php

    r17 r21  
    1919include( 'functions_category.inc.php' );
    2020include( 'functions_xml.inc.php' );
     21include( 'functions_group.inc.php' );
    2122
    2223//----------------------------------------------------------- generic functions
     
    320321function database_connection()
    321322{
    322   // $cfgHote,$cfgUser,$cfgPassword,$cfgBase;
    323 
    324   $xml_content = getXmlCode( PREFIXE_INCLUDE.'./include/database_config.xml' );
    325   $mysql_conf = getChild( $xml_content, 'mysql' );
    326 
    327   $cfgHote     = getAttribute( $mysql_conf, 'host' );
    328   $cfgUser     = getAttribute( $mysql_conf, 'user' );
    329   $cfgPassword = getAttribute( $mysql_conf, 'password' );
    330   $cfgBase     = getAttribute( $mysql_conf, 'base' );
     323//   $xml_content = getXmlCode( PREFIXE_INCLUDE.'./include/database_config.xml' );
     324//   $mysql_conf = getChild( $xml_content, 'mysql' );
     325
     326//   $cfgHote     = getAttribute( $mysql_conf, 'host' );
     327//   $cfgUser     = getAttribute( $mysql_conf, 'user' );
     328//   $cfgPassword = getAttribute( $mysql_conf, 'password' );
     329//   $cfgBase     = getAttribute( $mysql_conf, 'base' );
     330//   define( PREFIX_TABLE, getAttribute( $mysql_conf, 'tablePrefix' ) );
     331
     332  include( PREFIX_INCLUDE.'./include/mysql.inc.php' );
     333  define( PREFIX_TABLE, $prefix_table );
    331334
    332335  @mysql_connect( $cfgHote, $cfgUser, $cfgPassword )
     
    334337  @mysql_select_db( $cfgBase )
    335338    or die ( "Could not connect to database" );
    336 
    337   define( PREFIX_TABLE, getAttribute( $mysql_conf, 'tablePrefix' ) );
    338339}
    339340
  • trunk/include/functions_category.inc.php

    r19 r21  
    1515 *                                                                         *
    1616 ***************************************************************************/
     17
    1718function get_subcats_id( $cat_id )
    1819{
    19   $restricted_cat = array();
    20   $i = 0;
     20  $restricted_cats = array();
    2121               
    22   $query = 'select id';
    23   $query.= ' from '.PREFIX_TABLE.'categories';
    24   $query.= ' where id_uppercat = '.$cat_id;
     22  $query = 'SELECT id';
     23  $query.= ' FROM '.PREFIX_TABLE.'categories';
     24  $query.= ' WHERE id_uppercat = '.$cat_id;
    2525  $query.= ';';
    2626  $result = mysql_query( $query );
    2727  while ( $row = mysql_fetch_array( $result ) )
    2828  {
    29     $restricted_cat[$i++] = $row['id'];
    30     $sub_restricted_cat = get_subcats_id( $row['id'] );
    31     for ( $j = 0; $j < sizeof( $sub_restricted_cat ); $j++ )
    32     {
    33       $restricted_cat[$i++] = $sub_restricted_cat[$j];
    34     }
    35   }
    36                
    37   return $restricted_cat;
     29    array_push( $restricted_cats, $row['id'] );
     30    $sub_restricted_cats = get_subcats_id( $row['id'] );
     31    foreach ( $sub_restricted_cats as $sub_restricted_cat ) {
     32      array_push( $restricted_cats, $sub_restricted_cat );
     33    }
     34  }
     35  return $restricted_cats;
    3836}
    3937
  • trunk/include/functions_user.inc.php

    r16 r21  
    145145    mysql_query( $query );
    146146    // 3. retrieving the id of the newly created user
    147     $query = 'select id';
    148     $query.= ' from '.PREFIX_TABLE.'users';
    149     $query.= " where username = '".$login."';";
     147    $query = 'SELECT id';
     148    $query.= ' FROM '.PREFIX_TABLE.'users';
     149    $query.= " WHERE username = '".$login."';";
    150150    $row = mysql_fetch_array( mysql_query( $query ) );
    151151    $user_id = $row['id'];
    152     // 4. adding restrictions to the new user, the same as the user "guest"
    153     $query = 'select cat_id';
    154     $query.= ' from '.PREFIX_TABLE.'restrictions as r';
     152    // 4. adding access to the new user, the same as the user "guest"
     153    $query = 'SELECT cat_id';
     154    $query.= ' FROM '.PREFIX_TABLE.'user_access as ua';
    155155    $query.=      ','.PREFIX_TABLE.'users as u ';
    156     $query.= ' where u.id = r.user_id';
     156    $query.= ' where u.id = ua.user_id';
    157157    $query.= " and u.username = 'guest';";
    158158    $result = mysql_query( $query );
    159159    while( $row = mysql_fetch_array( $result ) )
    160160    {
    161       $query = 'insert into '.PREFIX_TABLE.'restrictions';
    162       $query.= ' (user_id,cat_id) values';
     161      $query = 'INSERT INTO '.PREFIX_TABLE.'user_access';
     162      $query.= ' (user_id,cat_id) VALUES';
    163163      $query.= ' ('.$user_id.','.$row['cat_id'].');';
    164164      mysql_query ( $query );
     
    182182  if ( sizeof( $error ) == 0 )
    183183  {
    184     $query = 'update '.PREFIX_TABLE.'users';
    185     $query.= " set status = '".$status."'";
     184    $query = 'UPDATE '.PREFIX_TABLE.'users';
     185    $query.= " SET status = '".$status."'";
    186186    if ( $use_new_password )
    187187    {
     
    197197      $query.= 'NULL';
    198198    }
    199     $query.= ' where id = '.$user_id;
     199    $query.= ' WHERE id = '.$user_id;
    200200    $query.= ';';
    201     echo $query;
    202201    mysql_query( $query );
    203202  }
     
    210209
    211210  if ( $user['is_the_guest']
    212        and ( $conf['acces'] == 'restreint' or $page['cat'] == 'fav' ) )
     211       and ( $conf['access'] == 'restricted' or $page['cat'] == 'fav' ) )
    213212  {
    214213    echo '<div style="text-align:center;">'.$lang['only_members'].'<br />';
     
    222221// If the $check_invisible parameter is set to true, invisible categories
    223222// are added to the restricted one in the array.
    224 function get_restrictions( $user_id, $user_status, $check_invisible )
    225 {
    226   // 1. getting the ids of the restricted categories
     223function get_restrictions( $user_id, $user_status,
     224                           $check_invisible, $use_groups = true )
     225{
     226  // 1. retrieving ids of private categories
     227  $query = 'SELECT id';
     228  $query.= ' FROM '.PREFIX_TABLE.'categories';
     229  $query.= " WHERE status = 'private'";
     230  $query.= ';';
     231  $result = mysql_query( $query );
     232  $privates = array();
     233  while ( $row = mysql_fetch_array( $result ) )
     234  {
     235    array_push( $privates, $row['id'] );
     236  }
     237  // 2. retrieving all authorized categories for the user
     238  $authorized = array();
     239  // 2.1. retrieving authorized categories thanks to personnal user
     240  //      authorization
    227241  $query = 'SELECT cat_id';
    228   $query.= ' FROM '.PREFIX_TABLE.'restrictions';
     242  $query.= ' FROM '.PREFIX_TABLE.'user_access';
    229243  $query.= ' WHERE user_id = '.$user_id;
    230244  $query.= ';';
    231245  $result = mysql_query( $query );
    232 
    233   $restriction = array();
    234246  while ( $row = mysql_fetch_array( $result ) )
    235247  {
    236     array_push( $restriction, $row['cat_id'] );
    237   }
     248    array_push( $authorized, $row['cat_id'] );
     249  }
     250  // 2.2. retrieving authorized categories thanks to group authorization to
     251  //      which the user is a member
     252  if ( $use_groups )
     253  {
     254    $query = 'SELECT ga.cat_id';
     255    $query.= ' FROM '.PREFIX_TABLE.'user_group as ug';
     256    $query.= ', '.PREFIX_TABLE.'group_access as ga';
     257    $query.= ' WHERE ug.group_id = ga.group_id';
     258    $query.= ' AND ug.user_id = '.$user_id;
     259    $query.= ';';
     260    $result = mysql_query( $query );
     261    while ( $row = mysql_fetch_array( $result ) )
     262    {
     263      array_push( $authorized, $row['cat_id'] );
     264    }
     265    $authorized = array_unique( $authorized );
     266  }
     267
     268  $forbidden = array();
     269  foreach ( $privates as $private ) {
     270    if ( !in_array( $private, $authorized ) )
     271    {
     272      array_push( $forbidden, $private );
     273    }
     274  }
     275
    238276  if ( $check_invisible )
    239277  {
    240     // 2. adding to the restricted categories, the invisible ones
     278    // 3. adding to the restricted categories, the invisible ones
    241279    if ( $user_status != 'admin' )
    242280    {
    243281      $query = 'SELECT id';
    244282      $query.= ' FROM '.PREFIX_TABLE.'categories';
    245       $query.= " WHERE status = 'invisible';";
     283      $query.= " WHERE visible = 'false';";
    246284      $result = mysql_query( $query );
    247285      while ( $row = mysql_fetch_array( $result ) )
    248286      {
    249         array_push( $restriction, $row['id'] );
    250       }
    251     }
    252   }
    253   return $restriction;
     287        array_push( $forbidden, $row['id'] );
     288      }
     289    }
     290  }
     291  return array_unique( $forbidden );
    254292}
    255293
     
    259297function get_all_restrictions( $user_id, $user_status )
    260298{
    261   $restricted_cat = get_restrictions( $user_id, $user_status, true );
    262   $i = sizeof( $restricted_cat );
    263   for ( $k = 0; $k < sizeof( $restricted_cat ); $k++ )
    264   {
    265     $sub_restricted_cat = get_subcats_id( $restricted_cat[$k] );
    266     for ( $j = 0; $j < sizeof( $sub_restricted_cat ); $j++ )
    267     {
    268       $restricted_cat[$i++] = $sub_restricted_cat[$j];
    269     }
    270   }
    271   return $restricted_cat;
     299  $restricted_cats = get_restrictions( $user_id, $user_status, true );
     300  foreach ( $restricted_cats as $restricted_cat ) {
     301    $sub_restricted_cats = get_subcats_id( $restricted_cat );
     302    foreach ( $sub_restricted_cats as $sub_restricted_cat ) {
     303      array_push( $restricted_cats, $sub_restricted_cat );
     304    }
     305  }
     306  return $restricted_cats;
    272307}
    273308
     
    278313function is_user_allowed( $category_id, $restrictions )
    279314{
    280   global $user;
    281                
    282315  $lowest_category_id = $category_id;
    283316               
     
    285318  while ( !$is_root and !in_array( $category_id, $restrictions ) )
    286319  {
    287     $query = 'select id_uppercat';
    288     $query.= ' from '.PREFIX_TABLE.'categories';
    289     $query.= ' where id = '.$category_id;
     320    $query = 'SELECT id_uppercat';
     321    $query.= ' FROM '.PREFIX_TABLE.'categories';
     322    $query.= ' WHERE id = '.$category_id;
    290323    $query.= ';';
    291324    $row = mysql_fetch_array( mysql_query( $query ) );
    292     if ( $row['id_uppercat'] == "" )
     325    if ( $row['id_uppercat'] == '' )
    293326    {
    294327      $is_root = true;
  • trunk/include/functions_xml.inc.php

    r13 r21  
    1919define( ATT_REG, '\w+' );
    2020define( VAL_REG, '[^"]*' );
    21 
    2221//------------------------------------------------------------------- functions
    2322// getContent returns the content of a tag
     
    3332  $content = preg_replace( '/^<[^>]+>/', '', $element );
    3433  // deleting end of the tag
    35   $content = preg_replace( '/<\/\w+>$/', '', $content );
     34  $content = preg_replace( '/<\/[^>]+>$/', '', $content );
    3635  // replacing multiple instance of space character
    3736  $content = preg_replace( '/\s+/', ' ', $content );
     
    4039}
    4140
    42 // The function get Attribute returns the value corresponding to the attribute
    43 // $attribute for the tag $element.
     41// The function get Attribute returns the value corresponding to the
     42// attribute $attribute for the tag $element.
    4443function getAttribute( $element, $attribute )
    4544{
  • trunk/include/init.inc.php

    r9 r21  
    1515 *                                                                         *
    1616 ***************************************************************************/
    17 define( PREFIXE_INCLUDE, '' );
    18        
     17define( PREFIX_INCLUDE, '' );
     18
    1919include_once( './include/config.inc.php' );
    2020include_once( './include/user.inc.php' );
  • trunk/include/user.inc.php

    r13 r21  
    2525                'long_period', 'template' );
    2626
    27 $query_user  = 'select';
     27$query_user  = 'SELECT';
    2828for ( $i = 0; $i < sizeof( $infos ); $i++ )
    2929{
     
    3838  $query_user.= $infos[$i];
    3939}
    40 $query_user.= ' from '.PREFIX_TABLE.'users';
     40$query_user.= ' FROM '.PREFIX_TABLE.'users';
    4141$query_done = false;
    4242$user['is_the_guest'] = false;
     
    4545{
    4646  $page['session_id'] = $_GET['id'];
    47   $query = 'select user_id,expiration,ip';
    48   $query.= ' from '.PREFIX_TABLE.'sessions';
    49   $query.= " where id = '".$_GET['id']."'";
     47  $query = 'SELECT user_id,expiration,ip';
     48  $query.= ' FROM '.PREFIX_TABLE.'sessions';
     49  $query.= " WHERE id = '".$_GET['id']."'";
    5050  $query.= ';';
    5151  $result = mysql_query( $query );
     
    5757      // deletion of the session from the database,
    5858      // because it is out-of-date
    59       $delete_query = 'delete from '.PREFIX_TABLE.'sessions';
    60       $delete_query.= " where id = '".$page['session_id']."'";
     59      $delete_query = 'DELETE FROM '.PREFIX_TABLE.'sessions';
     60      $delete_query.= " WHERE id = '".$page['session_id']."'";
    6161      $delete_query.= ';';
    6262      mysql_query( $delete_query );
     
    6666      if ( $_SERVER['REMOTE_ADDR'] == $row['ip'] )
    6767      {
    68         $query_user .= ' where id = '.$row['user_id'];
     68        $query_user .= ' WHERE id = '.$row['user_id'];
    6969        $query_done = true;
    7070      }
     
    7474if ( !$query_done )
    7575{
    76   $query_user .= ' where id = 2';
     76  $query_user .= ' WHERE id = 2';
    7777  $user['is_the_guest'] = true;
    7878}
     
    8383// affectation of each value retrieved in the users table into a variable
    8484// of the array $user.
    85 for ( $i = 0; $i < sizeof( $infos ); $i++ )
    86 {
    87   $user[$infos[$i]] = $row[$infos[$i]];
     85foreach ( $infos as $info ) {
     86  $user[$info] = $row[$info];
    8887  // If the field is true or false, the variable is transformed into a
    8988  // boolean value.
    90   if ( $row[$infos[$i]] == 'true' || $row[$infos[$i]] == 'false' )
     89  if ( $row[$info] == 'true' or $row[$info] == 'false' )
    9190  {
    92     $user[$infos[$i]] = get_boolean( $row[$infos[$i]] );
     91    $user[$info] = get_boolean( $row[$info] );
    9392  }
    9493}
  • trunk/include/vtemplate.class.php

    r2 r21  
    33 *                      VIRTUAL-TEMPLATE
    44 *
    5  * Version : 1.3.1 Base Edition ( Juillet 2002 ) build 6
     5 * Version : 1.3.2 Base Edition ( Decembre 2003 ) build 1
    66 *
    77 * Address : http://vtemplate.sourceforge.net
    88 *
    99 * Authors:
    10  *   + THIEBAUT Jean-Baptiste(J.Baptiste@leweby.com) - http://www.leweby.com .
     10 *   + THIEBAUT Jean-Baptiste(J.Baptiste@leweby.com)  - http://www.leweby.com .
    1111 *   + CAMPANA François (fc@netouaibe.com).
    1212 * Licence: GPL.
     13 *
     14 *
    1315 *
    14  *
     16 *                       
    1517 *****************************************************************/
    1618
    17 if ( !isset($DEFINE_VTEMPLATE) )
    18 {
    19   define("ALL",1);
    20   define("VARTAG","{#"); // Tag d'ouverture des variables :
    21                          //  vous pouvez changer ce paramètre.
    22   define("VTEMPLATE_VERSION","1.3.1");
    23   define("VTEMPLATE_TYPE","BA");
    24   define("VTEMPLATE_BUILD","6");
    25  
    26  
    27   class Err
    28     {
    29       var $msg;
    30       var $titre;
    31      
    32       function error( $errno, $arg = "", $code = 0, $disp = 0 )
    33         {
     19if ( !isset($DEFINE_VTEMPLATE) ){
     20define("ALL",1);
     21define("VARTAG","{#"); // Tag d'ouverture des variables : vous pouvez changer ce paramètre.
     22define("VTEMPLATE_VERSION","1.3.1");
     23define("VTEMPLATE_TYPE","BA");
     24define("VTEMPLATE_BUILD","6");
     25
     26
     27class Err {
     28var $msg;
     29var $titre;
     30
     31function error($errno,$arg="",$code=0,$disp=0){
    3432// Gestion des erreurs
    35           switch($errno)
    36           {
    37           case 1:
    38             $this->titre="Erreur de session n° $code";
    39             $this->msg = "La zone $arg est déjà ouverte.Avant d'ajouter une session sur cette zone, vous devez la fermer à l'aide de la fonction closeSession().<br>"   ;
    40             break;
    41           case 2:
    42             $this->titre="Erreur de session n° $code";
    43             $this->msg = "Vous tentez de fermer une session de la zone $arg alors qu'aucune session pour cette zone n'existe.Pour ouvrir une session, utilisez la fonction addSession().<br>";
    44             break;
    45           case 3:
    46             $this->titre="Erreur de session n° $code";
    47             $var = $arg[1];
    48             $zone = $arg[0];
    49             $this->msg = "Vous essayez de valoriser la variable $var sans avoir créer de session de la zone $zone.Utilisez la fonction addSession() pour créer une session, puis setVar pour valoriser une variable.<br>";
    50             break;
    51           case 4:
    52             $this->titre="Erreur de session n° $code";
    53             $var = $arg[1];
    54             $zone = $arg[0];
    55             $this->msg = "La variable $var que vous souhaitez valoriser n'existe pas dans la zone $zone.<br>";
    56             break;
    57           case 5:
    58             $this->titre="Erreur de parsing n° $code";
    59             $this->msg = "Vous utilisez des caractère non autorisés pour déclarer vos zones.Vous pouvez utiliser tous les caractères à l'exception de \'{\' , \'#\' \'}\' et \'|\'.<br>";
    60           break;
    61         case 6:
    62           $this->titre="Erreur de parsing n° $code";
    63           $this->msg = "Vous ne pouvez pas utiliser le même nom ($arg)de zone plusieurs fois.<br>";
    64           break;
    65         case 7:
    66           $this->titre="Erreur de parsing n° $code";
    67           $this->msg = "Vous avez oublié de fermer la zone $arg.<br>";
    68           break;
    69         case 8:
    70           $this->titre="Erreur de traitement n° $code";
    71           $this->msg = "Le fichier template $arg est introuvable.<br>";
    72           break;
    73         case 9:
    74           $this->titre="Erreur de traitement n° $code";
    75           $this->msg = "Impossible d'ouvrir le fichier $arg.Vérifiez les droits de ce fichier.<br>";
    76           break;
    77         case 10:
    78           $this->titre="Erreur de traitement n° $code";
    79           $this->msg = "Impossible de lire le fichier template $arg.<br>";     
    80           break;
    81         case 11:
    82           $this->titre="Erreur de traitement n° $code";
    83           $this->msg = "La zone $arg est introuvable.Vérifiez la syntaxe de cette zone.<br>";
    84           break;
    85         case 12: 
    86           $this->titre="Erreur de traitement n° $code";
    87           $this->msg = "La variable $arg est introuvable .Vérifiez la syntaxe de la variable.<br>";     
    88           break;
    89         case 13:
    90           $this->titre="Erreur de traitement n° $code";
    91           $this->msg = "L'identifiant de fichier spécifié n'existe pas.Vérifiez les fonctions Open() de votre script.<br>";
    92           break; 
    93         case 14:
    94           $this->titre="Erreur de traitement n° $code";
    95           $var = $arg[1];
    96           $file = $arg[0];
    97           $this->msg = "La variable $var dans le fichier $file est introuvable.Vérifiez la syntaxe de la variable.<br>";       
    98           break; 
    99         case 15:
    100           $this->titre="Erreur de traitement n° $code";
    101           $var = $arg[2];
    102           $zone = $arg[1];
    103           $fichier = $arg[0];
    104           $this->msg = "La variable $var dans la zone $zone du fichier $fichier est introuvable.Vérifiez la syntaxe de la variable et du nom de la zone.<br>"; 
    105           break;
    106         default:
    107           $this->titre = "Erreur inconnue $code";       
    108           $this->msg = "Veuillez le rapporter aux auteurs de la classe.";
    109         }
    110         $this->titre .= ": <br>";
    111         if ($disp){
    112           $web = "Pour plus d'informations, consultez la <a href=\"http://www.virtual-solution.net/vtemplate/docs/debug-mod.php?version=".VTEMPLATE_VERSION."&build=".VTEMPLATE_BUILD."&type=".VTEMPLATE_TYPE."&error=$code\" target=\"_blank\">doc en ligne</a>";
    113           echo "<font face=verdana size=2 color=red><u>$this->titre</u><i>$this->msg</i>$web<br><br></font>";
    114         }
    115         return -1;
    116       }
     33switch($errno){
     34  case 1:
     35    $this->titre="Erreur de session n° $code";
     36    $this->msg = "La zone $arg est déjà ouverte.Avant d'ajouter une session sur cette zone, vous devez la fermer à l'aide de la fonction closeSession().<br>"   ;
     37  break;
     38  case 2:
     39    $this->titre="Erreur de session n° $code";
     40    $this->msg = "Vous tentez de fermer une session de la zone $arg alors qu'aucune session pour cette zone n'existe.Pour ouvrir une session, utilisez la fonction addSession().<br>";
     41  break;
     42  case 3:
     43    $this->titre="Erreur de session n° $code";
     44        $var = $arg[1];
     45        $zone = $arg[0];
     46    $this->msg = "Vous essayez de valoriser la variable $var sans avoir créer de session de la zone $zone.Utilisez la fonction addSession() pour créer une session, puis setVar pour valoriser une variable.<br>";
     47  break;
     48  case 4:
     49    $this->titre="Erreur de session n° $code";
     50        $var = $arg[1];
     51        $zone = $arg[0];
     52    $this->msg = "La variable $var que vous souhaitez valoriser n'existe pas dans la zone $zone.<br>";
     53  break;
     54  case 5:
     55    $this->titre="Erreur de parsing n° $code";
     56    $this->msg = "Vous utilisez des caractère non autorisés pour déclarer vos zones.Vous pouvez utiliser tous les caractères à l'exception de \'{\' , \'#\' \'}\' et \'|\'.<br>";
     57  break;
     58  case 6:
     59    $this->titre="Erreur de parsing n° $code";
     60    $this->msg = "Vous ne pouvez pas utiliser le même nom ($arg)de zone plusieurs fois.<br>";
     61  break;
     62  case 7:
     63    $this->titre="Erreur de parsing n° $code";
     64    $this->msg = "Vous avez oublié de fermer la zone $arg.<br>";
     65  break;
     66  case 8:
     67    $this->titre="Erreur de traitement n° $code";
     68    $this->msg = "Le fichier template $arg est introuvable.<br>";
     69  break;
     70  case 9:
     71    $this->titre="Erreur de traitement n° $code";
     72    $this->msg = "Impossible d'ouvrir le fichier $arg.Vérifiez les droits de ce fichier.<br>";
     73  break;
     74  case 10:
     75    $this->titre="Erreur de traitement n° $code";
     76    $this->msg = "Impossible de lire le fichier template $arg.<br>";   
     77  break;
     78  case 11:
     79    $this->titre="Erreur de traitement n° $code";
     80    $this->msg = "La zone $arg est introuvable.Vérifiez la syntaxe de cette zone.<br>";
     81  break;
     82  case 12: 
     83    $this->titre="Erreur de traitement n° $code";
     84    $this->msg = "La variable $arg est introuvable .Vérifiez la syntaxe de la variable.<br>";   
     85  break;
     86  case 13:
     87    $this->titre="Erreur de traitement n° $code";
     88    $this->msg = "L'identifiant de fichier spécifié n'existe pas.Vérifiez les fonctions Open() de votre script.<br>";
     89  break; 
     90  case 14:
     91    $this->titre="Erreur de traitement n° $code";
     92        $var = $arg[1];
     93        $file = $arg[0];
     94    $this->msg = "La variable $var dans le fichier $file est introuvable.Vérifiez la syntaxe de la variable.<br>";     
     95  break; 
     96  case 15:
     97    $this->titre="Erreur de traitement n° $code";
     98        $var = $arg[2];
     99        $zone = $arg[1];
     100        $fichier = $arg[0];
     101    $this->msg = "La variable $var dans la zone $zone du fichier $fichier est introuvable.Vérifiez la syntaxe de la variable et du nom de la zone.<br>";       
     102  break;
     103  default:
     104         $this->titre = "Erreur inconnue $code";         
     105     $this->msg = "Veuillez le rapporter aux auteurs de la classe.";
     106}
     107$this->titre .= ": <br>";
     108if ($disp){
     109        $web = "Pour plus d'informations, consultez la <a href=\"http://www.virtual-solution.net/vtemplate/docs/debug-mod.php?version=".VTEMPLATE_VERSION."&build=".VTEMPLATE_BUILD."&type=".VTEMPLATE_TYPE."&error=$code\" target=\"_blank\">doc en ligne</a>";
     110        echo "<font face=verdana size=2 color=red><u>$this->titre</u><i>$this->msg</i>$web<br><br></font>";
     111}
     112return -1;
     113}
    117114// Fin classe
     115}
     116
     117class Session extends err{
     118
     119var $name;              // Name of the session
     120var $globalvar = array();  // List of global variable of the session
     121var $varlist = array();  // List of var in this session
     122var $subzone = array(); // list of sub-zone
     123var $temp; // Generated code for the current session
     124var $generated = NULL; // The final code
     125var $source; // Source code
     126var $used=0; // Indicates if the session contain used variable
     127var $stored; // Give the filename were is stored the session
     128
     129function Session($name,$source,$stored){
     130 $this->name = $name;
     131 $this->source = $source;
     132 $this->stored = $stored;
     133 $this->parseVar();
     134}
     135
     136function parseVar(){
     137 // Récupération des noms des variables
     138 $regle = "|".VARTAG."(.*)}|sU";
     139 preg_match_all ($regle,$this->source,$var1);
     140 // Création du tableau de variable  à partir de la liste parsée.
     141 $this->varlist=@array_merge($var[1],$var1[1]);
     142return 1;
     143}
     144
     145function init(){
     146if($this->used) return $this->error(1,array($this->stored,$this->name),"SESSION1",1);
     147// Reset generated code
     148$this->temp = $this->source;
     149$this->used = 1;
     150}
     151function closeSession(){
     152// Check if the zone has been used.   
     153if(!$this->used) return $this->error(2,array($this->stored,$this->name),"SESSION2",1);
     154// Set Globals vars.
     155$this->generateCode();
     156$this->used=0;
     157return 1;
     158}
     159
     160function reset(){
     161$this->used = 0;
     162$this->generated = NULL;
     163return 1;
     164}
     165
     166function addSubZone(&$subzone){
     167$this->subzone[$subzone->name] = &$subzone;
     168return 1;
     169}
     170
     171function setVar($varname,$value){
     172if (!$this->used) return $this->error(3,array($this->stored,$this->name,$varname),"SESSION3",1);
     173if (!in_array($varname,$this->varlist)) return $this->error(4,array($this->name,$varname),"SESSION4",1);
     174$regle = "(\\".VARTAG."$varname\})";
     175$this->temp = preg_replace($regle,$value,$this->temp);
     176return 1;
     177}
     178
     179function dispVar(){
     180 echo "Liste variables de $this->name:<br>";
     181 foreach ( $this->varlist as $vars )
     182    echo "$vars <br>";
     183}
     184
     185function setGlobalVar($varname,$value){
     186$set = 0;
     187if (in_array($varname,$this->varlist)){
     188  // Replace the var into this session
     189  $this->globalvar[$varname]=$value;   
     190  $set = 1;
     191}
     192  // Replace the var into sub zones
     193  foreach(array_keys($this->subzone) as $subzone){
     194      $set = $this->subzone[$subzone]->setGlobalVar($varname,$value) || $set;
     195  }
     196  return $set;
     197}
     198
     199function replaceGlobalVar(){
     200if ( count($this->globalvar) )
     201foreach($this->globalvar as $varname => $value){
     202  $regle = "(\\".VARTAG."$varname\})";
     203  $this->temp = preg_replace($regle,$value,$this->temp);
     204}
     205}
     206
     207
     208function generateCode(){
     209    if ($this->used == 0) return $this->generated;
     210    // Replace global var.
     211        if ( count($this->globalvar) ) $this->replaceGlobalVar();
     212        // Replace all unused variable by ""
     213    $regle = "|\\".VARTAG."([^}]*)\}|";
     214        $this->temp = preg_replace($regle,"",$this->temp);
     215        // Generate the subzone(s) code
     216        if(count($this->subzone)){
     217          foreach(array_keys($this->subzone) as $subzone){
     218                $text = ($this->subzone[$subzone]->used) ? $this->subzone[$subzone]->generateCode() : $this->subzone[$subzone]->generated;
     219                $this->temp = preg_replace("(\|$subzone\|)",$text,$this->temp);         
     220                $this->subzone[$subzone]->reset();
     221          }
    118222    }
    119 
    120   class Session extends err{
    121 
    122     var $name;          // Name of the session
    123     var $globalvar = array();  // List of global variable of the session
    124     var $varlist = array();  // List of var in this session
    125     var $subzone = array(); // list of sub-zone
    126     var $temp; // Generated code for the current session
    127     var $generated = NULL; // The final code
    128     var $source; // Source code
    129     var $used=0; // Indicates if the session contain used variable
    130     var $stored; // Give the filename were is stored the session
    131 
    132     function Session($name,$source,$stored){
    133       $this->name = $name;
    134       $this->source = $source;
    135       $this->stored = $stored;
    136       $this->parseVar();
    137     }
    138 
    139     function parseVar(){
    140       // Récupération des noms des variables
    141       $regle = "|".VARTAG."(.*)}|sU";
    142       preg_match_all ($regle,$this->source,$var1);
    143       // Création du tableau de variable  à partir de la liste parsée.
    144       $this->varlist=@array_merge($var[1],$var1[1]);
    145       return 1;
    146     }
    147 
    148     function init(){
    149       if($this->used) return $this->error(1,array($this->stored,$this->name),"SESSION1",1);
    150 // Reset generated code
    151       $this->temp = $this->source;
    152       $this->used = 1;
    153     }
    154     function closeSession(){
    155 // Check if the zone has been used.   
    156       if(!$this->used) return $this->error(2,array($this->stored,$this->name),"SESSION2",1);
    157 // Set Globals vars.
    158       $this->generateCode();
    159       $this->used=0;
    160       return 1;
    161     }
    162 
    163     function reset(){
    164       $this->used = 0;
    165       $this->generated = NULL;
    166       return 1;
    167     }
    168 
    169     function addSubZone(&$subzone){
    170       $this->subzone[$subzone->name] = &$subzone;
    171       return 1;
    172     }
    173 
    174     function setVar($varname,$value){
    175       if (!$this->used) return $this->error(3,array($this->stored,$this->name,$varname),"SESSION3",1);
    176       if (!in_array($varname,$this->varlist)) return $this->error(4,array($this->name,$varname),"SESSION4",1);
    177       $regle = "(\\".VARTAG."$varname\})";
    178       $this->temp = preg_replace($regle,$value,$this->temp);
    179       return 1;
    180     }
    181 
    182     function dispVar(){
    183       echo "Liste variables de $this->name:<br>";
    184       foreach ( $this->varlist as $vars )
    185         echo "$vars <br>";
    186     }
    187 
    188     function setGlobalVar($varname,$value){
    189       $set = 0;
    190       if (in_array($varname,$this->varlist)){
    191         // Replace the var into this session
    192         $this->globalvar[$varname]=$value;   
    193         $set = 1;
    194       }
    195       // Replace the var into sub zones
    196       foreach(array_keys($this->subzone) as $subzone){
    197         $set = $this->subzone[$subzone]->setGlobalVar($varname,$value) || $set;
    198       }
    199       return $set;
    200     }
    201 
    202     function replaceGlobalVar(){
    203       if ( count($this->globalvar) )
    204         foreach($this->globalvar as $varname => $value){
    205         $regle = "(\\".VARTAG."$varname\})";
    206         $this->temp = preg_replace($regle,$value,$this->temp);
    207       }
    208     }
    209 
    210 
    211     function generateCode(){
    212       if ($this->used == 0) return $this->generated;
    213       // Replace global var.
    214       if ( count($this->globalvar) ) $this->replaceGlobalVar();
    215       // Replace all unused variable by ""
    216       $regle = "|\\".VARTAG."(.*)\}|";
    217       $this->temp = preg_replace($regle,"",$this->temp);
    218       // Generate the subzone(s) code
    219       if(count($this->subzone)){
    220         foreach(array_keys($this->subzone) as $subzone){
    221           $text = ($this->subzone[$subzone]->used) ? $this->subzone[$subzone]->generateCode() : $this->subzone[$subzone]->generated;
    222           $this->temp = preg_replace("(\|$subzone\|)",$text,$this->temp);       
    223           $this->subzone[$subzone]->reset();
    224         }
    225       }
    226       $this->generated .= $this->temp;
    227       return $this->generated;
    228     }
    229 
    230     function inVarList($varname){
    231       return in_array($varname,$this->varlist);
    232     }
     223$this->generated .= $this->temp;
     224return $this->generated;
     225}
     226
     227function inVarList($varname){
     228return in_array($varname,$this->varlist);
     229}
    233230
    234231// Fin classe
    235   }
    236 
    237   class VTemplate_Private extends Err{
     232}
     233
     234class VTemplate_Private extends Err{
    238235/****************************************
    239  *         Private Class.               *
    240  * ***************************************/
    241 
    242     var $sources=array(); // Sources des zones issues de la premiere partie du parsing.
    243     var $sessions=array(); // Tableau de sessions
    244     var $v_global=array(); // Globla var array.
     236*          Private Class.               *
     237* ***************************************/
     238
     239var $sources=array(); // Sources des zones issues de la premiere partie du parsing.
     240var $sessions=array(); // Tableau de sessions
     241var $v_global=array(); // Globla var array.
    245242
    246243/****************************************************************
    247244            Parsing Functions for Template files.  ( PF 1.0 )
    248 ****************************************************************/
    249 
    250     function getNom($code){
     245 ****************************************************************/
     246
     247function getNom($code){
    251248// Retourne le premier nom de zone qu'il trouve dans le code
    252249
    253       preg_match("(<!--VTP_([^()]+)-->)sU",$code,$reg);
     250   preg_match("(<!--VTP_([^()]+)-->)sU",$code,$reg);
    254251   
    255       // Tester la présence des caratère invalides dans le nom ( | et {});
    256       if (@count(explode("|",$reg[1]))>1 || @count(explode("{",$reg[1]))>1 || @count(explode("}",$reg[1]))>1) exit($this->error(5,$reg[1],"PARSE1",1));
     252   // Tester la présence des caratère invalides dans le nom ( | et {});
     253   if (@count(explode("|",$reg[1]))>1 || @count(explode("{",$reg[1]))>1 || @count(explode("}",$reg[1]))>1) exit($this->error(5,$reg[1],"PARSE1",1));
    257254   
    258       return @$reg[1];
    259     }
    260 
    261     function endTag($code,$nom){
     255   return @$reg[1];
     256}
     257
     258function endTag($code,$nom){
    262259// Renvoie TRUE(1) si le tag de fermeture est présent.
    263260
    264       preg_match("(<!--/VTP_$nom-->)sU",$code,$reg);
    265 
    266       return ($reg[0]!="<!--/VTP_$nom-->") ? 0 : 1;
    267     }
    268 
    269     function getSource($code,$nom,$type=0){
     261   preg_match("(<!--/VTP_$nom-->)sU",$code,$reg);
     262
     263return ($reg[0]!="<!--/VTP_$nom-->") ? 0 : 1;
     264}
     265
     266function getSource($code,$nom,$type=0){
    270267// Retourne le source de la zone de nom $nom
    271268
    272       preg_match_all ("(<!--VTP_$nom-->(.*)<!--/VTP_$nom-->)sU",$code,$reg);
    273 
    274       return $reg[$type][0];
    275     }
    276 
    277     function parseZone($code_source,$nom_zone="|root|"){
     269   preg_match_all ("(<!--VTP_$nom-->(.*)<!--/VTP_$nom-->)sU",$code,$reg);
     270
     271return $reg[$type][0];
     272}
     273
     274function parseZone($code_source,$nom_zone="|root|"){
    278275// Fonction récursive de parsing du fichier template
    279       // Vérification que la zone n'existe pas
    280       if (isset($this->sources[$nom_zone])) exit($this->error(6,$nom_zone,"PARSE2",1));
    281 
    282       // Enregistrement du code source
    283       $this->sources[$nom_zone]["source"]=$code_source;
    284 
    285       // Rappel de la fonction pour chaque fils.
    286       while($nom_fils=$this->getNom($this->sources[$nom_zone]["source"])){
    287 
    288         // Vérification que le tag de fin est présent.
    289         if (!$this->endTag($code_source,$nom_fils)) exit($this->error(7,$nom_fils,"PARSE3",1));
    290 
    291         // Parse le fils
    292         $this->parseZone($this->getSource($this->sources[$nom_zone]["source"],$nom_fils,1),$nom_fils);
    293 
    294         // Enregistre le nom du fils dans la liste des fils
    295         $this->sources[$nom_zone]["fils"][]=$nom_fils;
    296 
    297         // Remplace le code du fils dans le source du père
    298         $this->sources[$nom_zone]["source"]=str_replace(
    299           $this->getSource($this->sources[$nom_zone]["source"],$nom_fils,0),
    300           "|$nom_fils|",
    301           $this->sources[$nom_zone]["source"]
    302           );
    303         // Teste si la zone $nom_fils n'existe pas plusieurs fois dans la zone $nom_zone
    304         if (count(explode("|$nom_fils|",$this->sources[$nom_zone]["source"]))>2) exit($this->error(6,$nom_fils,"PARSE4",1));
    305       }// fin While
    306 
    307       return 1;
    308     }
     276   // Vérification que la zone n'existe pas
     277   if (isset($this->sources[$nom_zone])) exit($this->error(6,$nom_zone,"PARSE2",1));
     278
     279   // Enregistrement du code source
     280   $this->sources[$nom_zone]["source"]=$code_source;
     281
     282   // Rappel de la fonction pour chaque fils.
     283   while($nom_fils=$this->getNom($this->sources[$nom_zone]["source"])){
     284
     285     // Vérification que le tag de fin est présent.
     286     if (!$this->endTag($code_source,$nom_fils)) exit($this->error(7,$nom_fils,"PARSE3",1));
     287
     288     // Parse le fils
     289     $this->parseZone($this->getSource($this->sources[$nom_zone]["source"],$nom_fils,1),$nom_fils);
     290
     291     // Enregistre le nom du fils dans la liste des fils
     292     $this->sources[$nom_zone]["fils"][]=$nom_fils;
     293
     294     // Remplace le code du fils dans le source du père
     295     $this->sources[$nom_zone]["source"]=str_replace(
     296                                     $this->getSource($this->sources[$nom_zone]["source"],$nom_fils,0),
     297                                     "|$nom_fils|",
     298                                     $this->sources[$nom_zone]["source"]
     299                                     );
     300     // Teste si la zone $nom_fils n'existe pas plusieurs fois dans la zone $nom_zone
     301     if (count(explode("|$nom_fils|",$this->sources[$nom_zone]["source"]))>2) exit($this->error(6,$nom_fils,"PARSE4",1));
     302   }// fin While
     303
     304return 1;
     305}
    309306
    310307/****************************************************************
    311308            Session Management functions ( SMF 1.0 )
    312 ****************************************************************/
    313 
    314     function createSession($handle,$zone = "|root|"){
     309 ****************************************************************/
     310
     311function createSession($handle,$zone = "|root|"){
    315312// Create a new session of the zone
    316       $this->sessions[$handle][$zone] = new Session($zone,$this->sources[$zone]["source"],$this->file_name[$handle]);
     313$this->sessions[$handle][$zone] = new Session($zone,$this->sources[$zone]["source"],$this->file_name[$handle]);
    317314
    318315// Create sub-zone
    319       if (@count($this->sources[$zone]["fils"])){
    320         foreach($this->sources[$zone]["fils"] as $subzone){       
    321           $this->createSession($handle,$subzone);
    322           $this->sessions[$handle][$zone]->addSubZone($this->sessions[$handle][$subzone]);
    323         }
    324       }
     316if (@count($this->sources[$zone]["fils"])){
     317   foreach($this->sources[$zone]["fils"] as $subzone){   
     318    $this->createSession($handle,$subzone);
     319    $this->sessions[$handle][$zone]->addSubZone($this->sessions[$handle][$subzone]);
     320   }
     321}
    325322                                 
    326323//end createSession
    327     }
     324}
    328325
    329326
    330327/****************************************************************
    331328            Global Variable Management Functions ( GVMF 1.0 )
    332 ****************************************************************/
    333 
    334     function setGZone($handle,$zone,$var,$value){
    335       // Define Global var for $zone and its sub-zone.
    336       // Set global value to $zone vars.
    337       return $this->sessions[$handle][$zone]->setGlobalVar($var,$value);
    338     }
    339 
    340     function setGFile($handle,$var,$value) {
    341       return $this->sessions[$handle]["|root|"]->setGlobalVar($var,$value);
    342     }
    343 
    344     function setGAll($var,$value){
    345       $declare = 0;
    346       $this->v_global[$var]=$value;
    347       if (is_array($this->sessions)){
    348         foreach($this->sessions as $handle => $v){
    349           $declare = $this->setGFile($handle,$var,$value) || $declare;
    350         }       
    351       }
    352       return $declare;
    353     }
    354 
    355     function setGOpened($handle){
     329 ****************************************************************/
     330
     331 function setGZone($handle,$zone,$var,$value){
     332 // Define Global var for $zone and its sub-zone.
     333   // Set global value to $zone vars.
     334  return $this->sessions[$handle][$zone]->setGlobalVar($var,$value);
     335}
     336
     337function setGFile($handle,$var,$value) {
     338  return $this->sessions[$handle]["|root|"]->setGlobalVar($var,$value);
     339}
     340
     341function setGAll($var,$value){
     342$declare = 0;
     343$this->v_global[$var]=$value;
     344if (is_array($this->sessions)){
     345    foreach($this->sessions as $handle => $v){
     346                $declare = $this->setGFile($handle,$var,$value) || $declare;
     347                }       
     348  }
     349return $declare;
     350}
     351
     352function setGOpened($handle){
    356353// Set Global var into the opened file
    357       foreach($this->v_global as $name => $val){
    358         $this->setGFile($handle,$name,$val);
    359       }
    360       return 1;
    361     }
     354foreach($this->v_global as $name => $val){
     355  $this->setGFile($handle,$name,$val);
     356}
     357return 1;
     358}
    362359 
    363360// Fin VTemplate_Private
    364   }
    365 
    366 
    367   class VTemplate extends VTemplate_Private{
     361}
     362
     363
     364class VTemplate extends VTemplate_Private{
    368365/****************************************
    369  *         Public Class.                *
    370  * ***************************************/
     366*          Public Class.                *
     367* ***************************************/
    371368
    372369
     
    376373
    377374
    378     function Open($nomfichier){
     375function Open($nomfichier){
    379376// Ouverture d'un fichier source et retourne le handle de ce fichier
    380377// Création du handle:
    381       $handle =  "{".count($this->sessions)."}" ;
     378$handle =  "{".count($this->sessions)."}" ;
    382379
    383380
    384381// Récupération du source à parser
    385       if (!@file_exists($nomfichier)) return $this->error(8,$nomfichier,"TTT1",1);
    386       if (!$f_id=@fopen($nomfichier,"r")) return $this->error(9,$nomfichier,"TTT2",1);
    387       if (!$source=@fread($f_id, filesize($nomfichier))) return $this->error(10,$nomfichier,"TTT3",1);
    388       clearstatcache();
    389       fclose($f_id);
     382if (!@file_exists($nomfichier)) return $this->error(8,$nomfichier,"TTT1",1);
     383if (!$f_id=@fopen($nomfichier,"r")) return $this->error(9,$nomfichier,"TTT2",1);
     384if (!$source=@fread($f_id, filesize($nomfichier))) return $this->error(10,$nomfichier,"TTT3",1);
     385clearstatcache();
     386fclose($f_id);
    390387
    391388// Store the filename
    392       $this->file_name[$handle]=$nomfichier;
     389$this->file_name[$handle]=$nomfichier;
    393390
    394391// Parse les zones
    395       $this->parseZone($source);
     392$this->parseZone($source);
    396393
    397394// Création du tableau de session
    398       $this->createSession($handle);
     395$this->createSession($handle);
    399396
    400397//Nettoyage des variables temporaires
    401       $this->sources=NULL;
     398$this->sources=NULL;
    402399
    403400// Set global var.
    404       $this->setGOpened($handle);
    405 
    406       $this->addSession($handle);
    407       return $handle;
    408     }
    409 
    410     function newSession($handle="{0}",$nom_zone = "|root|"){
    411       if ( $this->sessions[$handle][$nom_zone]->used ) $this->closeSession($handle,$nom_zone);
    412       $this->addSession($handle,$nom_zone,$cache,$time,$num_session);
    413       return 1;
    414     }
    415 
    416     function addSession($handle="{0}",$nom_zone = "|root|"){
    417       // Does the zone exist ?
    418       if(!isset($this->sessions[$handle][$nom_zone])) return $this->error(11,array($nom_zone,$this->file_name[$handle]),"TTT4",1);   
    419       $this->sessions[$handle][$nom_zone]->init();
    420       return 1;
    421     }
    422 
    423     function closeSession($handle="{0}",$nom_zone = "|root|"){
     401$this->setGOpened($handle);
     402
     403$this->addSession($handle);
     404return $handle;
     405}
     406
     407function newSession($handle="{0}",$nom_zone = "|root|"){
     408if ( $this->sessions[$handle][$nom_zone]->used ) $this->closeSession($handle,$nom_zone);
     409$this->addSession($handle,$nom_zone,$cache,$time,$num_session);
     410return 1;
     411}
     412
     413function addSession($handle="{0}",$nom_zone = "|root|"){
     414        // Does the zone exist ?
     415   if(!isset($this->sessions[$handle][$nom_zone])) return $this->error(11,array($nom_zone,$this->file_name[$handle]),"TTT4",1);   
     416   $this->sessions[$handle][$nom_zone]->init();
     417   return 1;
     418}
     419
     420function closeSession($handle="{0}",$nom_zone = "|root|"){
    424421// Close the current session and all his sub-session
    425       // Check if the zone exists.
    426       if(!isset($this->sessions[$handle][$nom_zone])) return $this->error(11,array($nom_zone,$this->file_name[$handle]),"TTT5",1);
    427       // Closing sub-zone
    428       $this->sessions[$handle][$nom_zone]->closeSession();     
    429       return 1;
    430     }
    431 
    432     function setGlobalVar($arg1,$arg2,$arg3){
    433       if ($arg1 == 1){
    434         if (!$this->setGAll($arg2,$arg3)) return $this->error(12,$arg2,"TTT6",1);
    435         return 1;
    436       }
    437       if (!isset($this->sessions[$arg1])) return $this->error(13,$arg1,"TTT7",1);
    438       $tab=explode(".",$arg2);
    439       if (count($tab)==1){
    440         if (!$this->setGFile($arg1,$arg2,$arg3)) return $this->error(14,array($this->file_name[$arg1],$arg2),"TTT8",1);
    441       }
    442       else if (count($tab==2)){
    443         if (!isset($this->sessions[$arg1][$tab[0]])) return $this->error(11,array($tab[0],$this->file_name[$arg1],"TTT9",1));
    444         if (!$this->setGZone($arg1,$tab[0],$tab[1],$arg3)) return $this->error(15,array($this->file_name[$arg1],$tab[0],$tab[1]),"TTT10",1);
    445       }
    446       return 1;
    447     }
    448 
    449     function setVar($handle,$zone_var,$val){
    450       // Fill the variable
    451       $tab=explode(".",$zone_var);
    452       if(count($tab)==2){
    453         $zone=$tab[0];
    454         $var=$tab[1];
    455       }
    456       else
    457       {
    458         $zone="|root|";
    459         $var=$tab[0];
    460       }
    461 
    462       // Teste l'existence de la zone dans la liste
    463       if (!isset($this->sessions[$handle][$zone])) return $this->error(11,array($this->file_name[$handle],$zone),"TTT11",1);
    464 
    465       //Enregistre la variable
    466       return $this->sessions[$handle][$zone]->setVar($var,$val);
    467     }
    468 
    469     function Parse($handle_dest,$zone_var_dest,$handle_source,$zone_source="|root|"){
    470       if($this->sessions[$handle_source][$zone_source]->used == 1) $this->closeSession($handle_source,$zone_source);
    471       $this->setVar($handle_dest,$zone_var_dest, $this->sessions[$handle_source][$zone_source]->generated);
    472     }
    473 
    474     function setVarF($handle,$zone_var,$file){
     422          // Check if the zone exists.
     423        if(!isset($this->sessions[$handle][$nom_zone])) return $this->error(11,array($nom_zone,$this->file_name[$handle]),"TTT5",1);
     424     // Closing sub-zone
     425     $this->sessions[$handle][$nom_zone]->closeSession();       
     426   return 1;
     427}
     428
     429function setGlobalVar($arg1,$arg2,$arg3){
     430if ($arg1 == 1){
     431  if (!$this->setGAll($arg2,$arg3)) return $this->error(12,$arg2,"TTT6",1);
     432  return 1;
     433}
     434if (!isset($this->sessions[$arg1])) return $this->error(13,$arg1,"TTT7",1);
     435 $tab=explode(".",$arg2);
     436 if (count($tab)==1){
     437    if (!$this->setGFile($arg1,$arg2,$arg3)) return $this->error(14,array($this->file_name[$arg1],$arg2),"TTT8",1);
     438 }
     439 else if (count($tab==2)){
     440    if (!isset($this->sessions[$arg1][$tab[0]])) return $this->error(11,array($tab[0],$this->file_name[$arg1],"TTT9",1));
     441    if (!$this->setGZone($arg1,$tab[0],$tab[1],$arg3)) return $this->error(15,array($this->file_name[$arg1],$tab[0],$tab[1]),"TTT10",1);
     442 }
     443return 1;
     444}
     445
     446function setVar($handle,$zone_var,$val){
     447 // Fill the variable
     448$tab=explode(".",$zone_var);
     449 if(count($tab)==2){
     450   $zone=$tab[0];
     451   $var=$tab[1];
     452 }
     453 else
     454 {
     455  $zone="|root|";
     456  $var=$tab[0];
     457 }
     458
     459 // Teste l'existence de la zone dans la liste
     460 if (!isset($this->sessions[$handle][$zone])) return $this->error(11,array($this->file_name[$handle],$zone),"TTT11",1);
     461
     462 //Enregistre la variable
     463 return $this->sessions[$handle][$zone]->setVar($var,$val);
     464}
     465
     466function Parse($handle_dest,$zone_var_dest,$handle_source,$zone_source="|root|"){
     467        if($this->sessions[$handle_source][$zone_source]->used == 1) $this->closeSession($handle_source,$zone_source);
     468          $this->setVar($handle_dest,$zone_var_dest, $this->sessions[$handle_source][$zone_source]->generated);
     469}
     470
     471function setVarF($handle,$zone_var,$file){
    475472// Fonction qui ouvre le fichier file et copie ce qu'il y a dedans dans une variable.
    476       $tab=explode(".",$zone_var);
     473$tab=explode(".",$zone_var);
    477474
    478475// Récupération nom de la zone et de la variable.
    479       if(count($tab)==2){
    480         $zone=$tab[0];
    481         $var=$tab[1];
    482       }
    483       else
    484       {
    485         $zone="|root|";
    486         $var=$tab[0];
    487       }
     476 if(count($tab)==2){
     477   $zone=$tab[0];
     478   $var=$tab[1];
     479 }
     480 else
     481 {
     482  $zone="|root|";
     483  $var=$tab[0];
     484 }
    488485// Teste l'existence de la zone dans la liste
    489       if (!is_object($this->sessions[$handle][$zone])) return $this->error(11,array($handle,$zone),"TTT12",1);
    490 
    491       // Récupération du source à lire
    492       if (!@file_exists($file)) return $this->error(8,$file,"TTT13",1);
    493       if (!$f_id=@fopen($file,"r")) return $this->error(9,$file,"TTT14",1);
    494       if (!$val=@fread($f_id, filesize($file))) return $this->error(10,$file,"TTT15",1);
    495       clearstatcache();
    496       fclose($f_id);
     486 if (!is_object($this->sessions[$handle][$zone])) return $this->error(11,array($handle,$zone),"TTT12",1);
     487
     488 // Récupération du source à lire
     489if (!@file_exists($file)) return $this->error(8,$file,"TTT13",1);
     490if (!$f_id=@fopen($file,"r")) return $this->error(9,$file,"TTT14",1);
     491if (!$val=@fread($f_id, filesize($file))) return $this->error(10,$file,"TTT15",1);
     492clearstatcache();
     493fclose($f_id);
    497494
    498495//Enregistre la variable
    499       return $this->sessions[$handle][$zone]->setVar($var,$val);
    500     }
    501 
    502     function isZone($handle, $zone="|root|")
    503       {
    504         return isset($this->sessions[$handle][$zone]) ;
    505       }
    506 
    507     function Display($handle="{0}",$display=1,$zone="|root|"){
    508       $this->closeSession($handle,$zone);
    509       $c_genere = $this->sessions[$handle][$zone]->generated;
     496return $this->sessions[$handle][$zone]->setVar($var,$val);
     497}
     498
     499
     500
     501
     502
     503function isZone($handle, $zone="|root|")
     504{
     505return isset($this->sessions[$handle][$zone]) ;
     506}
     507
     508function Display($handle="{0}",$display=1,$zone="|root|"){
     509        $this->closeSession($handle,$zone);
     510        $c_genere = $this->sessions[$handle][$zone]->generated;
    510511       
    511       if ($display) echo $c_genere; else return ($c_genere);
    512     }
     512        if ($display) echo $c_genere; else return ($c_genere);
     513}
     514//fonction complementaire version BETA
     515
     516/*
     517*
     518On peut l'utiliser :
     519- SetVarTab($array): tout les couples clef/valeur sont valorisées
     520- SetVarTab($array,$index) seuls les couples clef/valeur dont la clef est dans le tableau index ou dont la valeur == $index (si pas tableau)
     521Si $index contient ou est une clef de type zone.clef, la clef sera extraite du texte est servira d'index pour $array
     522
     523Vincent
     524*/
     525
     526function setVarTab($handle,$zones,$index = array()){
     527        if (is_array($index))
     528        {
     529                if (count($index)>0)
     530                {
     531                        reset($index);
     532                        while (list (, $key) = each ($index))
     533                        {
     534                                $tab=explode(".",$key);
     535                                if(count($tab)==2){
     536                                        $var=$tab[1];
     537                                }
     538                                else
     539                                {
     540                                        $var=$tab[0];
     541                                }
     542                                setVar($handle,$key,$zones[$var]);
     543                        }
     544                }
     545                else
     546                {
     547                        reset($zones);
     548                        while (list ($key, $val) = each ($zones))
     549                        {
     550                                setVar($handle,$key,$val);
     551                        }
     552                }
     553        }
     554        else
     555        {
     556                setVar($handle,$index,$zones[$index]);
     557        }
     558}
     559
     560function setGlobalVarTab($handle,$zones,$index = array()){
     561
     562        if (is_array($index))
     563        {
     564                if (count($index)>0)
     565                {
     566                        reset($index);
     567                        while (list (, $key) = each ($index))
     568                        {
     569                                $tab=explode(".",$key);
     570                                if(count($tab)==2){
     571                                        $var=$tab[1];
     572                                }
     573                                else
     574                                {
     575                                        $var=$tab[0];
     576                                }
     577                                setGlobalVar($handle,$key,$zones[$var]);
     578                        }
     579                }
     580                else
     581                {
     582                        reset($zones);
     583                        while (list ($key, $val) = each ($zones))
     584                        {
     585                                GlobalVar($handle,$key,$val);
     586                        }
     587                }
     588        }
     589        else
     590        {
     591                setBlobalVar($handle,$index,$zones[$index]);
     592        }
     593}
     594
     595
     596
     597
    513598
    514599
    515600// End VTemplate
    516   }
    517   $DEFINE_VTEMPLATE = 1;
     601}
     602$DEFINE_VTEMPLATE = 1;
    518603}
    519604?>
  • trunk/index.php

    r10 r21  
    11<?php
    2 include_once( './include/mysql.inc.php' );
     2define( PREFIX_INCLUDE, '' );
    33include_once( './include/functions.inc.php' );
    44database_connection();
    5 // récupération des informations de configuration du site
    6 $query  = 'select acces ';
    7 $query .= 'from '.PREFIX_TABLE.'config;';
     5// retrieving configuration informations
     6$query = 'SELECT access';
     7$query.= ' FROM '.PREFIX_TABLE.'config;';
    88$row = mysql_fetch_array( mysql_query( $query ) );
    9 $url = 'category';
    10 if ( $row['acces'] == 'restreint' )
    11 {
    12   $url = 'identification';
    13 }
     9if ( $row['access'] == 'restricted' ) $url = 'identification';
     10else                                  $url = 'category';
    1411// redirection
    1512$url.= '.php';
  • trunk/language/francais.php

    r20 r21  
    1616$lang['guest'] = 'visiteur';
    1717$lang['mail_address'] = 'adresse mail';
     18$lang['public'] = 'publique';
     19$lang['private'] = 'privée';
     20$lang['add'] = 'ajouter';
     21$lang['dissociate'] = 'dissocier';
    1822// end version 1.3
    1923
     
    219223  $lang['title_add'] = 'Ajouter un utilisateur';
    220224  $lang['title_modify'] = 'Modifier un utilisateur';
     225  $lang['title_groups'] = 'Gestion des groupes';
    221226// end version 1.3
    222227  $lang['title_liste_users'] = 'Liste des utilisateurs';
     
    225230  $lang['title_configuration'] = 'Configuration de PhpWebGallery';
    226231  $lang['title_instructions'] = 'Instructions';
    227   $lang['title_permissions'] = 'Modifier les permissions pour un utilisateur';
     232// start version 1.3
     233// $lang['title_permissions'] = 'Modifier les permissions pour un utilisateur';
     234  $lang['title_user_perm'] = 'Modifier les permissions pour l\'utilisateur';
     235  $lang['title_cat_perm'] = 'Modifier les permissions pour la catégorie';
     236  $lang['title_group_perm'] = 'Modifier les permissions pour le groupe';
     237// end version 1.3
    228238  $lang['title_categories'] = 'Gestion des catégories';
    229239  $lang['title_edit_cat'] = 'Editer une catégorie';
     
    232242  $lang['title_thumbnails_2'] = 'pour';
    233243  $lang['title_default'] = 'Administration de PhpWebGallery';
    234                
     244       
    235245  $lang['menu_title'] = 'Administration';
    236246  $lang['menu_config'] = 'Configuration';
     
    244254  $lang['menu_instructions'] = 'Instructions';
    245255  $lang['menu_back'] = 'Page diapo';
    246 
     256// start version 1.3
     257  $lang['menu_groups'] = 'Groupes';
     258// end version 1.3
     259 
    247260  $lang['title_waiting'] = 'Images en attente de validation';
    248261  $lang['menu_waiting'] = 'En attente';
     
    384397// start version 1.3
    385398//  $lang['adduser_status_member'] = 'membre';
     399  $lang['adduser_associate'] = 'Associer au groupe';
    386400// end version 1.3
    387401  $lang['adduser_status_guest'] = 'visiteur';
    388                
     402
     403// start version 1.3
     404  $lang['group_add'] = 'Ajouter un groupe';
     405  $lang['group_add_error1'] = 'Le nom du groupe ne doit pas comporter de " ou de \'';
     406  $lang['group_add_error2'] = 'Ce nom de groupe est déjà utilisé';
     407  $lang['group_confirm'] = 'Etes-vous sûr de vouloir supprimer le groupe';
     408  $lang['group_list_title'] = 'Liste des groupes existants';
     409  $lang['group_err_unknown'] = 'Ce groupe n\'existe pas dans la base de données';
     410// end version 1.3
     411
    389412  // page permissions
    390413  $lang['permuser_info_message'] = 'Permissions enregistrées';
     
    394417  $lang['permuser_forbidden'] = 'interdit';
    395418  $lang['permuser_parent_forbidden'] = 'catégorie parente interdite';
    396   $lang['permuser_cat_title'] = 'Modifier les permissions pour ';
     419// start version 1.3
     420// $lang['permuser_cat_title'] = 'Modifier les permissions pour ';
     421// end version 1.3
    397422               
    398423  // page liste utilisateurs
     
    434459  $lang['editcat_status'] = 'Status';
    435460  $lang['editcat_status_info'] = '(invisible sauf pour les administrateurs)';
    436                
     461// start version 1.3
     462  $lang['editcat_visible'] = 'Visible';
     463// end version 1.3
    437464  // page info images
    438465  $lang['infoimage_err_date'] = 'date erronée';
  • trunk/picture.php

    r19 r21  
    2929}
    3030//---------------------------------------- incrementation of the number of hits
    31 $query = 'update '.PREFIX_TABLE.'images';
    32 $query.= ' set hit=hit+1';
    33 $query.= ' where id='.$_GET['image_id'];
     31$query = 'UPDATE '.PREFIX_TABLE.'images';
     32$query.= ' SET hit=hit+1';
     33$query.= ' WHERE id='.$_GET['image_id'];
    3434$query.= ';';
    3535@mysql_query( $query );
     
    3838$cat_directory = $page['cat_dir']; // by default
    3939//------------------------------------- main picture information initialization
    40 $query = 'select id,date_available,comment,hit';
     40$query = 'SELECT id,date_available,comment,hit';
    4141$query.= ',author,name,file,date_creation,filesize,width,height,cat_id';
    42 $query.= ' from '.PREFIX_TABLE.'images';
     42$query.= ' FROM '.PREFIX_TABLE.'images';
    4343$query.= $page['where'];
    44 $query.= ' and id = '.$_GET['image_id'];
     44$query.= ' AND id = '.$_GET['image_id'];
    4545$query.= $conf['order_by'];
    4646$query.= ';';
     
    6060$page['cat_id']         = $row['cat_id'];
    6161// retrieving the number of the picture in its category (in order)
    62 $query = 'select id';
    63 $query.= ' from '.PREFIX_TABLE.'images';
     62$query = 'SELECT id';
     63$query.= ' FROM '.PREFIX_TABLE.'images';
    6464$query.= $page['where'];
    6565$query.= $conf['order_by'];
     
    7979  {
    8080    // verify if the picture is already in the favorite of the user
    81     $query = 'select count(*) as nb_fav';
    82     $query.= ' from '.PREFIX_TABLE.'favorites';
    83     $query.= ' where image_id = '.$page['id'];
    84     $query.= ' and user_id = '.$user['id'];
     81    $query = 'SELECT COUNT(*) AS nb_fav';
     82    $query.= ' FROM '.PREFIX_TABLE.'favorites';
     83    $query.= ' WHERE image_id = '.$page['id'];
     84    $query.= ' AND user_id = '.$user['id'];
    8585    $query.= ';';
    8686    $result = mysql_query( $query );
     
    8888    if ( $row['nb_fav'] == 0 )
    8989    {
    90       $query = 'insert into '.PREFIX_TABLE.'favorites';
    91       $query.= ' (image_id,user_id) values';
     90      $query = 'INSERT INTO '.PREFIX_TABLE.'favorites';
     91      $query.= ' (image_id,user_id) VALUES';
    9292      $query.= ' ('.$page['id'].','.$user['id'].')';
    9393      $query.= ';';
     
    9797  if ( $_GET['add_fav'] == 0 )
    9898  {
    99     $query = 'delete from '.PREFIX_TABLE.'favorites';
    100     $query.= ' where user_id = '.$user['id'];
    101     $query.= ' and image_id = '.$page['id'];
     99    $query = 'DELETE FROM '.PREFIX_TABLE.'favorites';
     100    $query.= ' WHERE user_id = '.$user['id'];
     101    $query.= ' AND image_id = '.$page['id'];
    102102    $query.= ';';
    103103    $result = mysql_query( $query );
     
    121121      $page['num'] = 0;
    122122    }
    123     $query = 'select id';
    124     $query.= ' from '.PREFIX_TABLE.'images';
     123    $query = 'SELECT id';
     124    $query.= ' FROM '.PREFIX_TABLE.'images';
    125125    $query.= $page['where'];
    126126    $query.= $conf['order_by'];
    127     $query.= ' limit '.$page['num'].',1';
     127    $query.= ' LIMIT '.$page['num'].',1';
    128128    $query.= ';';
    129129    $result = mysql_query( $query );
     
    144144//----------------------------------------------------- template initialization
    145145$vtp = new VTemplate;
    146 $handle = $vtp->Open( './template/default/picture.vtp' );
    147 // language
    148 $vtp->setGlobalVar( $handle, 'back',             $lang['back'] );
    149 $vtp->setGlobalVar( $handle, 'submit',           $lang['submit'] );
    150 $vtp->setGlobalVar( $handle, 'comments_title',   $lang['comments_title'] );
    151 $vtp->setGlobalVar( $handle, 'comments_del',     $lang['comments_del'] );
    152 $vtp->setGlobalVar( $handle, 'delete',           $lang['delete'] );
    153 $vtp->setGlobalVar( $handle, 'comments_add',     $lang['comments_add'] );
    154 $vtp->setGlobalVar( $handle, 'author',           $lang['author'] );
    155 // user
    156 $vtp->setGlobalVar( $handle, 'page_style',       $user['style'] );
    157 $vtp->setGlobalVar( $handle, 'text_color',       $user['couleur_text'] );
    158 // structure
    159 $vtp->setGlobalVar( $handle, 'frame_start',      get_frame_start() );
    160 $vtp->setGlobalVar( $handle, 'frame_begin',      get_frame_begin() );
    161 $vtp->setGlobalVar( $handle, 'frame_end',        get_frame_end() );
     146$handle = $vtp->Open( './template/'.$user['template'].'/picture.vtp' );
     147initialize_template();
     148
     149$tpl = array( 'back','submit','comments_title','comments_del','delete',
     150              'comments_add','author' );
     151templatize_array( $tpl, 'lang', $handle );
     152$vtp->setGlobalVar( $handle, 'text_color', $user['couleur_text'] );
    162153//------------------------------------------------------------------ page title
    163 if ( $page['name'] != "" )
     154if ( $page['name'] != '' )
    164155{
    165156  $vtp->setGlobalVar( $handle, 'page_title', $page['name'] );
     
    173164{
    174165  $prev = $page['num'] - 1;
    175   $query = 'select id,name,file,tn_ext,cat_id';
    176   $query.= ' from '.PREFIX_TABLE.'images';
     166  $query = 'SELECT id,name,file,tn_ext,cat_id';
     167  $query.= ' FROM '.PREFIX_TABLE.'images';
    177168  $query.= $page['where'];
    178169  $query.= $conf['order_by'];
    179   $query.= ' limit '.$prev.',1';
     170  $query.= ' LIMIT '.$prev.',1';
    180171  $query.= ';';
    181172  $result = mysql_query( $query );
     
    198189  $prev_title = $lang['previous_image'].' : ';
    199190  $alt_thumbnaill = '';
    200   if ( $row['name'] != "" )
    201   {
    202     $alt_thumbnail = $row['name'];
    203   }
    204   else
    205   {
    206     $alt_thumbnail = $file;
    207   }
     191  if ( $row['name'] != '' ) $alt_thumbnail = $row['name'];
     192  else                      $alt_thumbnail = $file;
    208193  $prev_title.= $alt_thumbnail;
    209194 
     
    321306  $vtp->addSession( $handle, 'info_line' );
    322307  $vtp->setVar( $handle, 'info_line.name', $lang['creation_date'].' : ' );
    323   $tab_date = explode( '-', $page['date_creation'] );
     308  list( $year,$month,$day ) = explode( '-', $page['date_creation'] );
    324309  $vtp->setVar( $handle, 'info_line.content',
    325                 $tab_date[2].'/'.$tab_date[1].'/'.$tab_date[0] );
     310                $day.'/'.$month.'/'.$year );
    326311  $vtp->closeSession( $handle, 'info_line' );
    327312}
     
    329314$vtp->addSession( $handle, 'info_line' );
    330315$vtp->setVar( $handle, 'info_line.name', $lang['registration_date'].' : ' );
    331 $tab_date = explode( '-', $page['date_available'] );
     316list( $year,$month,$day ) = explode( '-', $page['date_available'] );
    332317$vtp->setVar( $handle, 'info_line.content',
    333               $tab_date[2].'/'.$tab_date[1].'/'.$tab_date[0] );
     318              $day.'/'.$month.'/'.$year );
    334319$vtp->closeSession( $handle, 'info_line' );
    335320// size in pixels
    336321$vtp->addSession( $handle, 'info_line' );
    337322$vtp->setVar( $handle, 'info_line.name', $lang['size'].' : ' );
    338 if ( $original_width != $final_width || $original_height != $final_height )
     323if ( $original_width != $final_width or $original_height != $final_height )
    339324{
    340325  $content = '[ <a href="'.$lien_image.'" title="'.$lang['true_size'].'">';
     
    380365$vtp->closeSession( $handle, 'info_line' );
    381366//------------------------------------------------------- favorite manipulation
    382 if ( $page['cat'] != 'fav' && !$user['is_the_guest'] )
     367if ( $page['cat'] != 'fav' and !$user['is_the_guest'] )
    383368{
    384369  $url = './picture.php?cat='.$page['cat'].'&amp;image_id='.$page['id'];
     
    442427
    443428  $file = substr ( $row['file'], 0, strrpos ( $row['file'], ".") );
    444   $lien_thumbnail = $cat_directory."thumbnail/";
     429  $lien_thumbnail = $cat_directory.'thumbnail/';
    445430  $lien_thumbnail.= $conf['prefix_thumbnail'].$file.".".$row['tn_ext'];
    446431 
     
    481466  if ( isset( $_POST['content'] ) && $_POST['content'] != '' )
    482467  {
    483     $author = $user['pseudo'];
    484     if ( $_POST['author'] != "" )
     468    $author = $user['username'];
     469    if ( $_POST['author'] != '' )
    485470    {
    486471      $author = $_POST['author'];
    487472    }
    488     $query = 'insert into '.PREFIX_TABLE.'comments';
    489     $query.= ' (author,date,image_id,content) values';
     473    $query = 'INSERT INTO '.PREFIX_TABLE.'comments';
     474    $query.= ' (author,date,image_id,content) VALUES';
    490475    $query.= " ('".$author."',".time().",".$page['id'];
    491476    $query.= ",'".htmlspecialchars( $_POST['content'], ENT_QUOTES)."');";
     
    497482       && $user['status'] == 'admin' )
    498483  {
    499     $query = 'delete from '.PREFIX_TABLE.'comments';
    500     $query.= ' where id = '.$_GET['del'].';';
     484    $query = 'DELETE FROM '.PREFIX_TABLE.'comments';
     485    $query.= ' WHERE id = '.$_GET['del'].';';
    501486    mysql_query( $query );
    502487  }
    503488  // number of comment for this picture
    504   $query = 'select count(*) as nb_comments';
    505   $query.= ' from '.PREFIX_TABLE.'comments';
    506   $query.= ' where image_id = '.$page['id'].';';
     489  $query = 'SELECT COUNT(*) AS nb_comments';
     490  $query.= ' FROM '.PREFIX_TABLE.'comments';
     491  $query.= ' WHERE image_id = '.$page['id'].';';
    507492  $row = mysql_fetch_array( mysql_query( $query ) );
    508493  $page['nb_comments'] = $row['nb_comments'];
     
    515500  }
    516501  if( !isset( $_GET['start'] )
    517       || !is_numeric( $_GET['start'] )
    518       || ( is_numeric( $_GET['start'] ) && $_GET['start'] < 0 ) )
     502      or !is_numeric( $_GET['start'] )
     503      or ( is_numeric( $_GET['start'] ) and $_GET['start'] < 0 ) )
    519504  {
    520505    $page['start'] = 0;
     
    532517  $vtp->setGlobalVar( $handle, 'nb_comments', $page['nb_comments'] );
    533518
    534   $query = 'select id,author,date,image_id,content';
    535   $query.= ' from '.PREFIX_TABLE.'comments';
    536   $query.= ' where image_id = '.$page['id'];
    537   $query.= ' order by date asc';
    538   $query.= ' limit '.$page['start'].', '.$conf['nb_comment_page'].';';
     519  $query = 'SELECT id,author,date,image_id,content';
     520  $query.= ' FROM '.PREFIX_TABLE.'comments';
     521  $query.= ' WHERE image_id = '.$page['id'];
     522  $query.= ' ORDER BY date ASC';
     523  $query.= ' LIMIT '.$page['start'].', '.$conf['nb_comment_page'].';';
    539524  $result = mysql_query( $query );
    540525               
     
    581566$code = $vtp->Display( $handle, 0 );
    582567echo $code;
    583 //------------------------------------------------------------ log informations
    584 $query = 'insert into '.PREFIX_TABLE.'history';
    585 $query.= ' (date,login,IP,page,titre,categorie) values';
    586 $query.= " (".time().", '".$user['pseudo']."','".$_SERVER['REMOTE_ADDR']."'";
    587 $query.= ",'picture','".$page['file']."','".$intitule_cat."');";
    588 @mysql_query( $query );
    589568?>
  • trunk/register.php

    r2 r21  
    1717
    1818//----------------------------------------------------------- personnal include
    19 include_once( "./include/init.inc.php" );
     19include_once( './include/init.inc.php' );
    2020//-------------------------------------------------- access authorization check
    21 if ( $conf['acces'] == "restreint" )
     21if ( $conf['access'] == "restricted" )
    2222{
    2323  echo $lang['only_members'];
  • trunk/template/default/admin/user_modify.vtp

    r9 r21  
    3535          <tr>
    3636            <td>{#new} {#password}<input type="checkbox" name="use_new_pwd" value="1" /></td>
    37             <td><input type="text" name="password" value="{#user:password}" /></td>
     37            <td><input type="text" name="password" value="" /></td>
    3838          </tr>
    3939          <tr>
     
    4848                <option value="{#value}"{#selected}>{#option}</option>
    4949                <!--/VTP_status_option-->
     50              </select>
     51            </td>
     52          </tr>
     53          <!--VTP_groups-->
     54          <tr>
     55            <td valign="top">{#menu_groups}</td>
     56            <td>
     57              <table>
     58                <!--VTP_group-->
     59                <tr>
     60                  <td>{#name}</td>
     61                  <td><input type="checkbox" name="dissociate-{#dissociate_id}" value="1" /> {#dissociate}</td>
     62                </tr>
     63                <!--/VTP_group-->
     64              </table>
     65            </td>
     66          </tr>
     67          <!--/VTP_groups-->
     68          <tr>
     69            <td>{#adduser_associate}</td>
     70            <td>
     71              <select name="associate">
     72                <!--VTP_associate_group-->
     73                <option value="{#value}">{#option}</option>
     74                <!--/VTP_associate_group-->
    5075              </select>
    5176            </td>
  • trunk/template/default/picture.vtp

    r2 r21  
    11<html>
    22  <head>
    3     {#page_style}
     3    {#style}
    44    <!-- Specific style to picture.php-->
    55    <style type="text/css">
     
    4545  </head>
    4646  <body>
     47    {#header}
    4748    <table style="width:100%;height:100%;">
    4849      <tr align="center" valign="middle">
     
    163164      <!--/VTP_comments-->
    164165    </table>
     166    {#footer}
    165167  </body>
    166168</html>
Note: See TracChangeset for help on using the changeset viewer.