Index: trunk/extensions/SemanticMediaWiki/RELEASE-NOTES |
— | — | @@ -6,7 +6,9 @@ |
7 | 7 | |
8 | 8 | * Improved performance. Significantly improved memory usage on common |
9 | 9 | operations. |
10 | | -* Support for running SMW on PostgresQL (testing needed). |
| 10 | +* Initial support for running SMW on PostgresQL (testing needed). |
| 11 | +* The query formats 'vcard' and 'icalendar' have been moved to the Semantic |
| 12 | + Result Formats extension to make the SMW core more light-weight |
11 | 13 | * SMW_refreshData.php now supports parameter --page to specify one or more |
12 | 14 | pages to be updated (instead of using ID ranges) |
13 | 15 | * Various bugfixes |
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_QP_iCalendar.php |
— | — | @@ -1,161 +0,0 @@ |
2 | | -<?php |
3 | | -/** |
4 | | - * Create iCalendar exports |
5 | | - * @file |
6 | | - * @ingroup SMWQuery |
7 | | - */ |
8 | | - |
9 | | -/** |
10 | | - * Printer class for creating iCalendar exports |
11 | | - * @author Markus Krötzsch |
12 | | - * @author Denny Vrandecic |
13 | | - * @ingroup SMWQuery |
14 | | - */ |
15 | | -class SMWiCalendarResultPrinter extends SMWResultPrinter { |
16 | | - protected $m_title = ''; |
17 | | - protected $m_description = ''; |
18 | | - |
19 | | - protected function readParameters($params,$outputmode) { |
20 | | - SMWResultPrinter::readParameters($params,$outputmode); |
21 | | - if (array_key_exists('title', $this->m_params)) { |
22 | | - $this->m_title = trim($this->m_params['title']); |
23 | | - // for backward compatibility |
24 | | - } elseif (array_key_exists('icalendartitle', $this->m_params)) { |
25 | | - $this->m_title = trim($this->m_params['icalendartitle']); |
26 | | - } |
27 | | - if (array_key_exists('description', $this->m_params)) { |
28 | | - $this->m_description = trim($this->m_params['description']); |
29 | | - // for backward compatibility |
30 | | - } elseif (array_key_exists('icalendardescription', $this->m_params)) { |
31 | | - $this->m_description = trim($this->m_params['icalendardescription']); |
32 | | - } |
33 | | - } |
34 | | - |
35 | | - public function getMimeType($res) { |
36 | | - return 'text/calendar'; |
37 | | - } |
38 | | - |
39 | | - public function getFileName($res) { |
40 | | - if ($this->m_title != '') { |
41 | | - return str_replace(' ', '_',$this->m_title) . '.ics'; |
42 | | - } else { |
43 | | - return 'iCalendar.ics'; |
44 | | - } |
45 | | - } |
46 | | - |
47 | | - protected function getResultText($res, $outputmode) { |
48 | | - global $smwgIQRunningNumber, $wgSitename, $wgServer, $wgRequest; |
49 | | - $result = ''; |
50 | | - |
51 | | - if ($outputmode == SMW_OUTPUT_FILE) { // make RSS feed |
52 | | - if ($this->m_title == '') { |
53 | | - $this->m_title = $wgSitename; |
54 | | - } |
55 | | - $result .= "BEGIN:VCALENDAR\r\n"; |
56 | | - $result .= "PRODID:-//SMW Project//Semantic MediaWiki\r\n"; |
57 | | - $result .= "VERSION:2.0\r\n"; |
58 | | - $result .= "METHOD:PUBLISH\r\n"; |
59 | | - $result .= "X-WR-CALNAME:" . $this->m_title . "\r\n"; |
60 | | - if ($this->m_description !== '') { |
61 | | - $result .= "X-WR-CALDESC:" . $this->m_description . "\r\n"; |
62 | | - } |
63 | | - |
64 | | - $row = $res->getNext(); |
65 | | - while ( $row !== false ) { |
66 | | - $wikipage = $row[0]->getNextObject(); // get the object |
67 | | - $startdate = false; |
68 | | - $enddate = false; |
69 | | - $location = ''; |
70 | | - $description = ''; |
71 | | - foreach ($row as $field) { |
72 | | - // later we may add more things like a generic |
73 | | - // mechanism to add whatever you want :) |
74 | | - // could include funny things like geo, description etc. though |
75 | | - $req = $field->getPrintRequest(); |
76 | | - if ( (strtolower($req->getLabel()) == "start") && ($req->getTypeID() == "_dat") ) { |
77 | | - $startdate = current($field->getContent()); // save only the first |
78 | | - } |
79 | | - if ( (strtolower($req->getLabel()) == "end") && ($req->getTypeID() == "_dat") ) { |
80 | | - $enddate = current($field->getContent()); // save only the first |
81 | | - } |
82 | | - if (strtolower($req->getLabel()) == "location") { |
83 | | - $value = current($field->getContent()); // save only the first |
84 | | - if ($value !== false) { |
85 | | - $location = $value->getShortWikiText(); |
86 | | - } |
87 | | - } |
88 | | - if (strtolower($req->getLabel()) == "description") { |
89 | | - $value = current($field->getContent()); // save only the first |
90 | | - if ($value !== false) { |
91 | | - $description = $value->getShortWikiText(); |
92 | | - } |
93 | | - } |
94 | | - } |
95 | | - $title = $wikipage->getTitle(); |
96 | | - $article = new Article($title); |
97 | | - $url = $title->getFullURL(); |
98 | | - $result .= "BEGIN:VEVENT\r\n"; |
99 | | - $result .= "SUMMARY:" . $wikipage->getShortWikiText() . "\r\n"; |
100 | | - $result .= "URL:$url\r\n"; |
101 | | - $result .= "UID:$url\r\n"; |
102 | | - if ($startdate != false) $result .= "DTSTART:" . $this->parsedate($startdate) . "\r\n"; |
103 | | - if ($enddate != false) $result .= "DTEND:" . $this->parsedate($enddate,true) . "\r\n"; |
104 | | - if ($location != "") $result .= "LOCATION:$location\r\n"; |
105 | | - if ($description != "") $result .= "DESCRIPTION:$description\r\n"; |
106 | | - $t = strtotime(str_replace('T', ' ', $article->getTimestamp())); |
107 | | - $result .= "DTSTAMP:" . date("Ymd", $t) . "T" . date("His", $t) . "\r\n"; |
108 | | - $result .= "SEQUENCE:" . $title->getLatestRevID() . "\r\n"; |
109 | | - $result .= "END:VEVENT\r\n"; |
110 | | - $row = $res->getNext(); |
111 | | - } |
112 | | - $result .= "END:VCALENDAR\r\n"; |
113 | | - } else { // just make link to feed |
114 | | - if ($this->getSearchLabel($outputmode)) { |
115 | | - $label = $this->getSearchLabel($outputmode); |
116 | | - } else { |
117 | | - wfLoadExtensionMessages('SemanticMediaWiki'); |
118 | | - $label = wfMsgForContent('smw_icalendar_link'); |
119 | | - } |
120 | | - $link = $res->getQueryLink($label); |
121 | | - $link->setParameter('icalendar','format'); |
122 | | - if ($this->m_title !== '') { |
123 | | - $link->setParameter($this->m_title,'title'); |
124 | | - } |
125 | | - if ($this->m_description !== '') { |
126 | | - $link->setParameter($this->m_description,'description'); |
127 | | - } |
128 | | - if (array_key_exists('limit', $this->m_params)) { |
129 | | - $link->setParameter($this->m_params['limit'],'limit'); |
130 | | - } else { // use a reasonable default limit |
131 | | - $link->setParameter(20,'limit'); |
132 | | - } |
133 | | - |
134 | | - $result .= $link->getText($outputmode,$this->mLinker); |
135 | | - $this->isHTML = ($outputmode == SMW_OUTPUT_HTML); // yes, our code can be viewed as HTML if requested, no more parsing needed |
136 | | - } |
137 | | - |
138 | | - return $result; |
139 | | - } |
140 | | - |
141 | | - /** |
142 | | - * Extract a date string formatted for iCalendar from a SMWTimeValue object. |
143 | | - */ |
144 | | - static private function parsedate(SMWTimeValue $dv, $isend=false) { |
145 | | - $year = $dv->getYear(); |
146 | | - if ( ($year > 9999) || ($year<-9998) ) return ''; // ISO range is limited to four digits |
147 | | - $year = number_format($year, 0, '.', ''); |
148 | | - $time = str_replace(':','', $dv->getTimeString(false)); |
149 | | - if ( ($time == false) && ($isend) ) { // increment by one day, compute date to cover leap years etc. |
150 | | - $dv = SMWDataValueFactory::newTypeIDValue('_dat',$dv->getWikiValue() . 'T00:00:00+24:00'); |
151 | | - } |
152 | | - $month = $dv->getMonth(); |
153 | | - if (strlen($month) == 1) $month = '0' . $month; |
154 | | - $day = $dv->getDay(); |
155 | | - if (strlen($day) == 1) $day = '0' . $day; |
156 | | - $result = $year . $month . $day; |
157 | | - if ($time != false) $result .= "T$time"; |
158 | | - return $result; |
159 | | - } |
160 | | - |
161 | | -} |
162 | | - |
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_QP_vCard.php |
— | — | @@ -1,538 +0,0 @@ |
2 | | -<?php |
3 | | -/** |
4 | | - * Create vCard exports |
5 | | - * @file |
6 | | - * @ingroup SMWQuery |
7 | | - */ |
8 | | - |
9 | | -/** |
10 | | - * Printer class for creating vCard exports |
11 | | - * @author Markus Krötzsch |
12 | | - * @author Denny Vrandecic |
13 | | - * @author Frank Dengler |
14 | | - * @ingroup SMWQuery |
15 | | - */ |
16 | | -class SMWvCardResultPrinter extends SMWResultPrinter { |
17 | | - protected $m_title = ''; |
18 | | - protected $m_description = ''; |
19 | | - |
20 | | - public function getMimeType($res) { |
21 | | - return 'text/x-vcard'; |
22 | | - } |
23 | | - |
24 | | - public function getFileName($res) { |
25 | | - if ($this->getSearchLabel(SMW_OUTPUT_WIKI) != '') { |
26 | | - return str_replace(' ', '_',$this->getSearchLabel(SMW_OUTPUT_WIKI)) . '.vcf'; |
27 | | - } else { |
28 | | - return 'vCard.vcf'; |
29 | | - } |
30 | | - } |
31 | | - |
32 | | - protected function getResultText($res, $outputmode) { |
33 | | - global $smwgIQRunningNumber, $wgSitename, $wgServer, $wgRequest; |
34 | | - $result = ''; |
35 | | - $items = array(); |
36 | | - if ($outputmode == SMW_OUTPUT_FILE) { // make vCard file |
37 | | - if ($this->m_title == '') { |
38 | | - $this->m_title = $wgSitename; |
39 | | - } |
40 | | - $row = $res->getNext(); |
41 | | - while ( $row !== false ) { |
42 | | - $wikipage = $row[0]->getNextObject(); // get the object |
43 | | - // name |
44 | | - $prefix = ''; // something like 'Dr.' |
45 | | - $firstname = ''; // given name |
46 | | - $additionalname = ''; // typically the "middle" name (second first name) |
47 | | - $lastname = ''; // family name |
48 | | - $suffix = ''; // things like "jun." or "sen." |
49 | | - $fullname = ''; // the "formatted name", may be independent from first/lastname & co. |
50 | | - // contacts |
51 | | - $emails = array(); |
52 | | - $tels = array(); |
53 | | - $addresses = array(); |
54 | | - // organisational details: |
55 | | - $organization = ''; // any string |
56 | | - $jobtitle =''; |
57 | | - $role = ''; |
58 | | - $department =''; |
59 | | - // other stuff |
60 | | - $category =''; |
61 | | - $birthday = ''; // a date |
62 | | - $url =''; // homepage, a legal URL |
63 | | - $note =''; // any text |
64 | | - $workaddress = false; |
65 | | - $homeaddress = false; |
66 | | - |
67 | | - $workpostofficebox =''; |
68 | | - $workextendedaddress =''; |
69 | | - $workstreet =''; |
70 | | - $worklocality =''; |
71 | | - $workregion =''; |
72 | | - $workpostalcode =''; |
73 | | - $workcountry =''; |
74 | | - |
75 | | - |
76 | | - $homepostofficebox =''; |
77 | | - $homeextendedaddress =''; |
78 | | - $homestreet =''; |
79 | | - $homelocality =''; |
80 | | - $homeregion =''; |
81 | | - $homepostalcode =''; |
82 | | - $homecountry =''; |
83 | | - |
84 | | - foreach ($row as $field) { |
85 | | - // later we may add more things like a generic |
86 | | - // mechanism to add non-standard vCard properties as well |
87 | | - // (could include funny things like geo, description etc.) |
88 | | - $req = $field->getPrintRequest(); |
89 | | - $reqValue = (strtolower($req->getLabel())); |
90 | | - switch($reqValue) { |
91 | | - case "name": |
92 | | - $value = current($field->getContent()); // save only the first |
93 | | - if ($value !== false) { |
94 | | - $fullname = $value->getShortWikiText(); |
95 | | - } |
96 | | - break; |
97 | | - |
98 | | - case "prefix": |
99 | | - foreach ($field->getContent() as $value) { |
100 | | - $prefix .= ($prefix?',':'') . $value->getShortWikiText(); |
101 | | - } |
102 | | - break; |
103 | | - |
104 | | - case "suffix": |
105 | | - foreach ($field->getContent() as $value) { |
106 | | - $suffix .= ($suffix?',':'') . $value->getShortWikiText(); |
107 | | - } |
108 | | - break; |
109 | | - |
110 | | - case "firstname": |
111 | | - $value = current($field->getContent()); // save only the first |
112 | | - if ($value !== false) { |
113 | | - $firstname = $value->getShortWikiText(); |
114 | | - } |
115 | | - break; |
116 | | - |
117 | | - case "extraname": |
118 | | - foreach ($field->getContent() as $value) { |
119 | | - $additionalname .= ($additionalname?',':'') . $value->getShortWikiText(); |
120 | | - } |
121 | | - break; |
122 | | - |
123 | | - case "lastname": |
124 | | - $value = current($field->getContent()); // save only the first |
125 | | - if ($value !== false) { |
126 | | - $lastname = $value->getShortWikiText(); |
127 | | - } |
128 | | - break; |
129 | | - |
130 | | - case "note": |
131 | | - foreach ($field->getContent() as $value) { |
132 | | - $note .= ($note?', ':'') . $value->getShortWikiText(); |
133 | | - } |
134 | | - break; |
135 | | - |
136 | | - case "email": |
137 | | - foreach ($field->getContent() as $entry) { |
138 | | - $emails[] = new SMWvCardEmail('internet', $entry->getShortWikiText()); |
139 | | - } |
140 | | - break; |
141 | | - |
142 | | - case "workphone": |
143 | | - foreach ($field->getContent() as $entry) { |
144 | | - $tels[] = new SMWvCardTel('WORK',$entry->getShortWikiText()); |
145 | | - } |
146 | | - break; |
147 | | - |
148 | | - case "cellphone": |
149 | | - foreach ($field->getContent() as $entry) { |
150 | | - $tels[] = new SMWvCardTel('CELL',$entry->getShortWikiText()); |
151 | | - } |
152 | | - break; |
153 | | - |
154 | | - case "homephone": |
155 | | - foreach ($field->getContent() as $entry) { |
156 | | - $tels[] = new SMWvCardTel('HOME',$entry->getShortWikiText()); |
157 | | - } |
158 | | - break; |
159 | | - |
160 | | - case "organization": |
161 | | - $value = current($field->getContent()); // save only the first |
162 | | - if ($value !== false) { |
163 | | - $organization = $value->getShortWikiText(); |
164 | | - } |
165 | | - break; |
166 | | - |
167 | | - case "workpostofficebox": |
168 | | - $value = current($field->getContent()); // save only the first |
169 | | - if ($value !== false) { |
170 | | - $workpostofficebox = $value->getShortWikiText(); |
171 | | - $workaddress = true; |
172 | | - } |
173 | | - break; |
174 | | - |
175 | | - case "workextendedaddress": |
176 | | - $value = current($field->getContent()); // save only the first |
177 | | - if ($value !== false) { |
178 | | - $workextendedaddress = $value->getShortWikiText(); |
179 | | - $workaddress = true; |
180 | | - } |
181 | | - break; |
182 | | - |
183 | | - case "workstreet": |
184 | | - $value = current($field->getContent()); // save only the first |
185 | | - if ($value !== false) { |
186 | | - $workstreet = $value->getShortWikiText(); |
187 | | - $workaddress = true; |
188 | | - } |
189 | | - break; |
190 | | - |
191 | | - case "worklocality": |
192 | | - $value = current($field->getContent()); // save only the first |
193 | | - if ($value !== false) { |
194 | | - $worklocality = $value->getShortWikiText(); |
195 | | - $workaddress = true; |
196 | | - } |
197 | | - break; |
198 | | - |
199 | | - case "workregion": |
200 | | - $value = current($field->getContent()); // save only the first |
201 | | - if ($value !== false) { |
202 | | - $workregion = $value->getShortWikiText(); |
203 | | - $workaddress = true; |
204 | | - } |
205 | | - break; |
206 | | - |
207 | | - case "workpostalcode": |
208 | | - $value = current($field->getContent()); // save only the first |
209 | | - if ($value !== false) { |
210 | | - $workpostalcode = $value->getShortWikiText(); |
211 | | - $workaddress = true; |
212 | | - } |
213 | | - break; |
214 | | - |
215 | | - case "workcountry": |
216 | | - $value = current($field->getContent()); // save only the first |
217 | | - if ($value !== false) { |
218 | | - $workcountry = $value->getShortWikiText(); |
219 | | - $workaddress = true; |
220 | | - } |
221 | | - break; |
222 | | - |
223 | | - case "homepostofficebox": |
224 | | - $value = current($field->getContent()); // save only the first |
225 | | - if ($value !== false) { |
226 | | - $homepostofficebox = $value->getShortWikiText(); |
227 | | - $homeaddress = true; |
228 | | - } |
229 | | - break; |
230 | | - |
231 | | - case "homeextendedaddress": |
232 | | - $value = current($field->getContent()); // save only the first |
233 | | - if ($value !== false) { |
234 | | - $homeextendedaddress = $value->getShortWikiText(); |
235 | | - $homeaddress = true; |
236 | | - } |
237 | | - break; |
238 | | - |
239 | | - case "homestreet": |
240 | | - $value = current($field->getContent()); // save only the first |
241 | | - if ($value !== false) { |
242 | | - $homestreet = $value->getShortWikiText(); |
243 | | - $homeaddress = true; |
244 | | - } |
245 | | - break; |
246 | | - |
247 | | - case "homelocality": |
248 | | - $value = current($field->getContent()); // save only the first |
249 | | - if ($value !== false) { |
250 | | - $homelocality = $value->getShortWikiText(); |
251 | | - $homeaddress = true; |
252 | | - } |
253 | | - break; |
254 | | - |
255 | | - case "homeregion": |
256 | | - $value = current($field->getContent()); // save only the first |
257 | | - if ($value !== false) { |
258 | | - $homeregion = $value->getShortWikiText(); |
259 | | - $homeaddress = true; |
260 | | - } |
261 | | - break; |
262 | | - |
263 | | - case "homepostalcode": |
264 | | - $value = current($field->getContent()); // save only the first |
265 | | - if ($value !== false) { |
266 | | - $homepostalcode = $value->getShortWikiText(); |
267 | | - $homeaddress = true; |
268 | | - } |
269 | | - break; |
270 | | - |
271 | | - case "homecountry": |
272 | | - $value = current($field->getContent()); // save only the first |
273 | | - if ($value !== false) { |
274 | | - $homecountry = $value->getShortWikiText(); |
275 | | - $homeaddress = true; |
276 | | - } |
277 | | - break; |
278 | | - |
279 | | - case "birthday": |
280 | | - if ($req->getTypeID() == "_dat") { |
281 | | - $value = current($field->getContent()); // save only the first |
282 | | - if ($value !== false) { |
283 | | - $birthday = $value->getXMLSchemaDate(); |
284 | | - } |
285 | | - } |
286 | | - break; |
287 | | - |
288 | | - case "homepage": |
289 | | - if ($req->getTypeID() == "_uri") { |
290 | | - $value = current($field->getContent()); // save only the first |
291 | | - if ($value !== false) { |
292 | | - $url = $value->getWikiValue(); |
293 | | - } |
294 | | - } |
295 | | - break; |
296 | | - } |
297 | | - } |
298 | | - $pagetitle = $wikipage->getTitle(); |
299 | | - if ($workaddress) $addresses[] = new SMWvCardAddress ('WORK', $workpostofficebox, $workextendedaddress, $workstreet, $worklocality, $workregion, $workpostalcode, $workcountry); |
300 | | - if ($homeaddress) $addresses[] = new SMWvCardAddress ('HOME', $homepostofficebox, $homeextendedaddress, $homestreet, $homelocality, $homeregion, $homepostalcode, $homecountry); |
301 | | - $items[] = new SMWvCardEntry($pagetitle, $prefix, $firstname, $lastname, $additionalname, $suffix, $fullname, $tels, $addresses, $emails, $birthday, $jobtitle, $role, $organization, $department, $category, $url, $note); |
302 | | - $row = $res->getNext(); |
303 | | - } |
304 | | - foreach ($items as $item) { |
305 | | - $result .= $item->text(); |
306 | | - } |
307 | | - } else { // just make link to vcard |
308 | | - if ($this->getSearchLabel($outputmode)) { |
309 | | - $label = $this->getSearchLabel($outputmode); |
310 | | - } else { |
311 | | - wfLoadExtensionMessages('SemanticMediaWiki'); |
312 | | - $label = wfMsgForContent('smw_vcard_link'); |
313 | | - } |
314 | | - $link = $res->getQueryLink($label); |
315 | | - $link->setParameter('vcard','format'); |
316 | | - if ($this->getSearchLabel(SMW_OUTPUT_WIKI) != '') { |
317 | | - $link->setParameter($this->getSearchLabel(SMW_OUTPUT_WIKI),'searchlabel'); |
318 | | - } |
319 | | - if (array_key_exists('limit', $this->m_params)) { |
320 | | - $link->setParameter($this->m_params['limit'],'limit'); |
321 | | - } else { // use a reasonable default limit |
322 | | - $link->setParameter(20,'limit'); |
323 | | - } |
324 | | - $result .= $link->getText($outputmode,$this->mLinker); |
325 | | - $this->isHTML = ($outputmode == SMW_OUTPUT_HTML); // yes, our code can be viewed as HTML if requested, no more parsing needed |
326 | | - } |
327 | | - return $result; |
328 | | - } |
329 | | - |
330 | | -} |
331 | | - |
332 | | -/** |
333 | | - * Represents a single entry in an vCard |
334 | | - * @ingroup SMWQuery |
335 | | - */ |
336 | | -class SMWvCardEntry { |
337 | | - private $uri; |
338 | | - private $label; |
339 | | - private $fullname; |
340 | | - private $firstname; |
341 | | - private $lastname; |
342 | | - private $additionalname; |
343 | | - private $prefix; |
344 | | - private $suffix; |
345 | | - private $tels = array(); |
346 | | - private $addresses = array(); |
347 | | - private $emails = array(); |
348 | | - private $birthday; |
349 | | - private $dtstamp; |
350 | | - private $title; |
351 | | - private $role; |
352 | | - private $organization; |
353 | | - private $department; |
354 | | - private $category; |
355 | | - private $note; |
356 | | - |
357 | | - /** |
358 | | - * Constructor for a single item in the vcard. Requires the URI of the item. |
359 | | - */ |
360 | | - public function SMWVCardEntry(Title $t, $prefix, $firstname, $lastname, $additionalname, $suffix, $fullname, $tels, $addresses, $emails, $birthday, $jobtitle, $role, $organization, $department, $category, $url, $note) { |
361 | | - global $wgServer; |
362 | | - $this->uri = $t->getFullURL(); |
363 | | - $this->url = $url; |
364 | | - // read fullname or guess it in a simple way from other names that are given |
365 | | - if ($fullname != '') { |
366 | | - $this->label = $fullname; |
367 | | - } elseif ($firstname . $lastname != '') { |
368 | | - $this->label = $firstname . (( ($firstname!='') && ($lastname!='') )?' ':'') . $lastname; |
369 | | - } else { |
370 | | - $this->label = $t->getText(); |
371 | | - } |
372 | | - $this->label = SMWVCardEntry::vCardEscape($this->label); |
373 | | - // read firstname and lastname, or guess it from other names that are given |
374 | | - if ($firstname . $lastname == '') { // guessing needed |
375 | | - $nameparts = explode(' ', $this->label); |
376 | | - // Accepted forms for guessing: |
377 | | - // "Lastname" |
378 | | - // "Firstname Lastname" |
379 | | - // "Firstname <Additionalnames> Lastname" |
380 | | - $this->lastname = SMWVCardEntry::vCardEscape(array_pop($nameparts)); |
381 | | - if (count($nameparts)>0) $this->firstname = SMWVCardEntry::vCardEscape(array_shift($nameparts)); |
382 | | - foreach ($nameparts as $name) { |
383 | | - $this->additionalname .= ($this->additionalname!=''?',':'') . SMWVCardEntry::vCardEscape($name); |
384 | | - } |
385 | | - } else { |
386 | | - $this->firstname = SMWVCardEntry::vCardEscape($firstname); |
387 | | - $this->lastname = SMWVCardEntry::vCardEscape($lastname); |
388 | | - } |
389 | | - if ($additionalname != '') $this->additionalname = $additionalname; // no escape, can be a value list |
390 | | - // ^ overwrite above guessing in that case |
391 | | - $this->prefix = SMWVCardEntry::vCardEscape($prefix); |
392 | | - $this->suffix = SMWVCardEntry::vCardEscape($suffix); |
393 | | - $this->tels = $tels; |
394 | | - $this->addresses = $addresses; |
395 | | - $this->emails = $emails; |
396 | | - $this->birthday = $birthday; |
397 | | - $this->title = SMWVCardEntry::vCardEscape($jobtitle); |
398 | | - $this->role = SMWVCardEntry::vCardEscape($role); |
399 | | - $this->organization = SMWVCardEntry::vCardEscape($organization); |
400 | | - $this->department = SMWVCardEntry::vCardEscape($department); |
401 | | - $this->category = $category; // allow non-escaped "," in here for making a list of categories |
402 | | - $this->note = SMWVCardEntry::vCardEscape($note); |
403 | | - |
404 | | - $article = new Article($t); |
405 | | - $this->dtstamp = $article->getTimestamp(); |
406 | | - } |
407 | | - |
408 | | - |
409 | | - /** |
410 | | - * Creates the vCard output for a single item. |
411 | | - */ |
412 | | - public function text() { |
413 | | - $text = "BEGIN:VCARD\r\n"; |
414 | | - $text .= "VERSION:3.0\r\n"; |
415 | | - // N and FN are required properties in vCard 3.0, we need to write something there |
416 | | - $text .= "N;CHARSET=UTF-8:$this->lastname;$this->firstname;$this->additionalname;$this->prefix;$this->suffix\r\n"; |
417 | | - $text .= "FN;CHARSET=UTF-8:$this->label\r\n"; |
418 | | - // heuristic for setting confidentiality level of vCard: |
419 | | - global $wgGroupPermissions; |
420 | | - if ( (array_key_exists('*', $wgGroupPermissions)) && |
421 | | - (array_key_exists('read', $wgGroupPermissions['*'])) ) { |
422 | | - $public = $wgGroupPermissions['*']['read']; |
423 | | - } else { |
424 | | - $public = true; |
425 | | - } |
426 | | - $text .= ($public?'CLASS:PUBLIC':'CLASS:CONFIDENTIAL') . "\r\n"; |
427 | | - if ($this->birthday !== "") $text .= "BDAY:$this->birthday\r\n"; |
428 | | - if ($this->title !== "") $text .= "TITLE;CHARSET=UTF-8:$this->title\r\n"; |
429 | | - if ($this->role !== "") $text .= "ROLE;CHARSET=UTF-8:$this->role\r\n"; |
430 | | - if ($this->organization !== "") $text .= "ORG;CHARSET=UTF-8:$this->organization;$this->department\r\n"; |
431 | | - if ($this->category !== "") $text .= "CATEGORIES;CHARSET=UTF-8:$this->category\r\n"; |
432 | | - foreach ($this->emails as $entry) $text .= $entry->createVCardEmailText(); |
433 | | - foreach ($this->addresses as $entry) $text .= $entry->createVCardAddressText(); |
434 | | - foreach ($this->tels as $entry) $text .= $entry->createVCardTelText(); |
435 | | - if ($this->note !== "") $text .= "NOTE;CHARSET=UTF-8:$this->note\r\n"; |
436 | | - $text .= "SOURCE;CHARSET=UTF-8:$this->uri\r\n"; |
437 | | - $text .= "PRODID:-////Semantic MediaWiki\r\n"; |
438 | | - $text .= "REV:$this->dtstamp\r\n"; |
439 | | - $text .= "URL:" . ($this->url?$this->url:$this->uri) . "\r\n"; |
440 | | - $text .= "UID:$this->uri\r\n"; |
441 | | - $text .= "END:VCARD\r\n"; |
442 | | - return $text; |
443 | | - } |
444 | | - |
445 | | - public static function vCardEscape($text) { |
446 | | - return str_replace(array('\\',',',':',';'), array('\\\\','\,','\:','\;'),$text); |
447 | | - } |
448 | | - |
449 | | -} |
450 | | - |
451 | | -/** |
452 | | - * Represents a single address entry in an vCard entry. |
453 | | - * @ingroup SMWQuery |
454 | | - */ |
455 | | -class SMWvCardAddress{ |
456 | | - private $type; |
457 | | - private $postofficebox; |
458 | | - private $extendedaddress; |
459 | | - private $street; |
460 | | - private $locality; |
461 | | - private $region; |
462 | | - private $postalcode; |
463 | | - private $country; |
464 | | - |
465 | | - /** |
466 | | - * Constructor for a single address item in the vcard item. |
467 | | - */ |
468 | | - public function __construct($type, $postofficebox, $extendedaddress, $street, $locality, $region, $postalcode, $country) { |
469 | | - $this->type = $type; |
470 | | - $this->postofficebox = SMWVCardEntry::vCardEscape($postofficebox); |
471 | | - $this->extendedaddress = SMWVCardEntry::vCardEscape($extendedaddress); |
472 | | - $this->street = SMWVCardEntry::vCardEscape($street); |
473 | | - $this->locality = SMWVCardEntry::vCardEscape($locality); |
474 | | - $this->region = SMWVCardEntry::vCardEscape($region); |
475 | | - $this->postalcode = SMWVCardEntry::vCardEscape($postalcode); |
476 | | - $this->country = SMWVCardEntry::vCardEscape($country); |
477 | | - } |
478 | | - |
479 | | - /** |
480 | | - * Creates the vCard output for a single address item. |
481 | | - */ |
482 | | - public function createVCardAddressText(){ |
483 | | - if ($this->type == "") $this->type="work"; |
484 | | - $text = "ADR;TYPE=$this->type;CHARSET=UTF-8:$this->postofficebox;$this->extendedaddress;$this->street;$this->locality;$this->region;$this->postalcode;$this->country\r\n"; |
485 | | - return $text; |
486 | | - } |
487 | | -} |
488 | | - |
489 | | -/** |
490 | | - * Represents a single telephone entry in an vCard entry. |
491 | | - * @ingroup SMWQuery |
492 | | - */ |
493 | | -class SMWvCardTel{ |
494 | | - private $type; |
495 | | - private $telnumber; |
496 | | - |
497 | | - /** |
498 | | - * Constructor for a single telephone item in the vcard item. |
499 | | - */ |
500 | | - public function __construct($type, $telnumber) { |
501 | | - $this->type = $type; // may be a vCard value list using ",", no escaping |
502 | | - $this->telnumber = SMWVCardEntry::vCardEscape($telnumber); // escape to be sure |
503 | | - } |
504 | | - |
505 | | - /** |
506 | | - * Creates the vCard output for a single telephone item. |
507 | | - */ |
508 | | - public function createVCardTelText(){ |
509 | | - if ($this->type == "") $this->type="work"; |
510 | | - $text = "TEL;TYPE=$this->type:$this->telnumber\r\n"; |
511 | | - return $text; |
512 | | - } |
513 | | -} |
514 | | - |
515 | | -/** |
516 | | - * Represents a single email entry in an vCard entry. |
517 | | - * @ingroup SMWQuery |
518 | | - */ |
519 | | -class SMWvCardEmail{ |
520 | | - private $type; |
521 | | - private $emailaddress; |
522 | | - |
523 | | - /** |
524 | | - * Constructor for a email telephone item in the vcard item. |
525 | | - */ |
526 | | - public function __construct($type, $emailaddress) { |
527 | | - $this->type = $type; |
528 | | - $this->emailaddress = $emailaddress; // no escape, normally not needed anyway |
529 | | - } |
530 | | - |
531 | | - /** |
532 | | - * Creates the vCard output for a single email item. |
533 | | - */ |
534 | | - public function createVCardEmailText(){ |
535 | | - if ($this->type == "") $this->type="internet"; |
536 | | - $text = "EMAIL;TYPE=$this->type:$this->emailaddress\r\n"; |
537 | | - return $text; |
538 | | - } |
539 | | -} |
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_GlobalFunctions.php |
— | — | @@ -122,8 +122,6 @@ |
123 | 123 | $wgAutoloadClasses['SMWEmbeddedResultPrinter'] = $smwgIP . '/includes/SMW_QP_Embedded.php'; |
124 | 124 | $wgAutoloadClasses['SMWTemplateResultPrinter'] = $smwgIP . '/includes/SMW_QP_Template.php'; |
125 | 125 | $wgAutoloadClasses['SMWRSSResultPrinter'] = $smwgIP . '/includes/SMW_QP_RSSlink.php'; |
126 | | - $wgAutoloadClasses['SMWiCalendarResultPrinter'] = $smwgIP . '/includes/SMW_QP_iCalendar.php'; |
127 | | - $wgAutoloadClasses['SMWvCardResultPrinter'] = $smwgIP . '/includes/SMW_QP_vCard.php'; |
128 | 126 | $wgAutoloadClasses['SMWCsvResultPrinter'] = $smwgIP . '/includes/SMW_QP_CSV.php'; |
129 | 127 | $wgAutoloadClasses['SMWJSONResultPrinter'] = $smwgIP . '/includes/SMW_QP_JSONlink.php'; |
130 | 128 | //// datavalues |
Index: trunk/extensions/SemanticMediaWiki/includes/SMW_Settings.php |
— | — | @@ -238,8 +238,6 @@ |
239 | 239 | 'count' => 'SMWListResultPrinter', |
240 | 240 | 'debug' => 'SMWListResultPrinter', |
241 | 241 | 'rss' => 'SMWRSSResultPrinter', |
242 | | - 'icalendar' => 'SMWiCalendarResultPrinter', |
243 | | - 'vcard' => 'SMWvCardResultPrinter', |
244 | 242 | 'csv' => 'SMWCsvResultPrinter', |
245 | 243 | 'json' => 'SMWJSONResultPrinter' |
246 | 244 | ); |
Index: trunk/extensions/SemanticMediaWiki/languages/SMW_Messages.php |
— | — | @@ -39,10 +39,6 @@ |
40 | 40 | // Link to JSON feeds |
41 | 41 | 'smw_json_link' => 'JSON', |
42 | 42 | |
43 | | - // Link to iCalendar and vCard files |
44 | | - 'smw_icalendar_link' => 'iCalendar', |
45 | | - 'smw_vcard_link' => 'vCard', |
46 | | - |
47 | 43 | // Messages and strings for inline queries |
48 | 44 | 'smw_iq_disabled' => "Semantic queries have been disabled for this wiki.", |
49 | 45 | 'smw_iq_moreresults' => '… further results', |
— | — | @@ -301,8 +297,6 @@ |
302 | 298 | {{Identical|And}}', |
303 | 299 | 'smw_rss_link' => '{{optional}}', |
304 | 300 | 'smw_csv_link' => '{{optional}}', |
305 | | - 'smw_icalendar_link' => '{{optional}}', |
306 | | - 'smw_vcard_link' => '{{optional}}', |
307 | 301 | 'smw_decseparator' => "This message is as a separator symbol for decimal digits in numbers, like \".\" in English 1,234.23. It is used for formatting number output '''and''' for reading user input. Therefore it should be carefully considered whether to change an existing value, since existing installations may depend on this value for their content to be read properly. |
308 | 302 | |
309 | 303 | Note that spaces and space-like HTML entities are always ignored when reading numbers.", |
— | — | @@ -354,7 +348,6 @@ |
355 | 349 | 'smw_finallistconjunct' => ', en', |
356 | 350 | 'smw_factbox_head' => 'Feite oor $1', |
357 | 351 | 'smw_isspecprop' => "Hierdie eienskap is 'n spesiale eienskap van hierdie wiki.", |
358 | | - 'smw_icalendar_link' => 'iKalender', |
359 | 352 | 'smw_parseerror' => 'Die gegewe waarde is onverstaanbaar.', |
360 | 353 | 'smw_unknowntype' => 'Onondersteunde tipe "$1" gedefinieer vir eienskap.', |
361 | 354 | 'smw_manytypes' => 'Meer as een tipe gedefinieer vir eienskap.', |
— | — | @@ -431,8 +424,6 @@ |
432 | 425 | 'smw_baduri' => 'URIs من النوع "$1" غير مسموح بها.', |
433 | 426 | 'smw_rss_link' => 'آر إس إس', |
434 | 427 | 'smw_csv_link' => 'سي في إس', |
435 | | - 'smw_icalendar_link' => 'آي كالندر', |
436 | | - 'smw_vcard_link' => 'في كارد', |
437 | 428 | 'smw_iq_disabled' => 'استعلامات السيمانتيك تم تعطيلها في هذا الويكي.', |
438 | 429 | 'smw_iq_moreresults' => '… مزيد من النتائج', |
439 | 430 | 'smw_iq_nojs' => 'استخدم متصفحا يمكن جافا سكريبت لرؤية هذا العنصر.', |
— | — | @@ -644,8 +635,6 @@ |
645 | 636 | 'smw_baduri' => 'URIs من النوع "$1" غير مسموح بها.', |
646 | 637 | 'smw_rss_link' => 'آر إس إس', |
647 | 638 | 'smw_csv_link' => 'سى فى إس', |
648 | | - 'smw_icalendar_link' => 'آى كالندر', |
649 | | - 'smw_vcard_link' => 'فى كارد', |
650 | 639 | 'smw_iq_disabled' => 'استعلامات السيمانتيك تم تعطيلها فى هذا الويكي.', |
651 | 640 | 'smw_iq_moreresults' => '… مزيد من النتائج', |
652 | 641 | 'smw_iq_nojs' => 'استخدم متصفحا يمكن جافا سكريبت لرؤية هذا العنصر.', |
— | — | @@ -970,7 +959,6 @@ |
971 | 960 | 'smw_multiple_concepts' => 'Každá stránka konceptu může mít jen jednu definici.', |
972 | 961 | 'smw_concept_cache_miss' => 'Koncept „$1” není možné momentálně použít, protože konfigurace wiki vyžaduje, aby se vypočítal až dodatečně. Pokud problém přetrvává delší dobu, požádejte správce, aby tento koncept zpřístupnil.', |
973 | 962 | 'smw_baduri' => 'Promiňte, URI z rozsahu „$1“ na tomto místě nejsou dostupné.', |
974 | | - 'smw_icalendar_link' => 'iCalendar', |
975 | 963 | 'smw_iq_disabled' => 'Promiňtě, semantické dotazy byly pro tuto wiki zakázány.', |
976 | 964 | 'smw_iq_moreresults' => '…další výsledky', |
977 | 965 | 'smw_iq_nojs' => 'Pro zobrazení tohoto prvku prosím použijte prohlížeč se zapnutým JavaScriptem.', |
— | — | @@ -1127,8 +1115,6 @@ |
1128 | 1116 | Falls das Problem nicht nach einiger Zeit verschwindet, bitte deinen Seitenverwalter, dieses Konzept zu ermöglichen.', |
1129 | 1117 | 'smw_baduri' => 'URIs der Form „$1“ sind nicht zulässig.', |
1130 | 1118 | 'smw_csv_link' => 'CSV', |
1131 | | - 'smw_icalendar_link' => 'iCalendar', |
1132 | | - 'smw_vcard_link' => 'vCard', |
1133 | 1119 | 'smw_iq_disabled' => 'Semantische Anfragen sind in diesem Wiki zur Zeit nicht möglich.', |
1134 | 1120 | 'smw_iq_moreresults' => '… weitere Ergebnisse', |
1135 | 1121 | 'smw_iq_nojs' => 'Der Inhalt dieses Elementes kann mit einem Browser mit JavaScript-Unterstützung betrachtet werden.', |
— | — | @@ -1341,7 +1327,6 @@ |
1342 | 1328 | 'smw_concept_description' => 'Priskribo de koncepto "$1"', |
1343 | 1329 | 'smw_no_concept_namespace' => 'Konceptoj povas nur esti difinita en paĝoj en la nomspaco Concept:.', |
1344 | 1330 | 'smw_baduri' => 'Bedaŭrinde, URI-oj de la kamparo "$1" ne estas permesita.', |
1345 | | - 'smw_icalendar_link' => 'iKalendaro', |
1346 | 1331 | 'smw_iq_disabled' => 'Bedaŭrinde, semantikaj informmendoj estis malebligitaj por ĉi tiu vikio.', |
1347 | 1332 | 'smw_iq_moreresults' => '… pluaj rezultoj', |
1348 | 1333 | 'smw_iq_nojs' => 'Bonvolu uzi retumilon kiu povas montri JavaScript-on por rigardi ĉi tiun elementon.', |
— | — | @@ -1706,8 +1691,6 @@ |
1707 | 1692 | 'smw_concept_cache_miss' => "Le concept « $1 » ne peut être utilisé en ce moment, puisque la configuration du wiki requiert qu'il soit lancé hors-ligne. Si le problème persiste après quelques instants, demander à votre administrateur du site de rendre disponible ce concept.", |
1708 | 1693 | 'smw_baduri' => 'Désolé. Les URIs du domaine « $1 » ne sont pas disponible à cet emplacement.', |
1709 | 1694 | 'smw_csv_link' => 'CSV', |
1710 | | - 'smw_icalendar_link' => 'iCalendrier', |
1711 | | - 'smw_vcard_link' => 'vCarte', |
1712 | 1695 | 'smw_iq_disabled' => 'Désolé. Les recherches dans les pages de ce wiki ne sont pas autorisées.', |
1713 | 1696 | 'smw_iq_moreresults' => '… autres résultats', |
1714 | 1697 | 'smw_iq_nojs' => 'Utilisez un navigateur avec JavaScript activé pour voir cet élément.', |
— | — | @@ -1913,8 +1896,6 @@ |
1914 | 1897 | 'smw_concept_cache_miss' => 'O concepto "$1" non pode ser usado desde que a configuración do wiki o require para calcular a desconexión. Se o problema non se resolve en breve, pregúntelle ao administrador do wiki para que o concepto poida estar dispoñible.', |
1915 | 1898 | 'smw_baduri' => 'Sentímolo, os URIs da forma “$1” non están permitidos.', |
1916 | 1899 | 'smw_csv_link' => 'CSV', |
1917 | | - 'smw_icalendar_link' => 'iCalendario', |
1918 | | - 'smw_vcard_link' => 'vTarxeta', |
1919 | 1900 | 'smw_iq_disabled' => 'Sentímolo. As preguntas semánticas foron deshabilitadas para este wiki.', |
1920 | 1901 | 'smw_iq_moreresults' => '… máis resultados', |
1921 | 1902 | 'smw_iq_nojs' => 'Por favor, use un nevegador co JavaScript permitido para ver este elemento.', |
— | — | @@ -2508,7 +2489,6 @@ |
2509 | 2490 | 'smw_viewasrdf' => 'RDF फ़ीड', |
2510 | 2491 | 'smw_finallistconjunct' => ', और', |
2511 | 2492 | 'smw_factbox_head' => '$1 के बारेमें फ़ैक्ट्स', |
2512 | | - 'smw_icalendar_link' => 'आइकैलेंडर', |
2513 | 2493 | 'smw_iq_moreresults' => '… आगे के रिज़ल्ट', |
2514 | 2494 | 'smw_true_words' => 'सही,t,हां,y', |
2515 | 2495 | 'smw_false_words' => 'गलत,f,ना,n', |
— | — | @@ -2554,7 +2534,6 @@ |
2555 | 2535 | 'smw_isaliastype' => 'Tip sa se yon alyas pou done "$1".', |
2556 | 2536 | 'smw_isnotype' => 'Tip "$1" sa pa yon tip estandè nan wiki a, li pa defini pa yon itilizatè tou.', |
2557 | 2537 | 'smw_baduri' => 'Eskize nou, URIs yo pou domèn "$1" pa otorize, oubyen li pa disponib nan plas isit la.', |
2558 | | - 'smw_icalendar_link' => 'iKalandrye', |
2559 | 2538 | 'smw_iq_disabled' => 'Eskize nou. Rechèch nan atik wiki sa a pa otorize oubyen nou dezaktive l.', |
2560 | 2539 | 'smw_iq_moreresults' => '… lòt rezilta yo', |
2561 | 2540 | 'smw_iq_nojs' => 'Souple, itilize yon navigatè (bwozè entènèt) ki aksepte JavaScript aktive pou ou kapab wè eleman sa, bagay sa.', |
— | — | @@ -2602,8 +2581,6 @@ |
2603 | 2582 | 'smw_baduri' => 'Le adresses URI del forma "$1" non es permittite.', |
2604 | 2583 | 'smw_rss_link' => 'RSS', |
2605 | 2584 | 'smw_csv_link' => 'CSV', |
2606 | | - 'smw_icalendar_link' => 'iCalendar', |
2607 | | - 'smw_vcard_link' => 'vCard', |
2608 | 2585 | 'smw_iq_disabled' => 'Le consultas semantic ha essite disactivate pro iste wiki.', |
2609 | 2586 | 'smw_iq_moreresults' => '… ulterior resultatos', |
2610 | 2587 | 'smw_iq_nojs' => 'Usa un navigator capace de executar JavaScript pro visualisar iste elemento.', |
— | — | @@ -2830,8 +2807,6 @@ |
2831 | 2808 | 'smw_concept_cache_miss' => 'Il concetto "$1" non può essere usato ora, siccome la configurazione della wiki richiede che sia elaborato off-line. Se il problema non si risolve dopo un po\' di tempo, chiedi all\'amministratore del tuo sito di rendere disponibile questo concetto.', |
2832 | 2809 | 'smw_baduri' => 'Spiacenti. Gli URI del tipo “$1” non sono consentiti.', |
2833 | 2810 | 'smw_csv_link' => 'CSV', |
2834 | | - 'smw_icalendar_link' => 'iCalendar', |
2835 | | - 'smw_vcard_link' => 'vCard', |
2836 | 2811 | 'smw_iq_disabled' => 'Spiacenti. Le query semantiche sono state disabilitate per questo wiki.', |
2837 | 2812 | 'smw_iq_moreresults' => '… risultati successivi', |
2838 | 2813 | 'smw_iq_nojs' => 'Per favore, usate un browser che supporti Javascript per visualizzare questo elemento.', |
— | — | @@ -3155,7 +3130,6 @@ |
3156 | 3131 | 'smw_isaliastype' => 'Jenis iki sawijining alias kanggo jenis data “$1”.', |
3157 | 3132 | 'smw_isnotype' => 'Jenis “$1” iki dudu sawijining jenis data baku ing wiki, lan uga ora diwènèhi sawijining définisi déning sang panganggo.', |
3158 | 3133 | 'smw_baduri' => 'Nuwun sèwu, URI awujud “$1” ora diidinaké.', |
3159 | | - 'smw_icalendar_link' => 'iKalèndher', |
3160 | 3134 | 'smw_iq_disabled' => 'Nuwun sèwu. Kwéri sémantik kanggo wiki iki dipatèni.', |
3161 | 3135 | 'smw_iq_moreresults' => '… pituwas sabanjuré', |
3162 | 3136 | 'smw_iq_nojs' => 'Mangga nganggo sawijining panjlajah wèb JavaScript kanggo ndeleng unsur iki.', |
— | — | @@ -3447,8 +3421,6 @@ |
3448 | 3422 | 'smw_baduri' => 'URIs met dämm Opbou „$1“ sin nit zojelohße.', |
3449 | 3423 | 'smw_rss_link' => '<i lang="en">RSS</i>', |
3450 | 3424 | 'smw_csv_link' => '<i lang="en">CSV</i>', |
3451 | | - 'smw_icalendar_link' => '<i lang="en">iCalendar</i>', |
3452 | | - 'smw_vcard_link' => '<i lang="en">vCard</i>', |
3453 | 3425 | 'smw_iq_disabled' => 'Semantesche Frore sem em Wiki em Momang afjeschaldt.', |
3454 | 3426 | 'smw_iq_moreresults' => '… mieh vun däm, wat jefonge woodt', |
3455 | 3427 | 'smw_iq_altresults' => 'Direk en de Leß bläddere.', |
— | — | @@ -3539,7 +3511,6 @@ |
3540 | 3512 | 'smw_factbox_head' => 'Fakten iwwer $1', |
3541 | 3513 | 'smw_concept_description' => 'Beschreiwung vum Konzept "$1"', |
3542 | 3514 | 'smw_csv_link' => 'CSV', |
3543 | | - 'smw_icalendar_link' => 'iKalenner', |
3544 | 3515 | 'smw_iq_moreresults' => '… weider Resultater', |
3545 | 3516 | 'smw_iq_nojs' => 'Benotzt w.e.g e Browser matt JavaScript fir dëst Element ze gesinn', |
3546 | 3517 | 'smw_nonright_importtype' => '$1 kann nëmme fir Säiten am Nummraum "$2" benotzt ginn.', |
— | — | @@ -3611,7 +3582,6 @@ |
3612 | 3583 | $messages['ml'] = array( |
3613 | 3584 | 'smw_finallistconjunct' => 'ഉം', |
3614 | 3585 | 'smw_factbox_head' => '$1നെ കുറിച്ചുള്ള സത്യങ്ങള്', |
3615 | | - 'smw_icalendar_link' => 'iകലണ്ടര്', |
3616 | 3586 | 'smw_iq_moreresults' => '… കൂടുതല് ഫലങ്ങള്', |
3617 | 3587 | 'smw_iq_nojs' => 'ഈ എലമെന്റ് കാണുവാന് ദയവായി ജാവാസ്ക്രിപ് എനേബിള് ചെയ്ത ബ്രൗസര് ഉപയോഗിക്കുക.', |
3618 | 3588 | 'smw_unknown_importns' => 'ഇറക്കുമതി ഫങ്ങ്ഷന്സ് “$1” എന്ന നേംസ്പേസില് ലഭ്യമല്ല.', |
— | — | @@ -3663,7 +3633,6 @@ |
3664 | 3634 | 'smw_isaliastype' => 'हा प्रकार “$1” या डाटाप्रकारची पुनरुक्ती आहे.', |
3665 | 3635 | 'smw_isnotype' => 'हा “$1” प्रकार या विकिवरील ठराविक डाटा प्रकारांपैकी नाही, व त्याची सदस्य व्याख्या सुद्धा दिलेली नाही.', |
3666 | 3636 | 'smw_baduri' => 'माफ करा, “$1” अर्जाचे URI वापरण्यास परवानगी नाही.', |
3667 | | - 'smw_icalendar_link' => 'इ-कैलेंडर', |
3668 | 3637 | 'smw_iq_disabled' => 'माफ करा. या विकिवर सिमँटिक पॄच्छा करण्यास बंदी आहे.', |
3669 | 3638 | 'smw_iq_moreresults' => '… पुढचे निकाल', |
3670 | 3639 | 'smw_iq_nojs' => 'हा एलेमेंट पाहण्यासाठी जावास्क्रीप्ट युक्त ब्राउजर वापरा.', |
— | — | @@ -3844,8 +3813,6 @@ |
3845 | 3814 | Als het probleem over enige tijd nog niet verholpen is, vraag de beheerder dan om dit concept beschikbaar te maken.', |
3846 | 3815 | 'smw_baduri' => "URI's uit de reeks “$1” zijn hier niet beschikbaar.", |
3847 | 3816 | 'smw_csv_link' => 'CSV', |
3848 | | - 'smw_icalendar_link' => 'iCalendar', |
3849 | | - 'smw_vcard_link' => 'vCard', |
3850 | 3817 | 'smw_iq_disabled' => 'Zoekopdrachten binnen tekst zijn uitgeschakeld in deze wiki.', |
3851 | 3818 | 'smw_iq_moreresults' => '… overige resultaten', |
3852 | 3819 | 'smw_iq_nojs' => 'Gebruiker een browser waarin JavaScript is ingeschakeld om dit element te zien.', |
— | — | @@ -4247,8 +4214,6 @@ |
4248 | 4215 | 'smw_multiple_concepts' => 'Hver konseptside kan kun ha én konseptdefinisjon.', |
4249 | 4216 | 'smw_baduri' => 'Beklager, URI-er på formen «$1» er ikke tillatt.', |
4250 | 4217 | 'smw_csv_link' => 'CSV', |
4251 | | - 'smw_icalendar_link' => 'iKalender', |
4252 | | - 'smw_vcard_link' => 'vCard', |
4253 | 4218 | 'smw_iq_disabled' => 'Beklager. Semantiske spørringer er slått av på denne wikien.', |
4254 | 4219 | 'smw_iq_moreresults' => '… flere resultater', |
4255 | 4220 | 'smw_iq_nojs' => 'Bruk en nettleser med JavaScript-støtte for å vise dette elementet.', |
— | — | @@ -4396,8 +4361,6 @@ |
4397 | 4362 | 'smw_concept_cache_miss' => 'Lo concèpte « $1 » pòt pas èsser utilizat pelmoment moment, perque la configuracion del wiki requerís que siá aviat fòra linha. Se lo problèma persistís aprèp qualques instants, demandatz a vòstre administrator del sit de rendre disponible aqueste concèpte.', |
4398 | 4363 | 'smw_baduri' => 'O planhèm. Las URIs del domeni $1 son pas disponiblas a aqueste emplaçament', |
4399 | 4364 | 'smw_csv_link' => 'CSV', |
4400 | | - 'smw_icalendar_link' => 'iCalendièr', |
4401 | | - 'smw_vcard_link' => 'vCarta', |
4402 | 4365 | 'smw_iq_disabled' => "O planhèm. Las recèrcas dins los articles d'aqueste wiki son pas autorizadas.", |
4403 | 4366 | 'smw_iq_moreresults' => '… autres resultats', |
4404 | 4367 | 'smw_iq_nojs' => 'Utilizatz un navigador amb JavaScript per veire aqueste element.', |
— | — | @@ -4707,8 +4670,6 @@ |
4708 | 4671 | 'smw_concept_cache_miss' => 'O conceito "$1" não poderá ser utilizado neste momento, uma vez que a configuração deste wiki necessita ser refeita off-line. Caso o problema não seja resolvido automaticamente dentro de algum tempo, peça a um administrador deste wiki que este conceito seja disponibilizado.', |
4709 | 4672 | 'smw_baduri' => 'Desculpe, URIs da forma “$1” não são permitidos.', |
4710 | 4673 | 'smw_csv_link' => 'CSV', |
4711 | | - 'smw_icalendar_link' => 'iCalendário', |
4712 | | - 'smw_vcard_link' => 'vCard', |
4713 | 4674 | 'smw_iq_disabled' => 'Consultas semânticas foram desativadas neste wiki.', |
4714 | 4675 | 'smw_iq_moreresults' => '… mais resultados', |
4715 | 4676 | 'smw_iq_nojs' => 'Por favor, use um navegador com JavaScript activado para visualizar este elemento.', |
— | — | @@ -4998,8 +4959,6 @@ |
4999 | 4960 | 'smw_concept_cache_miss' => 'Представление «$1» в настоящий момент не может быть использовано, так как настройка вики-сайта требует, чтобы его результат определялся в фоновом режиме. Если данное сообщение не исчезнет через некоторое время, обратитесь к администратору вики-сайта для включения данного представления.', |
5000 | 4961 | 'smw_baduri' => 'Извините, но ссылки из диапазона "$1" не доступны отсюда.', |
5001 | 4962 | 'smw_csv_link' => 'CSV', |
5002 | | - 'smw_icalendar_link' => 'iКалендарь', |
5003 | | - 'smw_vcard_link' => 'vCard', |
5004 | 4963 | 'smw_iq_disabled' => 'Извините, но встроенные запросы отключены для этого сайта.', |
5005 | 4964 | 'smw_iq_moreresults' => '… следующие результаты', |
5006 | 4965 | 'smw_iq_nojs' => 'Используйте браузер с поддержкой JavaScript для просмотра данного элемента.', |
— | — | @@ -5149,8 +5108,6 @@ |
5150 | 5109 | 'smw_concept_cache_miss' => 'Pojem „$1” nemožno momentálne použiť, pretože konfigurácia wiki vyžaduje, aby sa vypočítal, keď wiki nebude pripojená. Ak problém po určitej dobe nezmizne, požiadajte správcu, aby tento pojem sprístupnil.', |
5151 | 5110 | 'smw_baduri' => 'Prepáčte, URI z rozsahu "$1" na tomto mieste nie sú dostupné.', |
5152 | 5111 | 'smw_csv_link' => 'CSV', |
5153 | | - 'smw_icalendar_link' => 'iCalendar', |
5154 | | - 'smw_vcard_link' => 'vCard', |
5155 | 5112 | 'smw_iq_disabled' => 'Prepáčte. Inline queries have been disabled for this wiki.', |
5156 | 5113 | 'smw_iq_moreresults' => '… ďalšie výsledky', |
5157 | 5114 | 'smw_iq_nojs' => 'Na zobrazenie tohto prvku prosím použite prehliadač so zapnutým JavaScriptom.', |
— | — | @@ -5349,8 +5306,6 @@ |
5350 | 5307 | Ако проблем не нестане за неко време, затражите од администратора сајта да учини овај концепт доступним.', |
5351 | 5308 | 'smw_baduri' => 'URI-ји облика "$1", нису прихватљиви.', |
5352 | 5309 | 'smw_csv_link' => 'CSV', |
5353 | | - 'smw_icalendar_link' => 'iCalendar', |
5354 | | - 'smw_vcard_link' => 'vCard', |
5355 | 5310 | 'smw_iq_disabled' => 'Семантички упити су онемогућени на овом викију.', |
5356 | 5311 | 'smw_iq_moreresults' => '... више резултата', |
5357 | 5312 | 'smw_iq_nojs' => 'Користите прегледач који подржава JavaScript-у како би могли да видите овај елеменат.', |
— | — | @@ -5559,8 +5514,6 @@ |
5560 | 5515 | 'smw_baduri' => 'URI-ji oblika "$1", nisu prihvatljivi.', |
5561 | 5516 | 'smw_rss_link' => 'RSS', |
5562 | 5517 | 'smw_csv_link' => 'CSV', |
5563 | | - 'smw_icalendar_link' => 'iCalendar', |
5564 | | - 'smw_vcard_link' => 'vCard', |
5565 | 5518 | 'smw_iq_disabled' => 'Semantički upiti su onemogućeni na ovom vikiju.', |
5566 | 5519 | 'smw_iq_moreresults' => '... više rezultata', |
5567 | 5520 | 'smw_iq_nojs' => 'Koristite pregledač koji podržava JavaScript-u kako bi mogli da vidite ovaj elemenat.', |
— | — | @@ -5669,8 +5622,6 @@ |
5670 | 5623 | 'smw_multiple_concepts' => 'Varje konceptsida kan endast ha en konceptdefinition.', |
5671 | 5624 | 'smw_baduri' => 'Beklagar, URI-er på formen "$1" är inte tillåtet.', |
5672 | 5625 | 'smw_csv_link' => 'CSV', |
5673 | | - 'smw_icalendar_link' => 'iKalender', |
5674 | | - 'smw_vcard_link' => 'vCard', |
5675 | 5626 | 'smw_iq_disabled' => 'Beklagar. Semantiska efterfrågningar har slagits av på den här wikin.', |
5676 | 5627 | 'smw_iq_moreresults' => '… mer resultat', |
5677 | 5628 | 'smw_iq_nojs' => 'Var god använd en webbläsare som stödjer JavaScript för att visa det här elementet.', |
— | — | @@ -6106,7 +6057,6 @@ |
6107 | 6058 | 'smw_isaliastype' => 'Kiểu này là tên hiệu của kiểu dữ liệu “$1”.', |
6108 | 6059 | 'smw_isnotype' => 'Kiểu “$1” này không phải là kiểu dữ liệu chuẩn trên wiki, và cũng chưa được cung cấp định nghĩa người dùng.', |
6109 | 6060 | 'smw_baduri' => 'Rất tiếc, không cho phép URI có dạng “$1”.', |
6110 | | - 'smw_icalendar_link' => 'iCalendar', |
6111 | 6061 | 'smw_iq_disabled' => 'Rất tiếc. Chức năng truy vấn ngữ nghĩa đã bị tắt tại wiki này.', |
6112 | 6062 | 'smw_iq_moreresults' => '… kết quả khác', |
6113 | 6063 | 'smw_iq_nojs' => 'Xin hãy dùng trình duyệt có kích hoạt JavaScript để xem thành phần này.', |