00001 <?php
00002
00013 if ( !defined( 'MEDIAWIKI' ) ) {
00014 die( 'Not an entry point.' );
00015 }
00016
00017 $wgHooks['MappingFeatureLoad'][] = 'SMQueryPrinters::initialize';
00018
00019 final class SMQueryPrinters {
00020
00024 public static function initialize() {
00025 global $wgAutoloadClasses;
00026
00027 $wgAutoloadClasses['SMQueryHandler'] = dirname( __FILE__ ) . '/SM_QueryHandler.php';
00028 $wgAutoloadClasses['SMMapper'] = dirname( __FILE__ ) . '/SM_Mapper.php';
00029 $wgAutoloadClasses['SMMapPrinter'] = dirname( __FILE__ ) . '/SM_MapPrinter.php';
00030 $wgAutoloadClasses['SMKMLPrinter'] = dirname( __FILE__ ) . '/SM_KMLPrinter.php';
00031
00032 self::initFormat( 'kml', 'SMKMLPrinter' );
00033
00034 $hasQueryPrinters = false;
00035
00036 foreach ( MapsMappingServices::getServiceIdentifiers() as $serviceIdentifier ) {
00037 $service = MapsMappingServices::getServiceInstance( $serviceIdentifier );
00038
00039
00040 $QPClass = $service->getFeature( 'qp' );
00041
00042
00043 if ( $QPClass === false ) continue;
00044
00045
00046 $hasQueryPrinters = true;
00047
00048
00049 $aliases = $service->getAliases();
00050 self::initFormat( $service->getName(), 'SMMapper' , $aliases );
00051 }
00052
00053
00054 if ( $hasQueryPrinters ) {
00055 self::initFormat( 'map', 'SMMapper' );
00056 }
00057
00058 return true;
00059 }
00060
00068 private static function initFormat( $format, $formatClass, array $aliases = array() ) {
00069 global $smwgResultAliases;
00070
00071
00072 self::addFormatQP( $format, $formatClass );
00073
00074
00075 if ( isset( $smwgResultAliases ) ) {
00076 $smwgResultAliases[$format] = $aliases;
00077 }
00078 else {
00079 foreach ( $aliases as $alias ) self::addFormatQP( $alias, $formatClass );
00080 }
00081 }
00082
00090 private static function addFormatQP( $format, $class ) {
00091 global $smwgResultFormats;
00092 $smwgResultFormats[$format] = $class;
00093 }
00094
00095 }