Localisation updates for core messages from Betawiki (2008-06-23 22:55 CEST)
[lhc/web/wiklou.git] / includes / Block.php
index 9585804..2a1ad69 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 /**
+ * @file
  * Blocks and bans object
  */
 
@@ -485,6 +486,12 @@ class Block
                                wfDebug( " No match\n" );
                        }
                }
+               
+               ## Allow hooks to cancel the autoblock.
+               if (!wfRunHooks( 'AbortAutoblock', array( $autoblockip, &$this ) )) {
+                       wfDebug( "Autoblock aborted by hook." );
+                       return false;
+               }
 
                # It's okay to autoblock. Go ahead and create/insert the block.
 
@@ -703,5 +710,48 @@ class Block
                return $infinity;
                 */
        }
+       
+       /**
+        * Convert a DB-encoded expiry into a real string that humans can read.
+        */
+       static function formatExpiry( $encoded_expiry ) {
+       
+               static $msg = null;
+               
+               if( is_null( $msg ) ) {
+                       $msg = array();
+                       $keys = array( 'infiniteblock', 'expiringblock' );
+                       foreach( $keys as $key ) {
+                               $msg[$key] = wfMsgHtml( $key );
+                       }
+               }
+               
+               $expiry = Block::decodeExpiry( $encoded_expiry );
+               if ($expiry == 'infinity') {
+                       $expirystr = $msg['infiniteblock'];
+               } else {
+                       global $wgLang;
+                       $expiretimestr = $wgLang->timeanddate( $expiry, true );
+                       $expirystr = wfMsgReplaceArgs( $msg['expiringblock'], array($expiretimestr) );
+               }
+
+               return $expirystr;
+       }
+       
+       /**
+        * Convert a typed-in expiry time into something we can put into the database.
+        */
+       static function parseExpiryInput( $expiry_input ) {
+               if ( $expiry_input == 'infinite' || $expiry_input == 'indefinite' ) {
+                       $expiry = 'infinity';
+               } else {
+                       $expiry = strtotime( $expiry_input );
+                       if ($expiry < 0 || $expiry === false) {
+                               return false;
+                       }
+               }
+               
+               return $expiry;
+       }
 
 }