RevTag.php

Go to the documentation of this file.
00001 <?php
00014 class RevTag {
00015     protected static $schema = false;
00016 
00022     public static function checkSchema() {
00023         if ( self::$schema !== false ) {
00024             return self::$schema;
00025         } else {
00026             $dbr = wfGetDB( DB_SLAVE );
00027             if ( $dbr->tableExists( 'revtag_type' ) ) {
00028                 return self::$schema = 1;
00029             } else {
00030                 return self::$schema = 2;
00031             }
00032         }
00033     }
00034 
00041     public static function getType( $tag ) {
00042         if ( self::checkSchema() === 2 ) {
00043             return $tag;
00044         }
00045 
00046         $tags = self::loadTags();
00047 
00048         if ( isset( $tags[$tag] ) ) {
00049             return $tags[$tag];
00050         } else {
00051             $text = "Unknown revtag $tag. Known are " . implode( ', ', array_keys( $tags ) );
00052             throw new MWException( $text );
00053         }
00054     }
00055 
00062     public static function typeToTag( $tag ) {
00063         if ( self::checkSchema() === 2 ) {
00064             return $tag;
00065         }
00066 
00067         $tags = self::loadTags();
00068         $tags = array_flip( $tags );
00069 
00070         if ( isset( $tags[$tag] ) ) {
00071             return $tags[$tag];
00072         } else {
00073             $text = "Unknown revtag type $tag. Known are " . implode( ', ', array_keys( $tags ) );
00074             throw new MWException( $text );
00075         }
00076     }
00077 
00082     protected static function loadTags() {
00083         static $tags = null;
00084         if ( $tags === null ) {
00085             $tags = array();
00086 
00087             $dbr = wfGetDB( DB_SLAVE );
00088             $res = $dbr->select(
00089                 'revtag_type',
00090                 array( 'rtt_name', 'rtt_id' ),
00091                 array(),
00092                 __METHOD__
00093             );
00094 
00095             foreach ( $res as $row ) {
00096                 $tags[$row->rtt_name] = $row->rtt_id;
00097             }
00098         }
00099 
00100         return $tags;
00101     }
00102 }
Generated on Tue Oct 29 00:00:26 2013 for MediaWiki Translate Extension by  doxygen 1.6.3