r55244 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r55243‎ | r55244 | r55245 >
Date:17:55, 18 August 2009
Author:jeroendedauw
Status:deferred
Tags:
Comment:
Modified paths:
  • /tags/extensions/SemanticMaps/REL_0_3_2/SemanticMaps.php (deleted) (history)

Diff [purge]

Index: tags/extensions/SemanticMaps/REL_0_3_2/SemanticMaps.php
@@ -1,211 +0,0 @@
2 -<?php
3 -
4 -/**
5 - * Initialization file for the Semantic Maps extension.
6 - * Extension documentation: http://www.mediawiki.org/wiki/Extension:Semantic_Maps
7 - *
8 - * @file SemanticMaps.php
9 - * @ingroup SemanticMaps
10 - *
11 - * @author Jeroen De Dauw
12 - */
13 -
14 -/**
15 - * This documenation group collects source code files belonging to Semantic Maps.
16 - *
17 - * Please do not use this group name for other code. If you have an extension to
18 - * Semantic Maps, please use your own group defenition.
19 - *
20 - * @defgroup SemanticMaps Semantic Maps
21 - */
22 -
23 -if( !defined( 'MEDIAWIKI' ) ) {
24 - die( 'Not an entry point.' );
25 -}
26 -
27 -define('SM_VERSION', '0.3.1');
28 -
29 -$smgScriptPath = $wgScriptPath . '/extensions/SemanticMaps';
30 -$smgIP = $IP . '/extensions/SemanticMaps';
31 -
32 -$wgExtensionFunctions[] = 'smfSetup';
33 -
34 -$wgHooks['AdminLinks'][] = 'smfAddToAdminLinks';
35 -
36 -$wgExtensionMessagesFiles['SemanticMaps'] = $smgIP . '/SemanticMaps.i18n.php';
37 -
38 -// Autoload the general classes
39 -$wgAutoloadClasses['SMMapPrinter'] = $smgIP . '/SM_MapPrinter.php';
40 -$wgAutoloadClasses['SMMapper'] = $smgIP . '/SM_Mapper.php';
41 -$wgAutoloadClasses['SMFormInput'] = $smgIP . '/SM_FormInput.php';
42 -
43 -// Add the services
44 -$egMapsServices['googlemaps']['qp'] = array('class' => 'SMGoogleMaps', 'file' => 'GoogleMaps/SM_GoogleMaps.php', 'local' => true);
45 -$egMapsServices['googlemaps']['fi'] = array('class' => 'SMGoogleMapsFormInput', 'file' => 'GoogleMaps/SM_GoogleMapsFormInput.php', 'local' => true);
46 -
47 -$egMapsServices['yahoomaps']['qp'] = array('class' => 'SMYahooMaps', 'file' => 'YahooMaps/SM_YahooMaps.php', 'local' => true);
48 -$egMapsServices['yahoomaps']['fi'] = array('class' => 'SMYahooMapsFormInput', 'file' => 'YahooMaps/SM_YahooMapsFormInput.php', 'local' => true);
49 -
50 -$egMapsServices['openlayers']['qp'] = array('class' => 'SMOpenLayers', 'file' => 'OpenLayers/SM_OpenLayers.php', 'local' => true);
51 -$egMapsServices['openlayers']['fi'] = array('class' => 'SMOpenLayersFormInput', 'file' => 'OpenLayers/SM_OpenLayersFormInput.php', 'local' => true);
52 -
53 -/**
54 - * Initialization function for the Semantic Maps extension
55 - *
56 - */
57 -function smfSetup() {
58 - global $wgExtensionCredits, $egMapsServices;
59 -
60 - $services_list = implode(', ', array_keys($egMapsServices));
61 - $services_count = count( $egMapsServices );
62 -
63 - wfLoadExtensionMessages( 'SemanticMaps' );
64 -
65 - $wgExtensionCredits['other'][]= array(
66 - 'path' => __FILE__,
67 - 'name' => wfMsg('semanticmaps_name'),
68 - 'version' => SM_VERSION,
69 - 'author' => array("[http://bn2vs.com Jeroen De Dauw]", "Yaron Koren", "Robert Buzink"),
70 - 'url' => 'http://www.mediawiki.org/wiki/Extension:Semantic_Maps',
71 - 'description' => wfMsgExt( 'semanticmaps_desc', 'parsemag', $services_list, $services_count ),
72 - 'descriptionmsg' => wfMsgExt( 'semanticmaps_desc', 'parsemag', $services_list, $services_count ),
73 - );
74 -
75 - smfInitFormHook('map');
76 - smfInitFormat('map', array('class' => 'SMMapper', 'file' => 'SM_Mapper.php', 'local' => true));
77 -
78 - foreach($egMapsServices as $serviceName => $serviceData) {
79 - $hasQP = array_key_exists('qp', $serviceData);
80 - $hasFI = array_key_exists('fi', $serviceData);
81 -
82 - // If the service has no QP and no FI, skipt it and continue with the next one.
83 - if (!$hasQP && !$hasFI) continue;
84 -
85 - // Add the result format and form input type for the service name when needed.
86 - if ($hasQP) smfInitFormat($serviceName, $serviceData['qp']);
87 - if ($hasFI) smfInitFormHook($serviceName, $serviceData['fi']);
88 -
89 - // Loop through the service alliases, and add them as result formats and form input types when needed.
90 - foreach ($serviceData['aliases'] as $alias) {
91 - if ($hasQP) smfInitFormat($alias, $serviceData['qp']);
92 - if ($hasFI) smfInitFormHook($alias, $serviceData['fi'], $serviceName);
93 - }
94 - }
95 -
96 -}
97 -
98 -/**
99 - * Add the result format for a mapping service or alias
100 - *
101 - * @param string $format
102 - * @param array $qp
103 - */
104 -function smfInitFormat($format, array $qp) {
105 - global $wgAutoloadClasses, $smwgResultFormats, $smgIP;
106 -
107 - if (! array_key_exists($qp['class'], $wgAutoloadClasses)) {
108 - $file = $qp['local'] ? $smgIP . '/' . $qp['file'] : $qp['file'];
109 - $wgAutoloadClasses[$qp['class']] = $file;
110 - }
111 -
112 - if (isset($smwgResultFormats)) {
113 - $smwgResultFormats[$format] = $qp['class'];
114 - }
115 - else {
116 - SMWQueryProcessor::$formats[$format] = $qp['class'];
117 - }
118 -}
119 -
120 -/**
121 - * Adds a mapping service's form hook
122 - *
123 - * @param string $service
124 - * @param array $fi
125 - * @param strig $mainName
126 - */
127 -function smfInitFormHook($service, array $fi = null, $mainName = '') {
128 - global $wgAutoloadClasses, $sfgFormPrinter, $smgIP;
129 -
130 - if (isset($fi)) {
131 - if (! array_key_exists($fi['class'], $wgAutoloadClasses)) {
132 - $file = $fi['local'] ? $smgIP . '/' . $fi['file'] : $fi['file'];
133 - $wgAutoloadClasses[$fi['class']] = $file;
134 - }
135 - }
136 -
137 - // Add the form input hook for the service
138 - $field_args = array();
139 - if (strlen($mainName) > 0) $field_args['service_name'] = $mainName;
140 - $sfgFormPrinter->setInputTypeHook($service, 'smfSelectFormInputHTML', $field_args);
141 -}
142 -
143 -/**
144 - * Class for the form input type 'map'. The relevant form input class is called depending on the provided service.
145 - *
146 - * @param unknown_type $coordinates
147 - * @param unknown_type $input_name
148 - * @param unknown_type $is_mandatory
149 - * @param unknown_type $is_disabled
150 - * @param array $field_args
151 - * @return unknown
152 - */
153 -function smfSelectFormInputHTML($coordinates, $input_name, $is_mandatory, $is_disabled, array $field_args) {
154 - global $egMapsServices;
155 -
156 - // If service_name is set, use this value, and ignore any given
157 - // service parameters
158 - // This will prevent ..input type=googlemaps|service=yahoo.. from
159 - // showing up as a Yahoo! Maps map
160 - if (array_key_exists('service_name', $field_args)) {
161 - $service_name = $field_args['service_name'];
162 - }
163 - elseif (array_key_exists('service', $field_args)) {
164 - $service_name = $field_args['service'];
165 - }
166 - else{
167 - $service_name = null;
168 - }
169 -
170 - $service_name = MapsMapper::getValidService($service_name, 'fi');
171 -
172 - if (array_key_exists('fi', $egMapsServices[$service_name])) {
173 - $formInput = new $egMapsServices[$service_name]['fi']['class']();
174 -
175 - // Get and return the form input HTML from the hook corresponding with the provided service
176 - return $formInput->formInputHTML($coordinates, $input_name, $is_mandatory, $is_disabled, $field_args);
177 - }
178 - else {
179 - return "<b>ERROR: Form input for ".$field_args['service']." not found</b>";
180 - }
181 -
182 -}
183 -
184 -/**
185 - * Returns html for an html input field with a default value that will automatically dissapear when
186 - * the user clicks in it, and reappers when the focus on the field is lost and it's still empty.
187 - *
188 - * @param string $id
189 - * @param string $value
190 - * @param string $args
191 - * @return html
192 - */
193 -function smfGetDynamicInput($id, $value, $args='') {
194 - // By De Dauw Jeroen - November 2008 - http://code.bn2vs.com/viewtopic.php?t=120
195 - return '<input id="'.$id.'" '.$args.' value="'.$value.'" onfocus="if (this.value==\''.$value.'\') {this.value=\'\';}" onblur="if (this.value==\'\') {this.value=\''.$value.'\';}" />';
196 -}
197 -
198 -/**
199 - * Adds a link to Admin Links page
200 - */
201 -function smfAddToAdminLinks(&$admin_links_tree) {
202 - $displaying_data_section = $admin_links_tree->getSection(wfMsg('smw_adminlinks_displayingdata'));
203 - // Escape if SMW hasn't added links
204 - if (is_null($displaying_data_section))
205 - return true;
206 - $smw_docu_row = $displaying_data_section->getRow('smw');
207 - wfLoadExtensionMessages('SemanticMaps');
208 - $sm_docu_label = wfMsg('adminlinks_documentation', wfMsg('semanticmaps_name'));
209 - $smw_docu_row->addItem(AlItem::newFromExternalLink("http://www.mediawiki.org/wiki/Extension:Semantic_Maps", $sm_docu_label));
210 - return true;
211 -}
212 -

Status & tagging log