MediaWiki  REL1_24
listVariants.php
Go to the documentation of this file.
00001 <?php
00026 require_once dirname( __DIR__ ) . '/Maintenance.php';
00027 
00031 class ListVariants extends Maintenance {
00032 
00033     public function __construct() {
00034         parent::__construct();
00035         $this->mDescription = 'Outputs a list of language variants';
00036         $this->addOption( 'flat', 'Output variants in a flat list' );
00037         $this->addOption( 'json', 'Output variants as JSON' );
00038     }
00039 
00040     public function execute() {
00041         $variantLangs = array();
00042         $variants = array();
00043         foreach ( LanguageConverter::$languagesWithVariants as $langCode ) {
00044             $lang = Language::factory( $langCode );
00045             if ( count( $lang->getVariants() ) > 1 ) {
00046                 $variants += array_flip( $lang->getVariants() );
00047                 $variantLangs[$langCode] = $lang->getVariants();
00048             }
00049         }
00050         $variants = array_keys( $variants );
00051         sort( $variants );
00052         $result = $this->hasOption( 'flat' ) ? $variants : $variantLangs;
00053 
00054         // Not using $this->output() because muting makes no sense here
00055         if ( $this->hasOption( 'json' ) ) {
00056             echo FormatJson::encode( $result, true ) . "\n";
00057         } else {
00058             foreach ( $result as $key => $value ) {
00059                 if ( is_array( $value ) ) {
00060                     echo "$key\n";
00061                     foreach ( $value as $variant ) {
00062                         echo "   $variant\n";
00063                     }
00064                 } else {
00065                     echo "$value\n";
00066                 }
00067             }
00068         }
00069     }
00070 }
00071 
00072 $maintClass = 'ListVariants';
00073 require_once RUN_MAINTENANCE_IF_MAIN;