Changeset 2340


Ignore:
Timestamp:
May 15, 2008, 2:09:31 AM (16 years ago)
Author:
rvelices
Message:
  • admin multi view plugin allows to view the gallery as any user (not only guest/admin)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/admin_multi_view/controller.php

    r2223 r2340  
    2727$refresh_main = false;
    2828
    29 if ( isset($_GET['view_guest']) )
    30 {
    31   pwg_set_session_var( 'multiview_as', $conf['guest_id'] );
    32   $refresh_main = true;
    33 }
    34 elseif ( isset($_GET['view_admin']) )
    35 {
    36   pwg_unset_session_var('multiview_as');
    37   $refresh_main = true;
    38 }
    39 $view_as = pwg_get_session_var( 'multiview_as', 0 );
    40 
     29if ( isset($_GET['view_as']) )
     30{
     31  if ( is_adviser() and $user['id']!=$_GET['view_as'] and $conf['guest_id']!=$_GET['view_as'])
     32    die('security error');
     33  pwg_set_session_var( 'multiview_as', (int)$_GET['view_as'] );
     34  // user change resets theme/lang
     35  pwg_unset_session_var( 'multiview_theme' );
     36  pwg_unset_session_var( 'multiview_lang' );
     37  $refresh_main = true;
     38}
     39if (pwg_get_session_var( 'multiview_as', $user['id']) != $user['id'] )
     40  $view_as_user = build_user( pwg_get_session_var( 'multiview_as',0), false);
     41else
     42  $view_as_user = $user;
    4143
    4244if ( isset($_GET['theme']) )
     
    8183
    8284$my_url = get_root_url().'plugins/'.basename(dirname(__FILE__)).'/'.basename(__FILE__);
     85
     86// +-----------------------------------------------------------------------+
     87// | users                                                                 |
     88$query = '
     89SELECT '.$conf['user_fields']['id'].' AS id,'.$conf['user_fields']['username'].' AS username
     90FROM '.USERS_TABLE;
     91if (is_adviser())
     92{
     93  $query .='
     94  WHERE '.$conf['user_fields']['id']. ' IN ('.$user['id'].','.$conf['guest_id'].')
     95';
     96}
     97$query .='
     98  ORDER BY CONVERT('.$conf['user_fields']['username'].',CHAR)
     99;';
     100$user_map = simple_hash_from_query($query, 'id', 'username');
     101
     102$users_html = '<select onchange="document.location = this.options[this.selectedIndex].value;">';
     103foreach( $user_map as $id=>$username)
     104{
     105  $selected = ($id==$view_as_user['id']) ? 'selected="selected"' : '';
     106  $users_html .=
     107    '<option value="'
     108    .$my_url.'?view_as='.$id
     109    .'" '.$selected.'>'
     110    .$username
     111    .'</option>';
     112}
     113$users_html.= '</select>';
     114
     115
     116// +-----------------------------------------------------------------------+
     117// | templates                                                             |
    83118$my_template = '';
    84 
    85 $themes_html='Theme: <select onchange="document.location = this.options[this.selectedIndex].value;">';
     119$themes_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
    86120foreach (get_pwg_themes() as $pwg_template)
    87121{
    88   $selected = $pwg_template == pwg_get_session_var( 'multiview_theme', $user['template'].'/'.$user['theme'] ) ? 'selected="selected"' : '';
    89   $my_template = $selected == '' ? $my_template : $user['template'].'/theme/'.$user['theme'];
     122  $selected = $pwg_template == pwg_get_session_var( 'multiview_theme', $view_as_user['template'].'/'.$view_as_user['theme'] ) ? 'selected="selected"' : '';
     123  $my_template = $selected == '' ? $my_template : $view_as_user['template'].'/theme/'.$view_as_user['theme'];
    90124  $themes_html .=
    91125    '<option value="'
     
    97131$themes_html .= '</select>';
    98132
    99 $lang_html='Language: <select onchange="document.location = this.options[this.selectedIndex].value;">';
     133// +-----------------------------------------------------------------------+
     134// | language                                                              |
     135$lang_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
    100136foreach (get_languages() as $language_code => $language_name)
    101137{
    102   $selected = $language_code == pwg_get_session_var( 'multiview_lang', $user['language'] ) ? 'selected="selected"' : '';
     138  $selected = $language_code == pwg_get_session_var( 'multiview_lang', $view_as_user['language'] ) ? 'selected="selected"' : '';
    103139  $lang_html .=
    104140    '<option value="'
     
    110146$lang_html .= '</select>';
    111147
     148// +-----------------------------------------------------------------------+
     149// | show queries                                                          |
    112150$show_queries_html='';
    113151if (!$conf['show_queries'])
    114152{
    115   $show_queries_html = '<br/>';
    116153  if ( !pwg_get_session_var( 'multiview_show_queries', 0 ) )
    117154    $show_queries_html.='<a href="'.$my_url.'?show_queries=1">Show SQL queries</a>';
     
    120157}
    121158
     159// +-----------------------------------------------------------------------+
     160// | debug language                                                        |
    122161$debug_l10n_html='';
    123162if (!$conf['debug_l10n'])
    124163{
    125   $debug_l10n_html = '<br/>';
    126164  if ( !pwg_get_session_var( 'multiview_debug_l10n', 0 ) )
    127165    $debug_l10n_html.='<a href="'.$my_url.'?debug_l10n=1">Debug language</a>';
     
    130168}
    131169
     170// +-----------------------------------------------------------------------+
     171// | debug template                                                        |
    132172$debug_template_html='';
    133173if (!$conf['debug_template'])
    134174{
    135   $debug_template_html = '<br/>';
    136175  if ( !pwg_get_session_var( 'multiview_debug_template', 0 ) )
    137176    $debug_template_html.='<a href="'.$my_url.'?debug_template=1">Debug template</a>';
     
    163202</script>
    164203
    165 View as:
    166 <?php
    167   if ($view_as)
    168     echo '<a href="'.$my_url.'?view_admin">admin</a>';
    169   else
    170     echo '<a href="'.$my_url.'?view_guest">guest</a>';
    171 ?>
    172 
    173 <br />
    174 <?php echo $themes_html; ?>
    175 
    176 <br />
    177 <?php echo $lang_html; ?>
    178 
    179 <?php echo $show_queries_html; ?>
    180 <?php echo $debug_l10n_html; ?>
    181 <?php echo $debug_template_html; ?>
     204<table>
     205<tr><td>User</td><td><?php echo $users_html; ?></td></tr>
     206
     207<tr><td>Theme</td><td><?php echo $themes_html; ?></td></tr>
     208
     209<tr><td>Lang</td><td><?php echo $lang_html; ?></td></tr>
     210</table>
     211<?php echo implode( "<br/>\n", array($show_queries_html, $debug_l10n_html, $debug_template_html) ); ?>
    182212
    183213<script type="text/javascript">
Note: See TracChangeset for help on using the changeset viewer.