Changeset 2613 for plugins/private
- Timestamp:
- 09/01/10 14:26:45 (13 years ago)
- Location:
- plugins/private
- Files:
-
- 8 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/private/_admin.php
r2475 r2613 16 16 $menu_class = ''; 17 17 18 $s = privateSettings($core); 19 20 if ($s->private_flag) 18 if ($core->blog->settings->private->private_flag) 21 19 { 22 $core->addBehavior('adminPageHTMLHead','privateadminPageHTMLHead');23 20 $menu_class = 'private-blog'; 24 21 } 22 23 $core->addBehavior('adminPageHTMLHead','privateadminPageHTMLHead'); 25 24 26 25 $_menu['Plugins']->addItem(__('Private mode'), -
plugins/private/_define.php
r2476 r2613 11 11 # 12 12 # -- END LICENSE BLOCK ------------------------------------ 13 13 14 if (!defined('DC_RC_PATH')) { return; } 14 15 … … 17 18 /* Description*/ "Protect your blog with a password", 18 19 /* Author */ "Osku and contributors", 19 /* Version */ '1.4', 20 /* Permissions */ 'admin' 20 /* Version */ '1.5', 21 /* Permissions */ 'admin', 22 /* Priority */ 1501 21 23 ); 22 24 ?> -
plugins/private/_install.php
r2378 r2613 21 21 } 22 22 23 $s = privateSettings($core);23 $s = $core->blog->settings->private; 24 24 25 25 $s->put('private_flag', … … 37 37 ); 38 38 39 $s->put('private_page_title', 40 __('Private blog'), 41 'string', 42 'Private mode public page title', 43 true,true 44 ); 45 46 $s->put('private_page_message', 47 __('<p class="message">You need the password to view this blog.</p>'), 39 $s->put('message', 40 __('<h2>Private blog</h2><p class="message">You need the password to view this blog.</p>'), 48 41 'string', 49 42 'Private mode public welcome message', -
plugins/private/_prepend.php
r2378 r2613 14 14 if (!defined('DC_RC_PATH')) { return; } 15 15 16 if (version_compare(DC_VERSION,'2.2-beta','<')) { return; } 17 16 18 require dirname(__FILE__).'/_widgets.php'; 17 19 18 $ s = privateSettings($core);20 $core->blog->settings->addNamespace('private'); 19 21 20 if ($s->private_flag) 22 #Rewrite Feeds with new URL and representation 23 $feeds_url = new ArrayObject(array('feed','tag_feed')); 24 $core->callBehavior('initFeedsPrivateMode',$feeds_url); 25 26 if ($core->blog->settings->private->private_flag) 21 27 { 22 $privatefeed = md5($s->blog_private_pwd); 23 $core->url->register('feed', 24 sprintf('%s-feed',$privatefeed), 25 sprintf('^%s-feed/(.+)$',$privatefeed), 26 array('urlPrivate','privateFeed') 27 ); 28 $privatefeed = md5($core->blog->settings->private->blog_private_pwd); 29 30 #Obfuscate all feeds URL 31 foreach ($core->url->getTypes() as $k => $v) { 32 if (in_array($k,(array)$feeds_url)) { 33 $core->url->register( 34 $k, 35 sprintf('%s/%s',$privatefeed,$v['url']), 36 sprintf('^%s/%s/(.+)$',$privatefeed,$v['url']), 37 $v['handler'] 38 ); 39 } 40 } 41 28 42 $core->url->register('pubfeed', 29 43 'feed', … … 31 45 array('urlPrivate','publicFeed') 32 46 ); 33 } 47 48 #Trick.. 49 $core->url->register('xslt','feed/rss2/xslt','^feed/rss2/xslt$',array('urlPrivate','feedXslt')); 34 50 35 function privateSettings($core,$ns='private') {36 if (version_compare(DC_VERSION,'2.2-alpha','>=')) {37 $core->blog->settings->addNamespace($ns);38 return $core->blog->settings->{$ns};39 } else {40 $core->blog->settings->setNamespace($ns);41 return $core->blog->settings;42 }43 51 } 44 52 ?> -
plugins/private/_public.php
r2475 r2613 14 14 if (!defined('DC_RC_PATH')) { return; } 15 15 16 $core->tpl->addValue('Private PageTitle',array('tplPrivate','PrivatePageTitle'));16 $core->tpl->addValue('PrivateReqPage',array('tplPrivate','PrivateReqPage')); 17 17 $core->tpl->addValue('PrivateMsg',array('tplPrivate','PrivateMsg')); 18 $core->tpl->addValue('PrivateReqPage',array('tplPrivate','PrivateReqPage')); 19 $core->tpl->addBlock('IfPrivateMsgError',array('tplPrivate','IfPrivateMsgError')); 20 $core->tpl->addValue('PrivatePassRemember',array('tplPrivate','PrivatePassRemember')); 21 $core->tpl->addValue('PrivateMsgError',array('tplPrivate','PrivateMsgError')); 22 23 $s = privateSettings($core); 24 25 if ($s->private_flag) 26 { 18 19 $s = $core->blog->settings->private; 20 21 if ($s->private_flag) { 27 22 $core->addBehavior('publicBeforeDocument',array('urlPrivate','privateHandler')); 28 23 } 29 24 25 if ($s->private_conauto_flag) { 26 $core->addBehavior('publicPrivateFormAfterContent',array('behaviorsPrivate','publicPrivateFormAfterContent')); 27 } 28 29 $core->addBehavior('publicPrivateFormBeforeContent',array('behaviorsPrivate','publicPrivateFormBeforeContent')); 30 31 /** 32 * 33 */ 30 34 class urlPrivate extends dcUrlHandlers 31 35 { 32 public static function privateFeed($args) 33 { 34 self::feed($args); 35 } 36 /** 37 * 38 */ 39 public static function feedXslt($args) 40 { 41 self::serveDocument('rss2.xsl','text/xml'); 42 } 36 43 44 /** 45 * 46 */ 37 47 public static function publicFeed($args) 38 48 { 49 #Don't reinvent the wheel - take a look to dcUrlHandlers/feed 39 50 global $core,$_ctx; 40 51 41 52 $type = null; 42 53 $params = array(); 43 54 $mime = 'application/xml'; 44 55 45 if (preg_match('#^rss2/xslt$#',$args,$m)) 46 { 47 # RSS XSLT stylesheet 48 self::serveDocument('rss2.xsl','text/xml'); 49 } 50 elseif (preg_match('#^(atom|rss2)/comments/([0-9]+)$#',$args,$m)) 51 { 52 # Post comments feed 53 $type = $m[1]; 54 } 55 elseif (preg_match('#^(?:category/(.+)/)?(atom|rss2)(/comments)?$#',$args,$m)) 56 { 57 # All posts or comments feed 58 $type = $m[2]; 56 if (preg_match('#^(atom|rss2)$#',$args,$m)) { 57 # Atom or RSS2 ? 58 $type = $m[0]; 59 59 } 60 60 … … 66 66 } 67 67 68 header('X-Robots-Tag: '.context::robotsPolicy($core->blog->settings-> robots_policy,''));68 header('X-Robots-Tag: '.context::robotsPolicy($core->blog->settings->system->robots_policy,'')); 69 69 $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates'); 70 70 self::serveDocument($tpl,$mime); … … 73 73 } 74 74 75 /** 76 * 77 */ 75 78 public static function callbackfoo($args) 76 79 { 80 #Woohoo :) 77 81 return; 78 82 } 79 83 84 /** 85 * 86 */ 80 87 public static function privateHandler($args) 81 88 { 82 89 global $core,$_ctx; 83 90 91 #New temporary urlHandlers 84 92 $urlp = new urlHandler(); 85 93 $urlp->mode = $core->url->mode; 86 94 $urlp->registerDefault(array('urlPrivate','callbackfoo')); 95 foreach ($core->url->getTypes() as $k => $v) { 96 $urlp->register($k,$v['url'],$v['representation'],array('urlPrivate','callbackfoo')); 97 } 98 99 #Find type 100 $urlp->getDocument(); 101 $type = $urlp->type; 102 unset($urlp); 103 104 #Looking for a new template (private.html) 87 105 $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates'); 88 $s = privateSettings($core); 89 $password = $s->blog_private_pwd; 90 $allowed_types = array('feed','pubfeed','spamfeed','hamfeed','trackback','preview','pagespreview','contactme'); 91 92 #agora trick ? 93 if ($core->auth->userID()) 94 { 95 return; 96 } 97 98 if (!isset($session)) 99 { 106 107 #Load password from configuration 108 $password = $core->blog->settings->private->blog_private_pwd; 109 110 #Define allowed url->type 111 $allowed_types = new ArrayObject(array('feed','xslt','tag_feed','pubfeed','spamfeed','hamfeed','trackback','preview','pagespreview','contactme')); 112 $core->callBehavior('initPrivateMode',$allowed_types); 113 114 #Generic behavior 115 $core->callBehavior('initPrivateHandler',$core); 116 117 #Let's go : define a new session and start it 118 if (!isset($session)) { 100 119 $session = new sessionDB( 101 120 $core->con, … … 107 126 } 108 127 109 foreach ($core->url->getTypes() as $k=>$v) 110 { 111 $urlp->register($k,$v['url'],$v['representation'],array('urlPrivate','callbackfoo')); 112 } 113 114 $urlp->getDocument(); 115 $type = $urlp->type; 116 unset($urlp); 117 118 if (in_array($type,$allowed_types)) 119 { 128 if (in_array($type,(array)$allowed_types)) { 120 129 return; 121 } 122 else 123 { 124 // Add cookie test (automatic login) 130 } else { 131 #Add cookie test (automatic login) 125 132 $cookiepass = "dc_privateblog_cookie_".$core->blog->id; 126 133 127 if (!empty($_COOKIE[$cookiepass])) 128 { 134 if (!empty($_COOKIE[$cookiepass])) { 129 135 $cookiepassvalue = (($_COOKIE[$cookiepass]) == $password); 130 136 } 131 else 132 { 137 else { 133 138 $cookiepassvalue = false; 134 139 } 135 140 136 if (!isset($_SESSION['sess_blog_private']) || $_SESSION['sess_blog_private'] == "") 137 { 138 if ($cookiepassvalue != false) 139 { 141 #Let's rumble session, cookies & conf :) 142 if (!isset($_SESSION['sess_blog_private']) || $_SESSION['sess_blog_private'] == "") { 143 if ($cookiepassvalue != false) { 140 144 $_SESSION['sess_blog_private'] = $_COOKIE[$cookiepass]; 141 return;142 145 } 143 if (!empty($_POST['private_pass'])) 144 { 145 if (md5($_POST['private_pass']) == $password) 146 { 146 if (!empty($_POST['private_pass'])) { 147 if (md5($_POST['private_pass']) == $password) { 147 148 $_SESSION['sess_blog_private'] = md5($_POST['private_pass']); 148 149 149 if (!empty($_POST['pass_remember'])) 150 { 150 if (!empty($_POST['pass_remember'])) { 151 151 setcookie($cookiepass,md5($_POST['private_pass']),time() + 31536000,'/'); 152 152 } 153 153 return; 154 154 } 155 $_ctx-> blogpass_error = __('Wrong password');155 $_ctx->form_error = __('Wrong password'); 156 156 } 157 157 $session->destroy(); 158 158 self::serveDocument('private.html','text/html',false); 159 # --BEHAVIOR-- publicAfterDocument 160 $core->callBehavior('publicAfterDocument',$core); 159 161 exit; 160 162 } 161 elseif ($_SESSION['sess_blog_private'] != $password) 162 { 163 elseif ($_SESSION['sess_blog_private'] != $password) { 163 164 $session->destroy(); 164 $_ctx->blogpass_error = __('Wrong password');165 165 self::serveDocument('private.html','text/html',false); 166 # --BEHAVIOR-- publicAfterDocument 167 $core->callBehavior('publicAfterDocument',$core); 166 168 exit; 167 169 } 168 elseif (isset($_POST['blogout'])) 169 { 170 elseif (isset($_POST['blogout'])) { 170 171 $session->destroy(); 171 172 setcookie($cookiepass,'ciao',time() - 86400,'/'); 172 $_ctx-> blogpass_error = __('Disconnected');173 $_ctx->form_error = __('You are now disconnected.'); 173 174 self::serveDocument('private.html','text/html',false); 175 # --BEHAVIOR-- publicAfterDocument 176 $core->callBehavior('publicAfterDocument',$core); 174 177 exit; 175 178 } … … 179 182 } 180 183 184 /** 185 * 186 */ 187 class behaviorsPrivate 188 { 189 /** 190 * 191 */ 192 public static function publicPrivateFormBeforeContent($core) 193 { 194 echo $core->blog->settings->private->message; 195 } 196 197 /** 198 * 199 */ 200 public static function publicPrivateFormAfterContent($core) 201 { 202 echo '<p><label class="classic">'. 203 form::checkbox(array('pass_remember'),1).' '. 204 __('Enable automatic connection').'</label></p>'; 205 } 206 } 207 208 /** 209 * 210 */ 181 211 class tplPrivate 182 212 { 183 public static function PrivatePageTitle($attr) 184 { 185 global $core; 186 $f = $core->tpl->getFilters($attr); 187 return '<?php echo '.sprintf($f,'privateSettings($core)->private_page_title').'; ?>'; 188 } 189 213 /** 214 * 215 */ 190 216 public static function PrivateMsg($attr) 191 217 { 192 global $core; 193 $f = $core->tpl->getFilters($attr); 194 return '<?php echo '.sprintf($f,'privateSettings($core)->private_page_message').'; ?>'; 195 } 196 218 $f = $GLOBALS['core']->tpl->getFilters($attr); 219 return '<?php echo '.sprintf($f,'$GLOBALS[\'core\']->blog->settings->private->message').'; ?>'; 220 } 221 222 /** 223 * 224 */ 197 225 public static function PrivateReqPage($attr) 198 226 { 199 return 200 '<?php echo(isset($_SERVER[\'REQUEST_URI\']) 201 ? html::escapeHTML($_SERVER[\'REQUEST_URI\']) 202 : $core->blog->url); ?>' ; 203 } 204 205 public static function IfPrivateMsgError($attr,$content) 206 { 207 return 208 '<?php if ($_ctx->blogpass_error !== null) : ?>'. 209 $content. 210 '<?php endif; ?>'; 211 } 212 213 public static function PrivateMsgError($attr) 214 { 215 return 216 '<?php if ($_ctx->blogpass_error !== null) 217 { echo $_ctx->blogpass_error; } ?>'; 218 } 219 220 public static function PrivatePassRemember($attr) 221 { 222 global $core; 223 $s = privateSettings($core); 224 if ($s->private_conauto_flag) 227 return '<?php echo(isset($_SERVER[\'REQUEST_URI\']) 228 ? html::escapeHTML($_SERVER[\'REQUEST_URI\']) 229 : $core->blog->url); ?>' ; 230 } 231 } 232 233 /** 234 * 235 */ 236 class widgetsPrivage 237 { 238 /** 239 * 240 */ 241 public static function widgetLogout($w) 242 { 243 if ($GLOBALS['core']->blog->settings->private->private_flag) 225 244 { 226 $res = '<p><label class="classic">'. 227 form::checkbox(array('pass_remember'),1).' '. 228 __('Enable automatic connection').'</label></p>'; 229 return $res; 230 } 231 else 232 { 233 return; 234 } 235 } 236 } 237 238 class widgetsPrivage 239 { 240 public static function widgetLogout($w) 241 { 242 global $core; 243 $s = privateSettings($core); 244 245 if ($w->homeonly && $core->url->type != 'default') { 246 return; 247 } 248 249 if ($s->private_flag) 250 { 245 if ($w->homeonly && $core->url->type != 'default') { 246 return; 247 } 248 251 249 $res = '<div class="blogout">'. 252 250 ($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : ''). 253 251 ($w->text ? $w->text : ''). 254 '<form action="'.$ core->blog->url.'" method="post">'.252 '<form action="'.$GLOBALS['core']->blog->url.'" method="post">'. 255 253 '<p class="buttons">'. 256 254 '<input type="hidden" name="blogout" id="blogout" value="" />'. … … 259 257 return $res; 260 258 } 261 else262 {263 return;264 }265 259 } 266 260 } -
plugins/private/default-templates/atom-pv.xml
r1768 r2613 5 5 xml:lang="{{tpl:BlogLanguage}}"> 6 6 7 <title type="html">{{tpl:BlogName encode_xml="1"}}{{tpl:SysFeedSubtitle encode_xml="1"}}</title> 8 <subtitle type="html">{{tpl:BlogDescription encode_xml="1"}}</subtitle> 7 <title type="html">{{tpl:lang Restricted area}}</title> 9 8 <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/> 10 9 <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html" 11 title="{{tpl: BlogDescription encode_xml="1"}}"/>10 title="{{tpl:lang Restricted area}}"/> 12 11 <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated> 13 12 <author> … … 18 17 19 18 <entry> 20 <title>{{tpl: PrivatePageTitle encode_xml="1"}}</title>19 <title>{{tpl:lang Restricted area}}</title> 21 20 <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html" 22 title="{{tpl: PrivatePageTitle encode_xml="1"}}" />21 title="{{tpl:lang Restricted area}}" /> 23 22 <id>{{tpl:BlogFeedID}}</id> 24 23 <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated> -
plugins/private/default-templates/private.html
r2378 r2613 6 6 <meta name="MSSmartTagsPreventParsing" content="TRUE" /> 7 7 <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" /> 8 <title>{{tpl: PrivatePageTitle encode_html="1"}}</title>8 <title>{{tpl:lang Restricted area}}</title> 9 9 10 10 <style type="text/css"> … … 34 34 35 35 <form action="{{tpl:PrivateReqPage}}" method="post"> 36 <h2>{{tpl:PrivatePageTitle}}</h2>37 36 38 <tpl: IfPrivateMsgError>39 <p class="error">{{tpl:PrivateMsgError}}</p>40 </tpl: IfPrivateMsgError>37 <tpl:SysIfFormError> 38 <p class="error">{{tpl:SysFormError}}</p> 39 </tpl:SysIfFormError> 41 40 42 {{tpl:PrivateMsg}} 43 44 {{tpl:PrivatePassRemember}} 41 {{tpl:SysBehavior behavior="publicPrivateFormBeforeContent"}} 45 42 46 43 <p><label>{{tpl:lang Password:}} <input type="password" name="private_pass" id="private_pass" value="" 47 44 tabindex="1" /></label> <input type="submit" value="ok" /></p> 48 45 46 {{tpl:SysBehavior behavior="publicPrivateFormAfterContent"}} 47 49 48 </form> 50 49 </body> -
plugins/private/default-templates/rss2-pv.xml
r1768 r2613 7 7 xmlns:atom="http://www.w3.org/2005/Atom"> 8 8 <channel> 9 <title>{{tpl: BlogName encode_xml="1"}}{{tpl:SysFeedSubtitle encode_xml="1"}}</title>9 <title>{{tpl:lang Restricted area}}</title> 10 10 <link>{{tpl:BlogURL}}</link> 11 11 <atom:link href="{{tpl:SysSelfURI}}" rel="self" type="application/rss+xml"/> 12 <description>{{tpl: BlogDescription encode_xml="1"}}</description>12 <description>{{tpl:lang Restricted area}}</description> 13 13 <language>{{tpl:BlogLanguage}}</language> 14 14 <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate> … … 18 18 19 19 <item> 20 <title>{{tpl: PrivatePageTitle encode_xml="1"}}</title>20 <title>{{tpl:lang Restricted area}}</title> 21 21 <link>{{tpl:BlogURL}}</link> 22 22 <guid isPermaLink="false">{{tpl:BlogFeedID}}</guid> -
plugins/private/index.php
r2475 r2613 13 13 14 14 // Getting current settings 15 $s = privateSettings($core);15 $s = $core->blog->settings->private; 16 16 $private_flag = (boolean)$s->private_flag; 17 17 $private_conauto_flag = (boolean)$s->private_conauto_flag; 18 $private_page_title = $s->private_page_title; 19 $private_page_message = $s->private_page_message; 18 $message = $s->message; 19 $feed = $core->blog->url.$core->url->getBase('feed').'/atom'; 20 $comments_feed = $core->blog->url.$core->url->getBase('feed').'/atom/comments'; 20 21 21 22 if (!empty($_POST['saveconfig'])) 22 23 { 23 try 24 { 24 try { 25 25 $private_flag = (empty($_POST['private_flag']))?false:true; 26 26 $private_conauto_flag = (empty($_POST['private_conauto_flag']))?false:true; 27 $private_page_title = $_POST['private_page_title']; 28 $private_page_message = $_POST['private_page_message']; 27 $message = $_POST['private_page_message']; 29 28 $blog_private_pwd = md5($_POST['blog_private_pwd']); 30 29 31 30 $s->put('private_flag',$private_flag,'boolean','Private mode activation flag'); 32 31 $s->put('private_conauto_flag',$private_conauto_flag,'boolean','Private mode automatic connection option'); 33 $s->put('private_page_title',$private_page_title,'string','Private mode public page title'); 34 $s->put('private_page_message',$private_page_message,'string','Private mode public welcome message'); 32 $s->put('message',$message,'string','Private mode public welcome message'); 35 33 36 34 if (!empty($_POST['blog_private_pwd'])) … … 45 43 } 46 44 } 47 48 } 49 50 catch (Exception $e) 51 { 45 } catch (Exception $e) { 52 46 $core->error->add($e->getMessage()); 53 47 } 54 48 55 if (!$core->error->flag()) 56 { 49 if (!$core->error->flag()) { 57 50 $core->blog->triggerBlog(); 58 51 http::redirect($p_url.'&config=1'); … … 60 53 } 61 54 62 if ($s->blog_private_pwd === null) 63 { 55 if ($s->blog_private_pwd === null) { 64 56 $err = __('No password set.'); 65 57 } … … 92 84 </fieldset> 93 85 <fieldset> 94 <legend>'.__('Presentation options').'</legend> 95 <div class="two-cols"> 96 <div class="col">'; 86 <legend>'.__('Presentation options').'</legend>'; 87 97 88 if (!empty($err)) echo '<p class="error">'.$err.'</p>'; 98 89 echo … … 105 96 form::password('blog_private_pwd_c',30,255). 106 97 '</label></p> 98 <p class="area"><label>'. 99 __('Message:').'</label>'. 100 form::textarea('private_page_message',30,7,html::escapeHTML($message),'maximal'). 101 '</p> 107 102 <p>'. 108 103 form::checkbox('private_conauto_flag', 1, $private_conauto_flag). 109 '<label class="classic" for="private_conauto_flag">'. __('Propose automatic connection to visitors').'</label>'. 110 '</p>'. 111 '<p class="form-note">'. 112 __('With this option, the password could be stored in a cookie.'). 113 '<br />'. 114 __('But it still remains a choice for the visitor.'). 115 '</p> 116 <p>'.sprintf(__('Don\'t forget to add a <a href="%s">widget</a> allowing disconnection from the blog.'),'plugin.php?p=widgets'). 117 '</p></div> 118 <div class="col"> 119 <p class=""><label>'. 120 __('Title:').'</label>'. 121 form::field('private_page_title',20,255,html::escapeHTML($private_page_title),'maximal'). 122 '</p> 123 <p class=""><label>'. 124 __('Message:').'</label>'. 125 form::textarea('private_page_message',30,4,html::escapeHTML($private_page_message),'maximal'). 126 '</p> 127 </div></div> 104 '<label class="classic" for="private_conauto_flag">'. __('Propose automatic connection to visitors').'</label> 105 </p> 106 <h3>'.__('Syndication').'</h3> 107 <ul class="feedinfo"> 108 <li class="feed"><a href="'.$feed.'">'.__('Entries feed').'</a></li> 109 <li class="feed"><a href="'.$comments_feed.'">'.__('Comments feed').'</a></li> 110 </ul> 128 111 </fieldset> 129 112 <p>'.form::hidden(array('p'),'private'). … … 133 116 </form> 134 117 </div>'; 118 119 dcPage::helpBlock('privatemode'); 135 120 ?> 136 121 </body> -
plugins/private/locales/fr/main.po
r2475 r2613 1 1 # Language: Français 2 # Module: private - 1. 43 # Date: 2010-0 7-08 16:14:192 # Module: private - 1.5 3 # Date: 2010-09-01 12:18:27 4 4 # Translated with translater 1.4.1 5 5 … … 7 7 msgstr "" 8 8 "Content-Type: text/plain; charset=UTF-8\n" 9 "Project-Id-Version: private 1. 4\n"9 "Project-Id-Version: private 1.5\n" 10 10 "POT-Creation-Date: \n" 11 "PO-Revision-Date: 2010-0 7-08T16:14:19+00:00\n"11 "PO-Revision-Date: 2010-09-01T12:18:27+00:00\n" 12 12 "Last-Translator: osku\n" 13 13 "Language-Team: \n" … … 15 15 "Content-Transfer-Encoding: 8bit\n" 16 16 17 #: _admin.php:2 618 #: index.php:6 919 #: index.php: 8017 #: _admin.php:25 18 #: index.php:61 19 #: index.php:72 20 20 msgid "Private mode" 21 21 msgstr "Mode privé" 22 22 23 23 #: _install.php:40 24 msgid "Private blog" 25 msgstr "Blog privé" 26 27 #: _install.php:47 28 msgid "<p class=\"message\">You need the password to view this blog.</p>" 29 msgstr "<p class=\"message\">Vous avez besoin du mot de passe pour visualiser le blog.</p>" 24 msgid "<h2>Private blog</h2><p class=\"message\">You need the password to view this blog.</p>" 25 msgstr "<h2>Blog privé</h2><p class=\"message\">Vous avez besoin du mot de passe pour visualiser le blog..</p>" 30 26 31 27 #: _public.php:155 32 #: _public.php:16433 28 msgid "Wrong password" 34 29 msgstr "Mot de passe incorrect" 35 30 36 #: _public.php:17 237 msgid " Disconnected"38 msgstr " Déconnecté(e)"31 #: _public.php:173 32 msgid "You are now disconnected." 33 msgstr "Vous êtes maintenant déconnecté(e)." 39 34 40 #: _public.php:2 2835 #: _public.php:204 41 36 msgid "Enable automatic connection" 42 37 msgstr "Activer la connexion automatique" … … 46 41 msgid "Blog logout" 47 42 msgstr "Déconnexion du blog" 48 49 #: _widgets.php:2350 #: index.php:12051 msgid "Title:"52 msgstr "Titre :"53 54 #: _widgets.php:2455 msgid "Text:"56 msgstr "Texte :"57 43 58 44 #: _widgets.php:25 … … 64 50 msgstr "Se déconnecter" 65 51 66 #: _widgets.php:2667 msgid " Home page only"68 msgstr " Page d'accueil uniquement"52 #: default-templates/private.html:8 53 msgid "Restricted area" 54 msgstr "Zone d'accès restreint" 69 55 70 #: index.php:40 71 msgid "Passwords don't match" 72 msgstr "Les mots de passe ne correspondent pas" 73 74 #: index.php:64 56 #: index.php:56 75 57 msgid "No password set." 76 58 msgstr "Aucun mot de passe défini." 77 59 78 #: index.php: 7760 #: index.php:69 79 61 msgid "Configuration successfully updated." 80 62 msgstr "Configuration mise à jour avec succès." 81 63 82 #: index.php: 8664 #: index.php:78 83 65 msgid "Plugin activation" 84 66 msgstr "Activation de l'extension" 85 67 86 #: index.php: 9068 #: index.php:82 87 69 msgid "Enable private mode" 88 70 msgstr "Activer le mode privé" 89 71 90 #: index.php: 9472 #: index.php:86 91 73 msgid "Presentation options" 92 74 msgstr "Options d'affichage" 93 75 94 76 #: index.php:99 95 #: index.php:103 96 msgid "Required field" 97 msgstr "Champ obligatoire" 98 99 #: index.php:100 100 msgid "New password:" 101 msgstr "Nouveau mot de passe :" 77 msgid "Message:" 78 msgstr "Message :" 102 79 103 80 #: index.php:104 104 msgid "Confirm password:"105 msgstr "Confirmez le mot de passe :"106 107 #: index.php:109108 81 msgid "Propose automatic connection to visitors" 109 82 msgstr "Proposer la connexion automatique aux visiteurs" 110 83 111 #: index.php:112112 msgid "With this option, the password could be stored in a cookie."113 msgstr "Cette option permet la mémorisation du mot de passe dans un cookie."114 115 #: index.php:114116 msgid "But it still remains a choice for the visitor."117 msgstr "Mais ceci reste toutefois à la discrétion du visiteur."118 119 #: index.php:116120 msgid "Don't forget to add a <a href=\"%s\">widget</a> allowing disconnection from the blog."121 msgstr "N'oubliez pas d'ajouter un <a href=\"%s\">widget</a> permettant la déconnexion du blog."122 123 #: index.php:124124 msgid "Message:"125 msgstr "Message :"126 127 #: index.php:131128 msgid "save"129 msgstr "enregistrer"130 -
plugins/private/style/admin.css
r2475 r2613 1 1 #main-menu #private-blog a { 2 2 padding: 2px; 3 background: # 161400;4 color: # B9B23B;5 border: 1px solid # 161400;3 background: #A60000; 4 color: #FFFFFF; 5 border: 1px solid #A60C00; 6 6 -moz-border-radius: 3px; 7 7 -webkit-border-radius: 3px; 8 8 } 9 ul.feedinfo { 10 display: block; 11 list-style: none; 12 margin: 1em 0; 13 padding: 0; 14 } 15 ul.feedinfo li { 16 margin: 0.5em 0; 17 padding-left: 16px; 18 background-color: transparent; 19 background-position: center left; 20 background-repeat: no-repeat; 21 } 22 ul.feedinfo .feed { 23 background-image: url(index.php?pf=private/style/feed.png); 24 }
Note: See TracChangeset
for help on using the changeset viewer.