source: trunk/plugins/admin_multi_view/controller.php @ 3282

Last change on this file since 3282 was 3282, checked in by plg, 15 years ago

change: according to topic:15067, svn:keywords property was removed

  • Property svn:eol-style set to LF
File size: 6.8 KB
RevLine 
[1821]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' );
[2016]11  pwg_unset_session_var( 'multiview_show_queries' );
12  pwg_unset_session_var( 'multiview_debug_l10n' );
[2223]13  pwg_unset_session_var( 'multiview_debug_template' );
[1821]14?>
[2073]15
[1821]16<script type="text/javascript">
17  window.close();
18</script>
19<?php
20  exit();
21}
[2073]22?>
23<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
24"http://www.w3.org/TR/html4/strict.dtd">
25<?php
[1821]26
27$refresh_main = false;
28
[2340]29if ( isset($_GET['view_as']) )
[1821]30{
[2340]31  if ( is_adviser() and $user['id']!=$_GET['view_as'] and $conf['guest_id']!=$_GET['view_as'])
32    die('security error');
[2490]33  if ($user['id']===$_GET['view_as'])
34    pwg_unset_session_var( 'multiview_as' );
35  else
36    pwg_set_session_var( 'multiview_as', (int)$_GET['view_as'] );
[2340]37  // user change resets theme/lang
38  pwg_unset_session_var( 'multiview_theme' );
39  pwg_unset_session_var( 'multiview_lang' );
[1821]40  $refresh_main = true;
41}
[2340]42if (pwg_get_session_var( 'multiview_as', $user['id']) != $user['id'] )
43  $view_as_user = build_user( pwg_get_session_var( 'multiview_as',0), false);
44else
45  $view_as_user = $user;
[1821]46
47if ( isset($_GET['theme']) )
48{
49  pwg_set_session_var( 'multiview_theme', $_GET['theme'] );
50  $refresh_main = true;
51}
52
53if ( isset($_GET['lang']) )
54{
55  pwg_set_session_var( 'multiview_lang', $_GET['lang'] );
56  $refresh_main = true;
57}
58
[2016]59if ( isset($_GET['show_queries']) )
60{
61  if ( $_GET['show_queries']> 0 )
62    pwg_set_session_var( 'multiview_show_queries', 1 );
63  else
64    pwg_unset_session_var( 'multiview_show_queries' );
65  $refresh_main = true;
66}
67
68if ( isset($_GET['debug_l10n']) )
69{
70  if ( $_GET['debug_l10n']>0 )
71    pwg_set_session_var( 'multiview_debug_l10n', 1 );
72  else
73    pwg_unset_session_var( 'multiview_debug_l10n' );
74  $refresh_main = true;
75}
76
[2223]77
78if ( isset($_GET['debug_template']) )
79{
80  if ( $_GET['debug_template']>0 )
81    pwg_set_session_var( 'multiview_debug_template', 1 );
82  else
83    pwg_unset_session_var( 'multiview_debug_template' );
84  $refresh_main = true;
85}
86
[1821]87$my_url = get_root_url().'plugins/'.basename(dirname(__FILE__)).'/'.basename(__FILE__);
[2340]88
89// +-----------------------------------------------------------------------+
90// | users                                                                 |
91$query = '
92SELECT '.$conf['user_fields']['id'].' AS id,'.$conf['user_fields']['username'].' AS username
93FROM '.USERS_TABLE;
94if (is_adviser())
95{
96  $query .='
97  WHERE '.$conf['user_fields']['id']. ' IN ('.$user['id'].','.$conf['guest_id'].')
98';
99}
100$query .='
101  ORDER BY CONVERT('.$conf['user_fields']['username'].',CHAR)
102;';
103$user_map = simple_hash_from_query($query, 'id', 'username');
104
105$users_html = '<select onchange="document.location = this.options[this.selectedIndex].value;">';
106foreach( $user_map as $id=>$username)
107{
108  $selected = ($id==$view_as_user['id']) ? 'selected="selected"' : '';
109  $users_html .=
110    '<option value="'
111    .$my_url.'?view_as='.$id
112    .'" '.$selected.'>'
113    .$username
114    .'</option>';
115}
116$users_html.= '</select>';
117
118
119// +-----------------------------------------------------------------------+
120// | templates                                                             |
[2073]121$my_template = '';
[2340]122$themes_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
[1821]123foreach (get_pwg_themes() as $pwg_template)
124{
[2340]125  $selected = $pwg_template == pwg_get_session_var( 'multiview_theme', $view_as_user['template'].'/'.$view_as_user['theme'] ) ? 'selected="selected"' : '';
126  $my_template = $selected == '' ? $my_template : $view_as_user['template'].'/theme/'.$view_as_user['theme'];
[1821]127  $themes_html .=
128    '<option value="'
129    .$my_url.'?theme='.$pwg_template
130    .'" '.$selected.'>'
131    .$pwg_template
132    .'</option>';
133}
134$themes_html .= '</select>';
135
[2340]136// +-----------------------------------------------------------------------+
137// | language                                                              |
138$lang_html='<select onchange="document.location = this.options[this.selectedIndex].value;">';
[1821]139foreach (get_languages() as $language_code => $language_name)
140{
[2340]141  $selected = $language_code == pwg_get_session_var( 'multiview_lang', $view_as_user['language'] ) ? 'selected="selected"' : '';
[1821]142  $lang_html .=
143    '<option value="'
144    .$my_url.'?lang='.$language_code
145    .'" '.$selected.'>'
146    .$language_name
147    .'</option>';
148}
149$lang_html .= '</select>';
[2016]150
[2340]151// +-----------------------------------------------------------------------+
152// | show queries                                                          |
[2016]153$show_queries_html='';
154if (!$conf['show_queries'])
155{
156  if ( !pwg_get_session_var( 'multiview_show_queries', 0 ) )
157    $show_queries_html.='<a href="'.$my_url.'?show_queries=1">Show SQL queries</a>';
158  else
159    $show_queries_html.='<a href="'.$my_url.'?show_queries=0">Hide SQL queries</a>';
160}
161
[2340]162// +-----------------------------------------------------------------------+
163// | debug language                                                        |
[2016]164$debug_l10n_html='';
[2223]165if (!$conf['debug_l10n'])
[2016]166{
167  if ( !pwg_get_session_var( 'multiview_debug_l10n', 0 ) )
168    $debug_l10n_html.='<a href="'.$my_url.'?debug_l10n=1">Debug language</a>';
169  else
170    $debug_l10n_html.='<a href="'.$my_url.'?debug_l10n=0">Revert debug language</a>';
171}
[2223]172
[2340]173// +-----------------------------------------------------------------------+
174// | debug template                                                        |
[2223]175$debug_template_html='';
176if (!$conf['debug_template'])
177{
178  if ( !pwg_get_session_var( 'multiview_debug_template', 0 ) )
179    $debug_template_html.='<a href="'.$my_url.'?debug_template=1">Debug template</a>';
180  else
181    $debug_template_html.='<a href="'.$my_url.'?debug_template=0">Revert debug template</a>';
182}
183
[1821]184?>
185<html>
186<head>
[2127]187<meta http-equiv="Content-Type" content="text/html; charset=<?php echo get_pwg_charset() ?>">
[1821]188<title>Controller</title>
[2127]189<?php
[2073]190// Controller will be displayed  with  the **real admin template** (without Any if it has been removed)
191if ( $my_template !== '') {
192  $my_template = get_root_url().'template/'.$my_template.'/theme.css';
193  echo '<link rel="stylesheet" type="text/css" href="' . $my_template .'">';
194}
195?>
196
[1821]197</head>
198<body>
[2073]199<div>
[1821]200<script type="text/javascript">
201if (window.opener==null) {
202  window.close();
[2073]203  document.write("<"+"h2>How did you get here ???<"+"/h2>");
[1821]204}
205</script>
206
[2340]207<table>
208<tr><td>User</td><td><?php echo $users_html; ?></td></tr>
[1821]209
[2340]210<tr><td>Theme</td><td><?php echo $themes_html; ?></td></tr>
[1821]211
[2340]212<tr><td>Lang</td><td><?php echo $lang_html; ?></td></tr>
213</table>
214<?php echo implode( "<br/>\n", array($show_queries_html, $debug_l10n_html, $debug_template_html) ); ?>
[1821]215
216<script type="text/javascript">
217<?php
218  if ($refresh_main) echo '
219window.opener.location = window.opener.location;';
220?>
221</script>
[2073]222</div>
[1821]223</body>
[1833]224</html>
Note: See TracBrowser for help on using the repository browser.