Dotclear

source: admin/preferences.php @ 745:62ea4039bdd3

Revision 745:62ea4039bdd3, 20.5 KB checked in by amalgame <philippe@…>, 14 years ago (diff)

added blog name in page title

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 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 -----------------------------------------
12
13require dirname(__FILE__).'/../inc/admin/prepend.php';
14
15dcPage::check('usage,contentadmin');
16
17$page_title = __('My preferences');
18
19$user_name = $core->auth->getInfo('user_name');
20$user_firstname = $core->auth->getInfo('user_firstname');
21$user_displayname = $core->auth->getInfo('user_displayname');
22$user_email = $core->auth->getInfo('user_email');
23$user_url = $core->auth->getInfo('user_url');
24$user_lang = $core->auth->getInfo('user_lang');
25$user_tz = $core->auth->getInfo('user_tz');
26$user_post_status = $core->auth->getInfo('user_post_status');
27
28$user_options = $core->auth->getOptions();
29
30$core->auth->user_prefs->addWorkspace('dashboard');
31$user_dm_doclinks = $core->auth->user_prefs->dashboard->doclinks;
32$user_dm_dcnews = $core->auth->user_prefs->dashboard->dcnews;
33$user_dm_quickentry = $core->auth->user_prefs->dashboard->quickentry;
34
35$core->auth->user_prefs->addWorkspace('accessibility');
36$user_acc_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
37
38$core->auth->user_prefs->addWorkspace('interface');
39$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
40if ($core->auth->isSuperAdmin()) {
41     $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
42}
43$user_ui_iconset = @$core->auth->user_prefs->interface->iconset;
44
45$default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'user-profile';
46
47if (!empty($_GET['append']) || !empty($_GET['removed']) || !empty($_GET['neworder']) || 
48     !empty($_GET['replaced']) || !empty($_POST['appendaction']) || !empty($_POST['removeaction'])) {
49     $default_tab = 'user-favorites';
50} elseif (!empty($_GET['updated'])) {
51     $default_tab = 'user-options';
52}
53if (($default_tab != 'user-profile') && ($default_tab != 'user-options') && ($default_tab != 'user-favorites')) {
54     $default_tab = 'user-profile';
55}
56
57foreach ($core->getFormaters() as $v) {
58     $formaters_combo[$v] = $v;
59}
60
61foreach ($core->blog->getAllPostStatus() as $k => $v) {
62     $status_combo[$v] = $k;
63}
64
65$iconsets_combo = array(__('Default') => '');
66$iconsets_root = dirname(__FILE__).'/images/iconset/';
67if (is_dir($iconsets_root) && is_readable($iconsets_root)) {
68     if (($d = @dir($iconsets_root)) !== false) {
69          while (($entry = $d->read()) !== false) {
70               if ($entry != '.' && $entry != '..' && is_dir($iconsets_root.'/'.$entry)) {
71                    $iconsets_combo[$entry] = $entry;
72               }
73          }
74     }
75}
76
77# Language codes
78$langs = l10n::getISOcodes(1,1);
79foreach ($langs as $k => $v) {
80     $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT.'/'.$v);
81     $lang_combo[] = new formSelectOption($k,$v,$lang_avail ? 'avail10n' : '');
82}
83
84# Add or update user
85if (isset($_POST['user_name']))
86{
87     try
88     {
89          $pwd_check = !empty($_POST['cur_pwd']) && $core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['cur_pwd']));
90         
91          if ($core->auth->allowPassChange() && !$pwd_check && $user_email != $_POST['user_email']) {
92               throw new Exception(__('If you want to change your email or password you must provide your current password.'));
93          }
94         
95          $cur = $core->con->openCursor($core->prefix.'user');
96         
97          $cur->user_name = $user_name = $_POST['user_name'];
98          $cur->user_firstname = $user_firstname = $_POST['user_firstname'];
99          $cur->user_displayname = $user_displayname = $_POST['user_displayname'];
100          $cur->user_email = $user_email = $_POST['user_email'];
101          $cur->user_url = $user_url = $_POST['user_url'];
102          $cur->user_lang = $user_lang = $_POST['user_lang'];
103          $cur->user_tz = $user_tz = $_POST['user_tz'];
104
105          $cur->user_options = new ArrayObject($user_options);
106         
107          if ($core->auth->allowPassChange() && !empty($_POST['new_pwd']))
108          {
109               if (!$pwd_check) {
110                    throw new Exception(__('If you want to change your email or password you must provide your current password.'));
111               }
112               
113               if ($_POST['new_pwd'] != $_POST['new_pwd_c']) {
114                    throw new Exception(__("Passwords don't match"));
115               }
116               
117               $cur->user_pwd = $_POST['new_pwd'];
118          }
119         
120          # --BEHAVIOR-- adminBeforeUserUpdate
121          $core->callBehavior('adminBeforeUserProfileUpdate',$cur,$core->auth->userID());
122         
123          # Udate user
124          $core->updUser($core->auth->userID(),$cur);
125         
126          # --BEHAVIOR-- adminAfterUserUpdate
127          $core->callBehavior('adminAfterUserProfileUpdate',$cur,$core->auth->userID());
128         
129          http::redirect('preferences.php?upd=1');
130     }
131     catch (Exception $e)
132     {
133          $core->error->add($e->getMessage());
134     }
135}
136
137# Update user options
138if (isset($_POST['user_post_format'])) 
139{
140     try
141     {
142          $cur = $core->con->openCursor($core->prefix.'user');
143         
144          $cur->user_name = $user_name;
145          $cur->user_firstname = $user_firstname;
146          $cur->user_displayname = $user_displayname;
147          $cur->user_email = $user_email;
148          $cur->user_url = $user_url;
149          $cur->user_lang = $user_lang;
150          $cur->user_tz = $user_tz;
151
152          $cur->user_post_status = $user_post_status = $_POST['user_post_status'];
153         
154          $user_options['edit_size'] = (integer) $_POST['user_edit_size'];
155          if ($user_options['edit_size'] < 1) {
156               $user_options['edit_size'] = 10;
157          }
158          $user_options['post_format'] = $_POST['user_post_format'];
159          $user_options['enable_wysiwyg'] = !empty($_POST['user_wysiwyg']);
160         
161          $cur->user_options = new ArrayObject($user_options);
162         
163          # --BEHAVIOR-- adminBeforeUserUpdate
164          $core->callBehavior('adminBeforeUserUpdate',$cur,$core->auth->userID());
165         
166          # Update user prefs
167          $core->auth->user_prefs->dashboard->put('doclinks',!empty($_POST['user_dm_doclinks']),'boolean');
168          $core->auth->user_prefs->dashboard->put('dcnews',!empty($_POST['user_dm_dcnews']),'boolean');
169          $core->auth->user_prefs->dashboard->put('quickentry',!empty($_POST['user_dm_quickentry']),'boolean');
170          $core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_acc_nodragdrop']),'boolean');
171          $core->auth->user_prefs->interface->put('enhanceduploader',!empty($_POST['user_ui_enhanceduploader']),'boolean');
172          if ($core->auth->isSuperAdmin()) {
173               # Applied to all users
174               $core->auth->user_prefs->interface->put('hide_std_favicon',!empty($_POST['user_ui_hide_std_favicon']),'boolean',null,true,true);
175          }
176          $core->auth->user_prefs->interface->put('iconset',(!empty($_POST['user_ui_iconset']) ? $_POST['user_ui_iconset'] : ''));
177         
178          # Udate user
179          $core->updUser($core->auth->userID(),$cur);
180         
181          # --BEHAVIOR-- adminAfterUserUpdate
182          $core->callBehavior('adminAfterUserUpdate',$cur,$core->auth->userID());
183         
184          http::redirect('preferences.php?updated=1');
185     }
186     catch (Exception $e)
187     {
188          $core->error->add($e->getMessage());
189     }
190}
191
192# Add selected favorites
193if (!empty($_POST['appendaction'])) 
194{
195     try {
196          if (empty($_POST['append'])) {
197               throw new Exception(__('No favorite selected'));
198          }
199
200          $ws = $core->auth->user_prefs->addWorkspace('favorites');
201          $user_favs = $ws->DumpLocalPrefs();
202          $count = count($user_favs);
203          foreach ($_POST['append'] as $k => $v)
204          {
205               try {
206                    $found = false;
207                    foreach ($user_favs as $f) {
208                         $f = unserialize($f['value']);
209                         if ($f['name'] == $v) {
210                              $found = true;
211                              break;
212                         }
213                    }
214                    if (!$found) {
215                         $uid = sprintf("u%03s",$count);
216                         $fav = array('name' => $_fav[$v][0],'title' => $_fav[$v][1],'url' => $_fav[$v][2],'small-icon' => $_fav[$v][3],
217                              'large-icon' => $_fav[$v][4],'permissions' => $_fav[$v][5],'id' => $_fav[$v][6],'class' => $_fav[$v][7]);
218                         $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
219                         $count++;
220                    }
221               } catch (Exception $e) {
222                    $core->error->add($e->getMessage());
223                    break;
224               }
225          }
226     
227          if (!$core->error->flag()) {
228               http::redirect('preferences.php?append=1');
229          }
230     } catch (Exception $e) {
231          $core->error->add($e->getMessage());
232     }
233}
234
235# Delete selected favorites
236if (!empty($_POST['removeaction']))
237{
238     try {
239          if (empty($_POST['remove'])) {
240               throw new Exception(__('No favorite selected'));
241          }
242         
243          $ws = $core->auth->user_prefs->addWorkspace('favorites');
244          foreach ($_POST['remove'] as $k => $v)
245          {
246               try {
247                    $core->auth->user_prefs->favorites->drop($v);
248               } catch (Exception $e) {
249                    $core->error->add($e->getMessage());
250                    break;
251               }
252          }
253          // Update pref_id values
254          try {
255               $user_favs = $ws->DumpLocalPrefs();
256               $core->auth->user_prefs->favorites->dropAll();
257               $count = 0;
258               foreach ($user_favs as $k => $v)
259               {
260                    $uid = sprintf("u%03s",$count);
261                    $f = unserialize($v['value']);
262                    $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
263                         'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
264                    $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
265                    $count++;
266               }
267          } catch (Exception $e) {
268               $core->error->add($e->getMessage());
269          }
270     
271          if (!$core->error->flag()) {
272               http::redirect('preferences.php?removed=1');
273          }
274     } catch (Exception $e) {
275          $core->error->add($e->getMessage());
276     }
277}
278
279# Order favs
280$order = array();
281if (empty($_POST['favs_order']) && !empty($_POST['order'])) {
282     $order = $_POST['order'];
283     asort($order);
284     $order = array_keys($order);
285} elseif (!empty($_POST['favs_order'])) {
286     $order = explode(',',$_POST['favs_order']);
287}
288
289if (!empty($_POST['saveorder']) && !empty($order))
290{
291     try {
292          $ws = $core->auth->user_prefs->addWorkspace('favorites');
293          $user_favs = $ws->DumpLocalPrefs();
294          $core->auth->user_prefs->favorites->dropAll();
295          $count = 0;
296          foreach ($order as $i => $k) {
297               $uid = sprintf("u%03s",$count);
298               $f = unserialize($user_favs[$k]['value']);
299               $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
300                    'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
301               $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string');
302               $count++;
303          }
304     } catch (Exception $e) {
305          $core->error->add($e->getMessage());
306     }
307
308     if (!$core->error->flag()) {
309          http::redirect('preferences.php?&neworder=1');
310     }
311}
312
313# Replace default favorites by current set (super admin only)
314if (!empty($_POST['replace']) && $core->auth->isSuperAdmin()) {
315     try {
316          $ws = $core->auth->user_prefs->addWorkspace('favorites');
317          $user_favs = $ws->DumpLocalPrefs();
318          $core->auth->user_prefs->favorites->dropAll(true);
319          $count = 0;
320          foreach ($user_favs as $k => $v)
321          {
322               $uid = sprintf("g%03s",$count);
323               $f = unserialize($v['value']);
324               $fav = array('name' => $f['name'],'title' => $f['title'],'url' => $f['url'],'small-icon' => $f['small-icon'],
325                    'large-icon' => $f['large-icon'],'permissions' => $f['permissions'],'id' => $f['id'],'class' => $f['class']);
326               $core->auth->user_prefs->favorites->put($uid,serialize($fav),'string',null,null,true);
327               $count++;
328          }
329     } catch (Exception $e) {
330          $core->error->add($e->getMessage());
331     }
332
333     if (!$core->error->flag()) {
334          http::redirect('preferences.php?&replaced=1');
335     }
336}
337
338/* DISPLAY
339-------------------------------------------------------- */
340dcPage::open($page_title,
341     dcPage::jsLoad('js/_preferences.js').
342     ($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
343     dcPage::jsLoad('js/jquery/jquery-ui-1.8.12.custom.min.js').
344     dcPage::jsPageTabs($default_tab).
345     dcPage::jsConfirmClose('user-form').
346     
347     # --BEHAVIOR-- adminPreferencesHeaders
348     $core->callBehavior('adminPreferencesHeaders')
349);
350
351if (!empty($_GET['upd'])) {
352          echo '<p class="message">'.__('Personal information has been successfully updated.').'</p>';
353}
354if (!empty($_GET['updated'])) {
355          echo '<p class="message">'.__('Personal options has been successfully updated.').'</p>';
356}
357if (!empty($_GET['append'])) {
358          echo '<p class="message">'.__('Favorites have been successfully added.').'</p>';
359}
360if (!empty($_GET['neworder'])) {
361     echo '<p class="message">'.__('Favorites have been successfully updated.').'</p>';
362}
363if (!empty($_GET['removed'])) {
364          echo '<p class="message">'.__('Favorites have been successfully removed.').'</p>';
365}
366if (!empty($_GET['replaced'])) {
367          echo '<p class="message">'.__('Default favorites have been successfully updated.').'</p>';
368}
369
370echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
371
372# User profile
373echo '<div class="multi-part" id="user-profile" title="'.__('My profile').'">';
374
375echo
376'<form action="preferences.php" method="post" id="user-form">'.
377'<fieldset><legend>'.__('My profile').'</legend>'.
378'<div class="two-cols">'.
379'<div class="col">'.
380'<p><label for="user_name">'.__('Last Name:').
381form::field('user_name',20,255,html::escapeHTML($user_name)).'</label></p>'.
382
383'<p><label for="user_firstname">'.__('First Name:').
384form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).'</label></p>'.
385
386'<p><label for="user_displayname">'.__('Display name:').
387form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).'</label></p>'.
388
389'<p><label for="user_email">'.__('Email:').
390form::field('user_email',20,255,html::escapeHTML($user_email)).'</label></p>'.
391
392'<p><label for="user_url">'.__('URL:').
393form::field('user_url',30,255,html::escapeHTML($user_url)).'</label></p>'.
394
395'</div>'.
396
397'<div class="col">'.
398
399'<p><label for="user_lang">'.__('User language:').
400form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</label></p>'.
401
402'<p><label for="user_tz">'.__('User timezone:').
403form::combo('user_tz',dt::getZones(true,true),$user_tz).'</label></p>'.
404
405'</div>'.
406'</div>'.
407'<br class="clear" />'. //Opera sucks
408'</fieldset>';
409
410if ($core->auth->allowPassChange())
411{
412     echo
413     '<fieldset>'.
414     '<legend>'.__('Change your password').'</legend>'.
415     
416     '<p><label for="new_pwd">'.__('New password:').
417     form::password('new_pwd',20,255).'</label></p>'.
418     
419     '<p><label for="new_pwd_c">'.__('Confirm password:').
420     form::password('new_pwd_c',20,255).'</label></p>'.
421     '</fieldset>'.
422     
423     '<p>'.__('If you have changed this user email or password you must provide your current password to save these modifications.').'</p>'.
424     '<p><label for="cur_pwd">'.__('Your password:').
425     form::password('cur_pwd',20,255).'</label></p>';
426}
427
428echo
429'<p class="clear">'.
430$core->formNonce().
431'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
432'</form>';
433
434echo '</div>';
435
436# User options : some from actual user profile, dashboard modules, ...
437echo '<div class="multi-part" id="user-options" title="'.__('My options').'">';
438
439echo
440'<form action="preferences.php" method="post" id="opts-forms">'.
441'<fieldset><legend>'.__('My options').'</legend>'.
442
443'<p><label for="user_post_format">'.__('Preferred format:').
444form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</label></p>'.
445
446'<p><label for="user_post_status">'.__('Default entry status:').
447form::combo('user_post_status',$status_combo,$user_post_status).'</label></p>'.
448
449'<p><label for="user_edit_size">'.__('Entry edit field height:').
450form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</label></p>'.
451
452'<p><label for="user_wysiwyg" class="classic">'.
453form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg']).' '.
454__('Enable WYSIWYG mode').'</label></p>'.
455
456'<p><label for="user_ui_enhanceduploader" class="classic">'.
457form::checkbox('user_ui_enhanceduploader',1,$user_ui_enhanceduploader).' '.
458__('Activate enhanced uploader in media manager').'</label></p>';
459
460if (count($iconsets_combo) > 1) {
461     echo 
462          '<p><label for="user_ui_iconset">'.__('Iconset:').
463          form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</label></p>';
464} else {
465     form::hidden('user_ui_iconset','');
466}
467
468if ($core->auth->isSuperAdmin()) {
469     echo
470     '<p><label for="user_ui_hide_std_favicon" class="classic">'.
471     form::checkbox('user_ui_hide_std_favicon',1,$user_ui_hide_std_favicon).' '.
472     __('Do not use standard favicon').'</label></p>'.
473     '<p class="clear form-note info">'.__('This will be applied for all users').'</p>';
474}
475
476echo 
477'<br class="clear" />'. //Opera sucks
478'</fieldset>';
479
480echo
481'<fieldset><legend>'.__('Accessibility options').'</legend>'.
482
483'<p><label for="user_acc_nodragdrop" class="classic">'.
484form::checkbox('user_acc_nodragdrop',1,$user_acc_nodragdrop).' '.
485__('Disable javascript powered drag and drop for ordering items').'</label></p>'.
486
487'<p class="clear form-note info">'.__('Numeric fields will allow to type the elements\' ordering number.').'</p>'.
488'</fieldset>';
489
490echo
491'<fieldset><legend>'.__('Dashboard modules').'</legend>'.
492
493'<p><label for="user_dm_doclinks" class="classic">'.
494form::checkbox('user_dm_doclinks',1,$user_dm_doclinks).' '.
495__('Display documentation links').'</label></p>'.
496
497'<p><label for="user_dm_dcnews" class="classic">'.
498form::checkbox('user_dm_dcnews',1,$user_dm_dcnews).' '.
499__('Display Dotclear news').'</label></p>'.
500
501'<p><label for="user_dm_quickentry" class="classic">'.
502form::checkbox('user_dm_quickentry',1,$user_dm_quickentry).' '.
503__('Display quick entry form').'</label></p>'.
504
505'<br class="clear" />'. //Opera sucks
506'</fieldset>';
507
508# --BEHAVIOR-- adminPreferencesForm
509$core->callBehavior('adminPreferencesForm',$core);
510
511echo
512'<p class="clear">'.
513$core->formNonce().
514'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
515'</form>';
516
517echo '</div>';
518
519# User favorites
520echo '<div class="multi-part" id="user-favorites" title="'.__('My favorites').'">';
521$ws = $core->auth->user_prefs->addWorkspace('favorites');
522echo '<form action="preferences.php" method="post" id="favs-form">';
523echo '<div class="two-cols">';
524echo '<div class="col70">';
525echo '<fieldset id="my-favs"><legend>'.__('My favorites').'</legend>';
526
527$count = 0;
528foreach ($ws->dumpPrefs() as $k => $v) {
529     // User favorites only
530     if (!$v['global']) {
531          $fav = unserialize($v['value']);
532          if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
533               if ($count == 0) echo '<ul>';
534               $count++;
535               echo '<li id="fu-'.$k.'">'.
536                    '<img src="'.dc_admin_icon_url($fav['large-icon']).'" alt="" /> '.
537                    form::field(array('order['.$k.']'),2,3,$count,'position','',false,'title="'.sprintf(__('position of %s'),$fav['title']).'"').
538                    form::hidden(array('dynorder[]','dynorder-'.$k.''),$k).
539                    '<label for="fuk-'.$k.'">'.form::checkbox(array('remove[]','fuk-'.$k),$k).__($fav['title']).'</label>'.
540                    '</li>';
541          }
542     }
543}
544if ($count > 0) echo '</ul>';
545if ($count > 0) {
546     echo
547     '<div class="clear">'.
548     '<p>'.form::hidden('favs_order','').
549     $core->formNonce().
550     '<input type="submit" name="saveorder" value="'.__('Save order').'" /> '.
551
552     '<input type="submit" class="delete" name="removeaction" '.
553     'value="'.__('Delete selected favorites').'" '.
554     'onclick="return window.confirm(\''.html::escapeJS(
555          __('Are you sure you want to remove selected favorites?')).'\');" /></p>'.
556
557     ($core->auth->isSuperAdmin() ? 
558          '<hr />'.
559          '<p>'.__('If you are a super administrator, you may define this set of favorites to be used by default on all blogs of this installation:').'</p>'.
560          '<p><input class="reset" type="submit" name="replace" value="'.__('Define as default favorites').'" />' : 
561          '').
562          '</p>'.
563     '</div>';
564} else {
565     echo
566     '<p>'.__('Currently no personal favorites.').'</p>';
567}
568
569echo '</fieldset>';
570
571echo '<div id="default-favs"><h3>'.__('Default favorites').'</h3>';
572echo '<p class="form-note info clear">'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
573$count = 0;
574foreach ($ws->dumpPrefs() as $k => $v) {
575     // Global favorites only
576     if ($v['global']) {
577          $fav = unserialize($v['value']);
578          if (($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)) {
579               if ($count == 0) echo '<ul class="fav-list">';
580               $count++;
581               echo '<li id="fd-'.$k.'">'.
582               '<img src="'.dc_admin_icon_url($fav['small-icon']).'" alt="" /> '.__($fav['title']).'</li>';
583          }
584     }
585}   
586if ($count > 0) echo '</ul>';
587echo '</div>';
588echo '</div>';
589echo '<div class="col30" id="available-favs">';
590# Available favorites
591echo '<fieldset><legend>'.__('Available favorites').'</legend>';
592$count = 0;
593$array = $_fav;
594function cmp($a,$b) {
595    if (__($a[1]) == __($b[1])) {
596        return 0;
597    }
598    return (__($a[1]) < __($b[1])) ? -1 : 1;
599}
600$array=$array->getArrayCopy();
601uasort($array,'cmp');
602foreach ($array as $k => $fav) {
603     if (($fav[5] == '*') || $core->auth->check($fav[5],$core->blog->id)) {
604          if ($count == 0) echo '<ul class="fav-list">';
605          $count++;
606          echo '<li id="fa-'.$fav[0].'">'.'<label for="fak-'.$fav[0].'">'.
607               form::checkbox(array('append[]','fak-'.$fav[0]),$k).
608               '<img src="'.dc_admin_icon_url($fav[3]).'" alt="" /> '.'<span class="zoom"><img src="'.dc_admin_icon_url($fav[4]).'" alt="" /></span>'.
609               __($fav[1]).'</label>'.'</li>';
610     }
611}   
612if ($count > 0) echo '</ul>';
613echo
614'<p>'.
615$core->formNonce().
616'<input type="submit" name="appendaction" value="'.__('Add to my favorites').'" /></p>';
617echo '</fieldset>';
618echo '</div>';
619echo '</div>'; # Two-cols
620echo '</form>';
621echo '</div>'; # user-favorites
622
623dcPage::helpBlock('core_user_pref');
624dcPage::close();
625?>
Note: See TracBrowser for help on using the repository browser.

Sites map