Created own function to generate the HTML of the bahntabelle.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sat, 16 Nov 2013 22:54:46 +0000 (22:54 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sat, 16 Nov 2013 22:54:46 +0000 (22:54 +0000)
git-svn-id: http://www.winterrodeln.org/svn/servermediawiki/mediawiki_extensions/wrreport/trunk@1816 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wrreport.body.php

index 139bfafbe7835e5f0d99c19588e20a92f0316994..0c1af5db9cf743fbaf25b3c1c6768fc093283e39 100644 (file)
@@ -618,43 +618,8 @@ class WrReport {
        }
 
 
-       /// \brief Is called when the tag <bahnentabelle/> is encountered.
-       ///
-       /// Example:
-       /// <bahnentabelle>
-       /// Birgitzer Alm (vom Adelshof)
-       /// Kemater Alm
-       /// Axamer Lizum
-       /// </bahnentabelle>
-       public static function bahnentabelleParserHook($input, $args, $parser) {
-               $parser->getOutput()->addModules('ext.wrreport');
-
-               // Add feed
+       public static function createBahnentabelle($page_titles) {
                $dbr = wfGetDB(DB_SLAVE);
-               $title = $parser->getTitle();
-               $categories = $title->getParentCategories(); // e.g. array('Kategorie:Region' => 'Osttirol')
-               global $wgContLang;
-               $key_region = $wgContLang->getNSText(NS_CATEGORY) . ':Region';
-               if (array_key_exists($key_region, $categories)) {
-                       // Do we have a feed entry of the region?
-                       // Example: select name from wrregion where page_id = 882;
-                       $res = $dbr->select('wrregion', 'name', array('page_id' => $title->getArticleID()));
-                       while ($row = $dbr->fetchObject($res)) {
-                               // If yes, create the feed.
-                               // Note: As (of MediaWiki 1.19), only one feed can be added and each feed added replaces the previous one, the following is possible without risk of having duplicated feed entries.
-                               global $wgWrReportFeedRoot;
-                               global $wgOut; // class OutputPage
-                               $wgOut->addFeedLink('atom', $wgWrReportFeedRoot . '/berichte/region/' . strtolower($row->name));
-                       }
-               }
-
-               // Add each page title that has been found
-               $page_titles = array(); // array of Title objects
-               foreach (explode("\n", $input) as $page_title) {
-                       $page_title = Title::newFromText(trim($page_title));
-                       if (!$page_title || !$page_title->exists()) continue;
-                       $page_titles[] = $page_title;
-               }
 
                // SELECT p.page_id,p.page_title, c.length, c.walkup_time, c.top_elevation, c.bottom_elevation, c.walkup_separate, c.lift, c.night_light, c.public_transport, c.sled_rental, c.information_phone FROM `page` p, wrsledruncache c WHERE (p.page_title in ('Birgitzer_Alm_(vom_Adelshof)', 'Kemater_Alm', 'Axamer_Lizum') and p.page_id=c.page_id) ORDER BY page_title
                $where_array = array('page.page_id = wrsledruncache.page_id');
@@ -771,7 +736,52 @@ class WrReport {
                }
                $dbr->freeResult($res);
 
-               return array($doc->saveHTML(), 'noparse' => true, 'isHTML' => true);
+               return $doc->saveHTML();
+       }
+
+
+       /// \brief Is called when the tag <bahnentabelle/> is encountered.
+       ///
+       /// Example:
+       /// <bahnentabelle>
+       /// Birgitzer Alm (vom Adelshof)
+       /// Kemater Alm
+       /// Axamer Lizum
+       /// </bahnentabelle>
+       public static function bahnentabelleParserHook($input, $args, $parser) {
+               $parser->getOutput()->addModules('ext.wrreport');
+
+               // Add feed
+               $dbr = wfGetDB(DB_SLAVE);
+               $title = $parser->getTitle();
+               $categories = $title->getParentCategories(); // e.g. array('Kategorie:Region' => 'Osttirol')
+               global $wgContLang;
+               $key_region = $wgContLang->getNSText(NS_CATEGORY) . ':Region';
+               if (array_key_exists($key_region, $categories)) {
+                       // Do we have a feed entry of the region?
+                       // Example: select name from wrregion where page_id = 882;
+                       $res = $dbr->select('wrregion', 'name', array('page_id' => $title->getArticleID()));
+                       while ($row = $dbr->fetchObject($res)) {
+                               // If yes, create the feed.
+                               // Note: As (of MediaWiki 1.19), only one feed can be added and each feed added replaces the previous one, the following is possible without risk of having duplicated feed entries.
+                               global $wgWrReportFeedRoot;
+                               global $wgOut; // class OutputPage
+                               $wgOut->addFeedLink('atom', $wgWrReportFeedRoot . '/berichte/region/' . strtolower($row->name));
+                       }
+               }
+               $dbr->freeResult($res);
+
+               // Add each page title that has been found
+               $page_titles = array(); // array of Title objects
+               foreach (explode("\n", $input) as $page_title) {
+                       $page_title = Title::newFromText(trim($page_title));
+                       if (!$page_title || !$page_title->exists()) continue;
+                       $page_titles[] = $page_title;
+               }
+
+               // Create bahnentabelle
+               $html = WrReport::createBahnentabelle($page_titles);
+               return array($html, 'noparse' => true, 'isHTML' => true);
        }