Dotclear

source: plugins/userPref/index.php @ 3421:34cfd92ec45a

Revision 3421:34cfd92ec45a, 6.4 KB checked in by franck <carnet.franck.paul@…>, 9 years ago (diff)

No more <![CDATA[ … ]]> but in rss2.xsl (only useful for XML document, as XHTML)

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_CONTEXT_ADMIN')) { return; }
13
14# Local navigation
15if (!empty($_POST['gp_nav'])) {
16     http::redirect($p_url.$_POST['gp_nav']);
17     exit;
18}
19if (!empty($_POST['lp_nav'])) {
20     http::redirect($p_url.$_POST['lp_nav']);
21     exit;
22}
23
24# Local prefs update
25if (!empty($_POST['s']) && is_array($_POST['s']))
26{
27     try
28     {
29          foreach ($_POST['s'] as $ws => $s) {
30               $core->auth->user_prefs->addWorkspace($ws);
31               foreach ($s as $k => $v) {
32                    if ($_POST['s_type'][$ws][$k] == 'array') {
33                         $v = json_decode($v,true);
34                    }
35                    $core->auth->user_prefs->$ws->put($k,$v);
36               }
37          }
38
39          dcPage::addSuccessNotice(__('Preferences successfully updated'));
40          http::redirect($p_url);
41     }
42     catch (Exception $e)
43     {
44          $core->error->add($e->getMessage());
45     }
46}
47
48# Global prefs update
49if (!empty($_POST['gs']) && is_array($_POST['gs']))
50{
51     try
52     {
53          foreach ($_POST['gs'] as $ws => $s) {
54               $core->auth->user_prefs->addWorkspace($ws);
55               foreach ($s as $k => $v) {
56                    if ($_POST['gs_type'][$ws][$k] == 'array') {
57                         $v = json_decode($v,true);
58                    }
59                    $core->auth->user_prefs->$ws->put($k,$v,null,null,true,true);
60               }
61          }
62
63          dcPage::addSuccessNotice(__('Preferences successfully updated'));
64          http::redirect($p_url.'&part=global');
65     }
66     catch (Exception $e)
67     {
68          $core->error->add($e->getMessage());
69     }
70}
71
72$part = !empty($_GET['part']) && $_GET['part'] == 'global' ? 'global' : 'local';
73
74function prefLine($id,$s,$ws,$field_name,$strong_label)
75{
76     if ($s['type'] == 'boolean') {
77          $field = form::combo(array($field_name.'['.$ws.']['.$id.']',$field_name.'_'.$ws.'_'.$id),
78          array(__('yes') => 1, __('no') => 0),$s['value'] ? 1 : 0);
79     } else {
80          if ($s['type'] == 'array') {
81               $field = form::field(array($field_name.'['.$ws.']['.$id.']',$field_name.'_'.$ws.'_'.$id),40,null,
82               html::escapeHTML(json_encode($s['value'])));
83          } else {
84               $field = form::field(array($field_name.'['.$ws.']['.$id.']',$field_name.'_'.$ws.'_'.$id),40,null,
85               html::escapeHTML($s['value']));
86          }
87     }
88     $type = form::hidden(array($field_name.'_type'.'['.$ws.']['.$id.']',$field_name.'_'.$ws.'_'.$id.'_type'),
89          html::escapeHTML($s['type']));
90
91     $slabel = $strong_label ? '<strong>%s</strong>' : '%s';
92
93     return
94     '<tr class="line">'.
95     '<td scope="row"><label for="'.$field_name.'_'.$ws.'_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
96     '<td>'.$field.'</td>'.
97     '<td>'.$s['type'].$type.'</td>'.
98     '<td>'.html::escapeHTML($s['label']).'</td>'.
99     '</tr>';
100}
101?>
102<html>
103<head>
104  <title>user:preferences</title>
105  <?php echo dcPage::jsPageTabs($part); ?>
106     <script type="text/javascript">
107     $(function() {
108          $("#gp_submit,#lp_submit").hide();
109          $('#part-local,#part-global').tabload(function() {
110               $('.multi-part.active select.navigation option:first').attr('selected',true);
111          });
112          $("#gp_nav").change(function() {
113               window.location = $("#gp_nav option:selected").val();
114          });
115          $("#lp_nav").change(function() {
116               window.location = $("#lp_nav option:selected").val();
117          });
118     });
119     </script>
120</head>
121
122<body>
123<?php
124echo dcPage::breadcrumb(
125     array(
126          __('System') => '',
127          html::escapeHTML($core->auth->userID()) => '',
128          __('user:preferences') => ''
129     )).
130     dcPage::notices();
131
132?>
133
134<div id="local" class="multi-part" title="<?php echo __('User preferences'); ?>">
135<h3 class="out-of-screen-if-js"><?php echo __('User preferences'); ?></h3>
136
137<?php
138$table_header = '<div class="table-outer"><table class="prefs" id="%s"><caption class="as_h3">%s</caption>'.
139'<thead>'.
140'<tr>'."\n".
141'  <th class="nowrap">'.__('Setting ID').'</th>'."\n".
142'  <th>'.__('Value').'</th>'."\n".
143'  <th>'.__('Type').'</th>'."\n".
144'  <th class="maximalx">'.__('Description').'</th>'."\n".
145'</tr>'."\n".
146'</thead>'."\n".
147'<tbody>';
148$table_footer = '</tbody></table></div>';
149
150$prefs = array();
151foreach ($core->auth->user_prefs->dumpWorkspaces() as $ws => $workspace) {
152     foreach ($workspace->dumpPrefs() as $k => $v) {
153          $prefs[$ws][$k] = $v;
154     }
155}
156ksort($prefs);
157if (count($prefs) > 0) {
158     $ws_combo = array();
159     foreach ($prefs as $ws => $s) {
160          $ws_combo[$ws] = '#l_'.$ws;
161     }
162     echo
163          '<form action="'.$core->adminurl->get('admin.plugin').'" method="post">'.
164          '<p class="anchor-nav">'.
165          '<label for="lp_nav" class="classic">'.__('Goto:').'</label> '.form::combo('lp_nav',$ws_combo,'','navigation').
166          ' <input type="submit" value="'.__('Ok').'" id="lp_submit" />'.
167          '<input type="hidden" name="p" value="userPref" />'.
168          $core->formNonce().'</p></form>';
169}
170?>
171
172<form action="<?php echo $core->adminurl->get('admin.plugin'); ?>" method="post">
173
174<?php
175foreach ($prefs as $ws => $s)
176{
177     ksort($s);
178     echo sprintf($table_header,'l_'.$ws,$ws);
179     foreach ($s as $k => $v)
180     {
181          echo prefLine($k,$v,$ws,'s',!$v['global']);
182     }
183     echo $table_footer;
184}
185?>
186
187<p><input type="submit" value="<?php echo __('Save'); ?>" />
188<input type="hidden" name="p" value="userPref" />
189<?php echo $core->formNonce(); ?></p>
190</form>
191</div>
192
193<div id="global" class="multi-part" title="<?php echo __('Global preferences'); ?>">
194<h3 class="out-of-screen-if-js"><?php echo __('Global preferences'); ?></h3>
195
196<?php
197$prefs = array();
198
199foreach ($core->auth->user_prefs->dumpWorkspaces() as $ws => $workspace) {
200     foreach ($workspace->dumpGlobalPrefs() as $k => $v) {
201          $prefs[$ws][$k] = $v;
202     }
203}
204
205ksort($prefs);
206
207if (count($prefs) > 0) {
208     $ws_combo = array();
209     foreach ($prefs as $ws => $s) {
210          $ws_combo[$ws] = '#g_'.$ws;
211     }
212     echo
213          '<form action="'.$core->adminurl->get('admin.plugin').'" method="post">'.
214          '<p class="anchor-nav">'.
215          '<label for="gp_nav" class="classic">'.__('Goto:').'</label> '.form::combo('gp_nav',$ws_combo,'','navigation').
216          ' <input type="submit" value="'.__('Ok').'" id="gp_submit" />'.
217          '<input type="hidden" name="p" value="userPref" />'.
218          $core->formNonce().'</p></form>';
219}
220?>
221
222<form action="<?php echo $core->adminurl->get('admin.plugin'); ?>" method="post">
223
224<?php
225foreach ($prefs as $ws => $s)
226{
227     ksort($s);
228     echo sprintf($table_header,'g_'.$ws,$ws);
229     foreach ($s as $k => $v)
230     {
231          echo prefLine($k,$v,$ws,'gs',false);
232     }
233     echo $table_footer;
234}
235?>
236
237<p><input type="submit" value="<?php echo __('Save'); ?>" />
238<input type="hidden" name="p" value="userPref" />
239<?php echo $core->formNonce(); ?></p>
240</form>
241</div>
242
243<?php dcPage::helpBlock('userPref'); ?>
244
245</body>
246</html>
Note: See TracBrowser for help on using the repository browser.

Sites map