Dotclear

source: plugins/private/index.php @ 955

Revision 955, 5.4 KB checked in by Osku, 15 years ago (diff)

Private mode 1.0 finally

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3#
4# This file is part of Private mode, a plugin for Dotclear 2.
5#
6# Copyright (c) 2008-2009 Osku and contributors
7## Licensed under the GPL version 2.0 license.
8# A copy of this license is available in LICENSE file or at
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK ------------------------------------
12
13// Setting default parameters if missing configuration
14if (is_null($core->blog->settings->private_flag)) {
15     try {
16               $core->blog->settings->setNameSpace('private');
17
18               // Private mode is not active by default
19               $core->blog->settings->put('private_flag',false,'boolean');
20               $core->blog->settings->put('private_conauto',false,'boolean');
21               $core->blog->triggerBlog();
22               http::redirect(http::getSelfURI());
23          }
24     catch (Exception $e) {
25          $core->error->add($e->getMessage());
26     }
27}
28
29// Getting current parameters
30$private_flag       = (boolean)$core->blog->settings->private_flag;
31$private_conauto         = (boolean)$core->blog->settings->private_conauto;
32$blog_private_title = $core->blog->settings->blog_private_title;
33$blog_private_msg   = $core->blog->settings->blog_private_msg;
34
35if ($blog_private_title === null) {
36     $blog_private_title = __('Private blog');
37}
38
39if ($blog_private_msg === null) {
40     $blog_private_msg = __('<p class="message">You need the password to view this blog.</p>');
41}
42
43if (is_null($core->blog->settings->blog_private_pwd))
44{
45     $err = __('No password set.');
46}
47
48if (!empty($_POST['saveconfig']))
49{
50     try
51     {
52          $private_flag = (empty($_POST['private_flag']))?false:true;
53          $private_conauto = (empty($_POST['private_conauto']))?false:true;
54          $blog_private_title = $_POST['blog_private_title'];
55          $blog_private_msg = $_POST['blog_private_msg'];
56          $blog_private_pwd = md5($_POST['blog_private_pwd']);
57
58          if (empty($_POST['blog_private_title'])) {
59               throw new Exception(__('No page title.'));
60          }
61
62          if (empty($_POST['blog_private_msg'])) {
63               throw new Exception(__('No private message.'));
64          }
65
66          $core->blog->settings->setNamespace('private');
67          $core->blog->settings->put('private_flag',$private_flag,'boolean','Protect your blog with a password');
68          $core->blog->settings->put('private_conauto',$private_conauto,'boolean','Allow automatic connection');
69          $core->blog->settings->put('blog_private_title',$blog_private_title,'string','Private page title');
70          $core->blog->settings->put('blog_private_msg',$blog_private_msg,'string','Private message');
71
72          if (!empty($_POST['blog_private_pwd'])) {
73               if ($_POST['blog_private_pwd'] != $_POST['blog_private_pwd_c']) {
74                    throw new Exception(__("Passwords don't match"));
75               }
76               $core->blog->settings->put('blog_private_pwd',$blog_private_pwd,'string','Private blog password');
77          }
78
79          $core->blog->triggerBlog();
80
81          $msg = __('Configuration successfully updated.');
82     }
83
84     catch (Exception $e)
85     {
86          $core->error->add($e->getMessage());
87     }
88}
89?>
90<html>
91<head>
92     <title><?php echo __('Private mode'); ?></title>
93</head>
94<body>
95<h2 style="padding:8px 0 8px 34px;background:url(index.php?pf=private/icon_32.png) no-repeat;">
96<?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <?php echo __('Private mode'); ?></h2>
97
98<?php if (!empty($msg)) echo '<p class="message">'.$msg.'</p>'; ?>
99
100<?php if (!empty($err)) echo '<p class="error">'.$err.'</p>'; ?>
101
102<div id="private_options">
103     <form method="post" action="plugin.php">
104          <fieldset>
105               <legend><?php echo __('Plugin activation'); ?></legend>
106                    <div class="two-cols">
107                    <div class="col">
108                    <p class="field">
109                         <?php echo form::checkbox('private_flag', 1, $private_flag); ?>
110                         <label class=" classic" for="private_flag"> <?php echo __('Enable Private mode');?></label>
111                    </p>
112                    <p><label class="required" title="<?php echo __('Required field');?>">
113                         <?php echo __('New password:'); ?>
114                         <?php echo form::password('blog_private_pwd',30,255); ?>
115                    </label></p>
116                    <p><label class="required" title="<?php echo __('Required field');?>">
117                         <?php echo __('Confirm password:'); ?>
118                         <?php echo form::password('blog_private_pwd_c',30,255); ?>
119                    </label></p>
120                    </div>
121                    <div class="col">
122                    <p>
123                         <?php echo form::checkbox('private_conauto', 1, $private_conauto); ?>
124                         <label class=" classic" for="private_conauto"> <?php echo __('Propose automatic connection to visitors');?></label>
125                    </p>
126                    <p class="form-note">
127                    <?php echo __('With this option, the password could be stored in a cookie.'); ?>
128                    <?php echo __('But it still remains a choice for the visitor.'); ?>
129                    </p>
130                    <p><?php  echo sprintf(__('Don\'t forget to add a <a href="%s">widget</a> allowing disconnection from the blog.'),'plugin.php?p=widgets'); ?></p>
131                    </div>
132                    </div>
133          </fieldset>
134          <fieldset class="constrained">
135               <legend><?php echo __('Presentation options'); ?></legend>
136                    <p class="col"><label class="required" title="<?php echo __('Required field');?>">
137                         <?php echo __('Private page title:');?>
138                         <?php echo form::field('blog_private_title',20,255,html::escapeHTML($blog_private_title),'maximal'); ?>
139                    </label></p>
140                    <p class="area"><label class="required" title="<?php echo __('Required field');?>">
141                         <?php echo __('Private message:');?>
142                         <?php echo form::textarea('blog_private_msg',30,4,html::escapeHTML($blog_private_msg)); ?>
143                    </label></p>
144          </fieldset>
145
146          <p><input type="hidden" name="p" value="private" />
147          <?php echo $core->formNonce(); ?>
148          <input type="submit" name="saveconfig" value="<?php echo __('Save configuration'); ?>" /></p>
149     </form>
150</div>
151</body>
152</html>
Note: See TracBrowser for help on using the repository browser.

Sites map