0da0d37c38fd37bab49934465c93b216ce572cfa
[dotclear.git] / _admin.php
1 <?php
2 require_once dirname(__FILE__) . '/widget.auth.php';
3 require_once dirname(__FILE__) . '/widget.post.perms.php';
4
5 /* Declare the authentication widget on public page */
6 $core->addBehavior('initWidgets', array('xorgAuthWidget', 'behavior_initWidgets'));
7
8
9 /* Declare stuff to set permissions on each post */
10 $core->addBehavior('adminPostFormSidebar', array('xorgPostPermsWidget', 'behavior_adminPostFormSidebar'));
11 $core->addBehavior('adminBeforePostCreate', array('xorgPostPermsWidget', 'behavior_adminBeforePostCreate'));
12 $core->addBehavior('adminBeforePostUpdate', array('xorgPostPermsWidget', 'behavior_adminBeforePostUpdate'));
13
14 /* Stuff to set user preferences about post permissions */
15 $core->addBehavior('adminPreferencesForm', array('xorgPostPermsWidget', 'behavior_adminPreferencesForm'));
16 $core->addBehavior('adminBeforeUserUpdate', array('xorgPostPermsWidget', 'behavior_adminBeforeUserUpdate'));
17
18
19 /* Declare the form to assign the ownership of the blog */
20 $core->addBehavior('adminBlogPreferencesForm', array('xorgBlogOwnerWidget', 'behavior_adminBlogPreferencesForm'));
21 $core->addBehavior('adminBeforeBlogSettingsUpdate', array('xorgBlogOwnerWidget', 'behavior_adminBeforeBlogSettingsUpdate'));
22
23 class xorgBlogOwnerWidget {
24 public static function behavior_adminBlogPreferencesForm(&$core) {
25 if ($core->auth->isSuperAdmin()) {
26 $types = array('user' => array('text' => 'Blog d\'utilisateur',
27 'selected' => false),
28 'group-member' => array('text' => 'Blog de groupe, édition par les membres',
29 'selected' => false),
30 'group-admin' => array('text' => 'Blog de groupe, édition par les administrateurs',
31 'selected' => false));
32 $type = $core->blog->settings->get('xorg_blog_type');
33 if (!$type) {
34 $type = 'user';
35 }
36 $types[$type]['selected'] = true;
37 echo '<fieldset><legend>Authentification X.org</legend><div class="two-cols"><div class="col">';
38 echo '<p><label>Type de blog&nbsp;:'
39 . '<select name="xorg_blog_type">';
40 foreach ($types as $key => $fields) {
41 echo '<option value="' . $key . '"' . ($fields['selected'] ? ' selected="selected"' : '') . '>'
42 . $fields['text'] . '</option>';
43 }
44 echo '</select></label></p></div>';
45 echo '<div class="col"><p><label>Propriétaire du blog (*)&nbsp;:<input type="text" name="xorg_blog_owner" value="' . $core->blog->settings->get('xorg_blog_owner') . '" /></label></p>';
46 echo '<p><label>(*) Dans le cas d\'un blog de groupe, le propriétaire est le diminutif X.net du groupe<br />(*) Dans le cas d\'un blog d\'utilisateur, le propriétaire est le forlife de l\'utilisateur</label></p></div></div></fieldset>';
47 }
48 }
49
50 public static function behavior_adminBeforeBlogSettingsUpdate(&$settings) {
51 global $core;
52 if ($core->auth->isSuperAdmin()) {
53 $settings->put('xorg_blog_type', $_POST['xorg_blog_type'], 'string', 'Type de blog X.org');
54 $settings->put('xorg_blog_owner', $_POST['xorg_blog_owner'], 'string', 'Propriétaire X.org du blog');
55 }
56 }
57 }
58 ?>