source: tags/release-1_7_2/plugins/admin_multi_view/controller.php @ 11342

Last change on this file since 11342 was 2341, checked in by rvelices, 16 years ago
  • admin multi view plugin allows to view the gallery as any user (not only guest/admin)
  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 5.8 KB
Line 
1<?php
2define('MULTIVIEW_CONTROLLER', 1);
3define('PHPWG_ROOT_PATH','../../');
4include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
5
6if (!is_admin() or !function_exists('multiview_user_init') )
7{
8  pwg_unset_session_var( 'multiview_as' );
9  pwg_unset_session_var( 'multiview_theme' );
10  pwg_unset_session_var( 'multiview_lang' );
11  pwg_unset_session_var( 'multiview_show_queries' );
12  pwg_unset_session_var( 'multiview_debug_l10n' );
13?>
14
15<script type="text/javascript">
16  window.close();
17</script>
18<?php
19  exit();
20}
21
22$refresh_main = false;
23
24if ( isset($_GET['view_as']) )
25{
26  if ( is_adviser() and $user['id']!=$_GET['view_as'] and $conf['guest_id']!=$_GET['view_as'])
27    die('security error');
28  pwg_set_session_var( 'multiview_as', (int)$_GET['view_as'] );
29  // user change resets theme/lang
30  pwg_unset_session_var( 'multiview_theme' );
31  pwg_unset_session_var( 'multiview_lang' );
32  $refresh_main = true;
33}
34if (pwg_get_session_var( 'multiview_as', $user['id']) != $user['id'] )
35  $view_as_user = build_user( pwg_get_session_var( 'multiview_as',0), false);
36else
37  $view_as_user = $user;
38
39if ( isset($_GET['theme']) )
40{
41  pwg_set_session_var( 'multiview_theme', $_GET['theme'] );
42  $refresh_main = true;
43}
44
45if ( isset($_GET['lang']) )
46{
47  pwg_set_session_var( 'multiview_lang', $_GET['lang'] );
48  $refresh_main = true;
49}
50
51if ( isset($_GET['show_queries']) )
52{
53  if ( $_GET['show_queries']> 0 )
54    pwg_set_session_var( 'multiview_show_queries', 1 );
55  else
56    pwg_unset_session_var( 'multiview_show_queries' );
57  $refresh_main = true;
58}
59
60if ( isset($_GET['debug_l10n']) )
61{
62  if ( $_GET['debug_l10n']>0 )
63    pwg_set_session_var( 'multiview_debug_l10n', 1 );
64  else
65    pwg_unset_session_var( 'multiview_debug_l10n' );
66  $refresh_main = true;
67}
68
69
70$my_url = get_root_url().'plugins/'.basename(dirname(__FILE__)).'/'.basename(__FILE__);
71
72// +-----------------------------------------------------------------------+
73// | users                                                                 |
74$query = '
75SELECT '.$conf['user_fields']['id'].' AS id,'.$conf['user_fields']['username'].' AS username
76FROM '.USERS_TABLE;
77if (is_adviser())
78{
79  $query .='
80  WHERE '.$conf['user_fields']['id']. ' IN ('.$user['id'].','.$conf['guest_id'].')
81';
82}
83$query .='
84  ORDER BY CONVERT('.$conf['user_fields']['username'].',CHAR)
85;';
86$user_map = simple_hash_from_query($query, 'id', 'username');
87
88$users_html = '<select onchange="document.location = this.options[this.selectedIndex].value;">';
89foreach( $user_map as $id=>$username)
90{
91  $selected = ($id==$view_as_user['id']) ? 'selected="selected"' : '';
92  $users_html .=
93    '<option value="'
94    .$my_url.'?view_as='.$id
95    .'" '.$selected.'>'
96    .$username
97    .'</option>';
98}
99$users_html.= '</select>';
100
101
102// +-----------------------------------------------------------------------+
103// | templates                                                             |
104$my_template = '';
105$themes_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
106foreach (get_pwg_themes() as $pwg_template)
107{
108  $selected = $pwg_template == pwg_get_session_var( 'multiview_theme', $view_as_user['template'].'/'.$view_as_user['theme'] ) ? 'selected="selected"' : '';
109  $my_template = $selected == '' ? $my_template : $view_as_user['template'].'/theme/'.$view_as_user['theme'];
110  $themes_html .=
111    '<option value="'
112    .$my_url.'?theme='.$pwg_template
113    .'" '.$selected.'>'
114    .$pwg_template
115    .'</option>';
116}
117$themes_html .= '</select>';
118
119// +-----------------------------------------------------------------------+
120// | language                                                              |
121$lang_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
122foreach (get_languages() as $language_code => $language_name)
123{
124  $selected = $language_code == pwg_get_session_var( 'multiview_lang', $view_as_user['language'] ) ? 'selected="selected"' : '';
125  $lang_html .=
126    '<option value="'
127    .$my_url.'?lang='.$language_code
128    .'" '.$selected.'>'
129    .$language_name
130    .'</option>';
131}
132$lang_html .= '</select>';
133
134// +-----------------------------------------------------------------------+
135// | show queries                                                          |
136$show_queries_html='';
137if (!$conf['show_queries'])
138{
139  if ( !pwg_get_session_var( 'multiview_show_queries', 0 ) )
140    $show_queries_html.='<a href="'.$my_url.'?show_queries=1">Show SQL queries</a>';
141  else
142    $show_queries_html.='<a href="'.$my_url.'?show_queries=0">Hide SQL queries</a>';
143}
144
145// +-----------------------------------------------------------------------+
146// | debug language                                                        |
147$debug_l10n_html='';
148if (!$conf['debug_l10n'])
149{
150  if ( !pwg_get_session_var( 'multiview_debug_l10n', 0 ) )
151    $debug_l10n_html.='<a href="'.$my_url.'?debug_l10n=1">Debug language</a>';
152  else
153    $debug_l10n_html.='<a href="'.$my_url.'?debug_l10n=0">Revert debug language</a>';
154}
155
156?>
157<html>
158<head>
159<title>Controller</title>
160<?php
161// Controller will be displayed  with  the **real admin template** (without Any if it has been removed)
162if ( $my_template !== '') {
163  $my_template = get_root_url().'template/'.$my_template.'/theme.css';
164  echo '<link rel="stylesheet" type="text/css" href="' . $my_template .'">';
165}
166?>
167
168</head>
169<body>
170<div>
171<script type="text/javascript">
172if (window.opener==null) {
173  window.close();
174  document.write("<"+"h2>How did you get here ???<"+"/h2>");
175}
176</script>
177
178<table>
179<tr><td>User</td><td><?php echo $users_html; ?></td></tr>
180
181<tr><td>Theme</td><td><?php echo $themes_html; ?></td></tr>
182
183<tr><td>Lang</td><td><?php echo $lang_html; ?></td></tr>
184</table>
185<?php echo implode( "<br/>\n", array($show_queries_html, $debug_l10n_html) ); ?>
186
187<script type="text/javascript">
188<?php
189  if ($refresh_main) echo '
190window.opener.location = window.opener.location;';
191?>
192</script>
193</div>
194</body>
195</html>
Note: See TracBrowser for help on using the repository browser.