Dotclear

Changeset 2613 for plugins/private


Ignore:
Timestamp:
09/01/10 14:26:45 (13 years ago)
Author:
JcDenis
Message:

Private mode : version 1.5 - Cleaner release

Location:
plugins/private
Files:
8 added
11 edited

Legend:

Unmodified
Added
Removed
  • plugins/private/_admin.php

    r2475 r2613  
    1616$menu_class = ''; 
    1717 
    18 $s = privateSettings($core); 
    19  
    20 if ($s->private_flag) 
     18if ($core->blog->settings->private->private_flag) 
    2119{ 
    22      $core->addBehavior('adminPageHTMLHead','privateadminPageHTMLHead'); 
    2320     $menu_class = 'private-blog'; 
    2421} 
     22 
     23$core->addBehavior('adminPageHTMLHead','privateadminPageHTMLHead'); 
    2524 
    2625$_menu['Plugins']->addItem(__('Private mode'), 
  • plugins/private/_define.php

    r2476 r2613  
    1111# 
    1212# -- END LICENSE BLOCK ------------------------------------ 
     13 
    1314if (!defined('DC_RC_PATH')) { return; } 
    1415 
     
    1718     /* Description*/    "Protect your blog with a password", 
    1819     /* Author */        "Osku and contributors", 
    19      /* Version */       '1.4', 
    20      /* Permissions */   'admin' 
     20     /* Version */       '1.5', 
     21     /* Permissions */   'admin', 
     22     /* Priority */      1501 
    2123); 
    2224?> 
  • plugins/private/_install.php

    r2378 r2613  
    2121} 
    2222 
    23 $s = privateSettings($core); 
     23$s = $core->blog->settings->private; 
    2424 
    2525$s->put('private_flag', 
     
    3737); 
    3838 
    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>'), 
    4841     'string', 
    4942     'Private mode public welcome message', 
  • plugins/private/_prepend.php

    r2378 r2613  
    1414if (!defined('DC_RC_PATH')) { return; } 
    1515 
     16if (version_compare(DC_VERSION,'2.2-beta','<')) { return; } 
     17 
    1618require dirname(__FILE__).'/_widgets.php'; 
    1719 
    18 $s = privateSettings($core); 
     20$core->blog->settings->addNamespace('private');  
    1921 
    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 
     26if ($core->blog->settings->private->private_flag) 
    2127{ 
    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 
    2842     $core->url->register('pubfeed', 
    2943          'feed', 
     
    3145          array('urlPrivate','publicFeed') 
    3246     ); 
    33 } 
     47      
     48     #Trick..  
     49     $core->url->register('xslt','feed/rss2/xslt','^feed/rss2/xslt$',array('urlPrivate','feedXslt')); 
    3450 
    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      } 
    4351} 
    4452?> 
  • plugins/private/_public.php

    r2475 r2613  
    1414if (!defined('DC_RC_PATH')) { return; } 
    1515 
    16 $core->tpl->addValue('PrivatePageTitle',array('tplPrivate','PrivatePageTitle')); 
     16$core->tpl->addValue('PrivateReqPage',array('tplPrivate','PrivateReqPage')); 
    1717$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           
     21if ($s->private_flag) { 
    2722     $core->addBehavior('publicBeforeDocument',array('urlPrivate','privateHandler')); 
    2823} 
    2924 
     25if ($s->private_conauto_flag) { 
     26     $core->addBehavior('publicPrivateFormAfterContent',array('behaviorsPrivate','publicPrivateFormAfterContent')); 
     27} 
     28 
     29$core->addBehavior('publicPrivateFormBeforeContent',array('behaviorsPrivate','publicPrivateFormBeforeContent')); 
     30 
     31/** 
     32* 
     33*/ 
    3034class urlPrivate extends dcUrlHandlers 
    3135{ 
    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     }     
    3643      
     44     /** 
     45     * 
     46     */ 
    3747     public static function publicFeed($args) 
    3848     { 
     49          #Don't reinvent the wheel - take a look to dcUrlHandlers/feed 
    3950          global $core,$_ctx; 
    40            
     51 
    4152          $type = null; 
    4253          $params = array(); 
    4354          $mime = 'application/xml'; 
    4455           
    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]; 
    5959          } 
    6060           
     
    6666          } 
    6767           
    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,'')); 
    6969          $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates'); 
    7070          self::serveDocument($tpl,$mime); 
     
    7373     } 
    7474 
     75     /** 
     76     * 
     77     */ 
    7578     public static function callbackfoo($args) 
    7679     { 
     80          #Woohoo :) 
    7781          return; 
    7882     } 
    7983 
     84     /** 
     85     * 
     86     */ 
    8087     public static function privateHandler($args) 
    8188     { 
    8289          global $core,$_ctx; 
    8390 
     91          #New temporary urlHandlers  
    8492          $urlp = new urlHandler(); 
    8593          $urlp->mode = $core->url->mode; 
    8694          $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) 
    87105          $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)) { 
    100119               $session = new sessionDB( 
    101120                    $core->con, 
     
    107126          } 
    108127 
    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)) { 
    120129               return; 
    121           } 
    122           else 
    123           { 
    124                // Add cookie test (automatic login) 
     130          } else { 
     131               #Add cookie test (automatic login) 
    125132               $cookiepass = "dc_privateblog_cookie_".$core->blog->id; 
    126133                
    127                if (!empty($_COOKIE[$cookiepass]))  
    128                { 
     134               if (!empty($_COOKIE[$cookiepass])) { 
    129135                    $cookiepassvalue = (($_COOKIE[$cookiepass]) == $password); 
    130136               }  
    131                else  
    132                { 
     137               else { 
    133138                    $cookiepassvalue = false; 
    134139               } 
    135140                
    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) { 
    140144                         $_SESSION['sess_blog_private'] = $_COOKIE[$cookiepass]; 
    141                          return; 
    142145                    } 
    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) { 
    147148                              $_SESSION['sess_blog_private'] = md5($_POST['private_pass']); 
    148149                               
    149                               if (!empty($_POST['pass_remember']))  
    150                               { 
     150                              if (!empty($_POST['pass_remember'])) { 
    151151                                   setcookie($cookiepass,md5($_POST['private_pass']),time() + 31536000,'/'); 
    152152                              } 
    153153                              return; 
    154154                         } 
    155                          $_ctx->blogpass_error = __('Wrong password'); 
     155                         $_ctx->form_error = __('Wrong password'); 
    156156                    } 
    157157                    $session->destroy(); 
    158158                    self::serveDocument('private.html','text/html',false); 
     159                    # --BEHAVIOR-- publicAfterDocument 
     160                    $core->callBehavior('publicAfterDocument',$core); 
    159161                    exit; 
    160162               } 
    161                elseif ($_SESSION['sess_blog_private'] != $password) 
    162                { 
     163               elseif ($_SESSION['sess_blog_private'] != $password) { 
    163164                    $session->destroy(); 
    164                     $_ctx->blogpass_error = __('Wrong password'); 
    165165                    self::serveDocument('private.html','text/html',false); 
     166                    # --BEHAVIOR-- publicAfterDocument 
     167                    $core->callBehavior('publicAfterDocument',$core); 
    166168                    exit; 
    167169               } 
    168                elseif (isset($_POST['blogout'])) 
    169                { 
     170               elseif (isset($_POST['blogout'])) { 
    170171                    $session->destroy(); 
    171172                    setcookie($cookiepass,'ciao',time() - 86400,'/'); 
    172                     $_ctx->blogpass_error = __('Disconnected'); 
     173                    $_ctx->form_error = __('You are now disconnected.'); 
    173174                    self::serveDocument('private.html','text/html',false); 
     175                    # --BEHAVIOR-- publicAfterDocument 
     176                    $core->callBehavior('publicAfterDocument',$core); 
    174177                    exit; 
    175178               } 
     
    179182} 
    180183 
     184/** 
     185* 
     186*/ 
     187class 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*/ 
    181211class tplPrivate 
    182212{ 
    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     */ 
    190216     public static function PrivateMsg($attr) 
    191217     { 
    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     */ 
    197225     public static function PrivateReqPage($attr) 
    198226     { 
    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*/ 
     236class widgetsPrivage 
     237{ 
     238     /** 
     239     * 
     240     */ 
     241     public static function widgetLogout($w)  
     242     { 
     243          if ($GLOBALS['core']->blog->settings->private->private_flag) 
    225244          { 
    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 
    251249               $res = '<div class="blogout">'. 
    252250                    ($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : ''). 
    253251                    ($w->text ? $w->text : ''). 
    254                     '<form action="'.$core->blog->url.'" method="post">'. 
     252                    '<form action="'.$GLOBALS['core']->blog->url.'" method="post">'. 
    255253                    '<p class="buttons">'. 
    256254                    '<input type="hidden" name="blogout" id="blogout" value="" />'. 
     
    259257               return $res; 
    260258          } 
    261           else 
    262           { 
    263                return; 
    264           } 
    265259     } 
    266260} 
  • plugins/private/default-templates/atom-pv.xml

    r1768 r2613  
    55  xml:lang="{{tpl:BlogLanguage}}"> 
    66   
    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> 
    98  <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/> 
    109  <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html" 
    11   title="{{tpl:BlogDescription encode_xml="1"}}"/> 
     10  title="{{tpl:lang Restricted area}}"/> 
    1211  <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated> 
    1312  <author> 
     
    1817   
    1918  <entry> 
    20     <title>{{tpl:PrivatePageTitle encode_xml="1"}}</title> 
     19    <title>{{tpl:lang Restricted area}}</title> 
    2120    <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html" 
    22     title="{{tpl:PrivatePageTitle encode_xml="1"}}" /> 
     21    title="{{tpl:lang Restricted area}}" /> 
    2322    <id>{{tpl:BlogFeedID}}</id> 
    2423    <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated> 
  • plugins/private/default-templates/private.html

    r2378 r2613  
    66  <meta name="MSSmartTagsPreventParsing" content="TRUE" /> 
    77  <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" /> 
    8   <title>{{tpl:PrivatePageTitle encode_html="1"}}</title> 
     8  <title>{{tpl:lang Restricted area}}</title> 
    99   
    1010  <style type="text/css"> 
     
    3434 
    3535<form action="{{tpl:PrivateReqPage}}" method="post"> 
    36  <h2>{{tpl:PrivatePageTitle}}</h2> 
    3736 
    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> 
    4140 
    42 {{tpl:PrivateMsg}} 
    43  
    44 {{tpl:PrivatePassRemember}} 
     41{{tpl:SysBehavior behavior="publicPrivateFormBeforeContent"}} 
    4542 
    4643<p><label>{{tpl:lang Password:}} <input type="password" name="private_pass" id="private_pass"  value=""  
    4744tabindex="1" /></label> <input type="submit" value="ok" /></p> 
    4845 
     46{{tpl:SysBehavior behavior="publicPrivateFormAfterContent"}} 
     47 
    4948</form> 
    5049</body> 
  • plugins/private/default-templates/rss2-pv.xml

    r1768 r2613  
    77  xmlns:atom="http://www.w3.org/2005/Atom"> 
    88<channel> 
    9   <title>{{tpl:BlogName encode_xml="1"}}{{tpl:SysFeedSubtitle encode_xml="1"}}</title> 
     9  <title>{{tpl:lang Restricted area}}</title> 
    1010  <link>{{tpl:BlogURL}}</link> 
    1111  <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> 
    1313  <language>{{tpl:BlogLanguage}}</language> 
    1414  <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate> 
     
    1818   
    1919  <item> 
    20     <title>{{tpl:PrivatePageTitle encode_xml="1"}}</title> 
     20    <title>{{tpl:lang Restricted area}}</title> 
    2121    <link>{{tpl:BlogURL}}</link> 
    2222    <guid isPermaLink="false">{{tpl:BlogFeedID}}</guid> 
  • plugins/private/index.php

    r2475 r2613  
    1313 
    1414// Getting current settings 
    15 $s = privateSettings($core); 
     15$s = $core->blog->settings->private; 
    1616$private_flag = (boolean)$s->private_flag; 
    1717$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';  
    2021 
    2122if (!empty($_POST['saveconfig'])) 
    2223{ 
    23      try 
    24      { 
     24     try { 
    2525          $private_flag = (empty($_POST['private_flag']))?false:true; 
    2626          $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']; 
    2928          $blog_private_pwd = md5($_POST['blog_private_pwd']); 
    3029 
    3130          $s->put('private_flag',$private_flag,'boolean','Private mode activation flag'); 
    3231          $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'); 
    3533 
    3634          if (!empty($_POST['blog_private_pwd']))  
     
    4543               } 
    4644          } 
    47  
    48      } 
    49  
    50      catch (Exception $e) 
    51      { 
     45     } catch (Exception $e) { 
    5246          $core->error->add($e->getMessage()); 
    5347     } 
    5448      
    55      if (!$core->error->flag())  
    56      { 
     49     if (!$core->error->flag()) { 
    5750          $core->blog->triggerBlog(); 
    5851          http::redirect($p_url.'&config=1'); 
     
    6053} 
    6154 
    62 if ($s->blog_private_pwd === null) 
    63 { 
     55if ($s->blog_private_pwd === null) { 
    6456     $err = __('No password set.'); 
    6557} 
     
    9284</fieldset> 
    9385<fieldset> 
    94 <legend>'.__('Presentation options').'</legend> 
    95 <div class="two-cols"> 
    96 <div class="col">'; 
     86<legend>'.__('Presentation options').'</legend>'; 
     87 
    9788if (!empty($err)) echo '<p class="error">'.$err.'</p>';  
    9889echo 
     
    10596form::password('blog_private_pwd_c',30,255). 
    10697'</label></p> 
     98<p class="area"><label>'. 
     99__('Message:').'</label>'. 
     100form::textarea('private_page_message',30,7,html::escapeHTML($message),'maximal'). 
     101'</p> 
    107102<p>'. 
    108103form::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> 
    128111</fieldset> 
    129112<p>'.form::hidden(array('p'),'private'). 
     
    133116</form> 
    134117</div>'; 
     118 
     119dcPage::helpBlock('privatemode'); 
    135120?> 
    136121</body> 
  • plugins/private/locales/fr/main.po

    r2475 r2613  
    11# Language: Français 
    2 # Module: private - 1.4 
    3 # Date: 2010-07-08 16:14:19 
     2# Module: private - 1.5 
     3# Date: 2010-09-01 12:18:27 
    44# Translated with translater 1.4.1 
    55 
     
    77msgstr "" 
    88"Content-Type: text/plain; charset=UTF-8\n" 
    9 "Project-Id-Version: private 1.4\n" 
     9"Project-Id-Version: private 1.5\n" 
    1010"POT-Creation-Date: \n" 
    11 "PO-Revision-Date: 2010-07-08T16:14:19+00:00\n" 
     11"PO-Revision-Date: 2010-09-01T12:18:27+00:00\n" 
    1212"Last-Translator: osku\n" 
    1313"Language-Team: \n" 
     
    1515"Content-Transfer-Encoding: 8bit\n" 
    1616 
    17 #: _admin.php:26 
    18 #: index.php:69 
    19 #: index.php:80 
     17#: _admin.php:25 
     18#: index.php:61 
     19#: index.php:72 
    2020msgid "Private mode" 
    2121msgstr "Mode privé" 
    2222 
    2323#: _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>" 
     24msgid "<h2>Private blog</h2><p class=\"message\">You need the password to view this blog.</p>" 
     25msgstr "<h2>Blog privé</h2><p class=\"message\">Vous avez besoin du mot de passe pour visualiser le blog..</p>" 
    3026 
    3127#: _public.php:155 
    32 #: _public.php:164 
    3328msgid "Wrong password" 
    3429msgstr "Mot de passe incorrect" 
    3530 
    36 #: _public.php:172 
    37 msgid "Disconnected" 
    38 msgstr "Déconnecté(e)" 
     31#: _public.php:173 
     32msgid "You are now disconnected." 
     33msgstr "Vous êtes maintenant déconnecté(e)." 
    3934 
    40 #: _public.php:228 
     35#: _public.php:204 
    4136msgid "Enable automatic connection" 
    4237msgstr "Activer la connexion automatique" 
     
    4641msgid "Blog logout" 
    4742msgstr "Déconnexion du blog" 
    48  
    49 #: _widgets.php:23 
    50 #: index.php:120 
    51 msgid "Title:" 
    52 msgstr "Titre :" 
    53  
    54 #: _widgets.php:24 
    55 msgid "Text:" 
    56 msgstr "Texte :" 
    5743 
    5844#: _widgets.php:25 
     
    6450msgstr "Se déconnecter" 
    6551 
    66 #: _widgets.php:26 
    67 msgid "Home page only" 
    68 msgstr "Page d'accueil uniquement" 
     52#: default-templates/private.html:8 
     53msgid "Restricted area" 
     54msgstr "Zone d'accès restreint" 
    6955 
    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 
    7557msgid "No password set." 
    7658msgstr "Aucun mot de passe défini." 
    7759 
    78 #: index.php:77 
     60#: index.php:69 
    7961msgid "Configuration successfully updated." 
    8062msgstr "Configuration mise à jour avec succès." 
    8163 
    82 #: index.php:86 
     64#: index.php:78 
    8365msgid "Plugin activation" 
    8466msgstr "Activation de l'extension" 
    8567 
    86 #: index.php:90 
     68#: index.php:82 
    8769msgid "Enable private mode" 
    8870msgstr "Activer le mode privé" 
    8971 
    90 #: index.php:94 
     72#: index.php:86 
    9173msgid "Presentation options" 
    9274msgstr "Options d'affichage" 
    9375 
    9476#: 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 :" 
     77msgid "Message:" 
     78msgstr "Message :" 
    10279 
    10380#: index.php:104 
    104 msgid "Confirm password:" 
    105 msgstr "Confirmez le mot de passe :" 
    106  
    107 #: index.php:109 
    10881msgid "Propose automatic connection to visitors" 
    10982msgstr "Proposer la connexion automatique aux visiteurs" 
    11083 
    111 #: index.php:112 
    112 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:114 
    116 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:116 
    120 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:124 
    124 msgid "Message:" 
    125 msgstr "Message :" 
    126  
    127 #: index.php:131 
    128 msgid "save" 
    129 msgstr "enregistrer" 
    130  
  • plugins/private/style/admin.css

    r2475 r2613  
    11#main-menu #private-blog a { 
    22     padding: 2px; 
    3      background: #161400; 
    4      color: #B9B23B; 
    5      border: 1px solid #161400; 
     3     background: #A60000; 
     4     color: #FFFFFF; 
     5     border: 1px solid #A60C00; 
    66     -moz-border-radius: 3px; 
    77     -webkit-border-radius: 3px; 
    88} 
     9ul.feedinfo { 
     10     display: block; 
     11     list-style: none; 
     12     margin: 1em 0; 
     13     padding: 0; 
     14} 
     15ul.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} 
     22ul.feedinfo .feed { 
     23     background-image: url(index.php?pf=private/style/feed.png); 
     24} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map