Timboven has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/61187


Change subject: Added extra Notice-type (for those that use a 'folder' 
structure in their pagenames. Also refactored the lookup of the content that 
must be used for the notice-message, the retrievel of the content is now 
extracted to a seperate method.
......................................................................

Added extra Notice-type (for those that use a 'folder' structure in their 
pagenames.
Also refactored the lookup of the content that must be used for the 
notice-message, the retrievel of the content
is now extracted to a seperate method.

Change-Id: I8cb62a8c8b94960c1cc6a595d6b62602645b6321
---
M PageNotice.php
1 file changed, 45 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PageNotice 
refs/changes/87/61187/1

diff --git a/PageNotice.php b/PageNotice.php
index dddad48..aa56087 100644
--- a/PageNotice.php
+++ b/PageNotice.php
@@ -36,22 +36,55 @@
        $name = $out->getTitle()->getPrefixedDBKey();
        $ns = $out->getTitle()->getNamespace();
        
-       $opt = array(
-               'parseinline',
-       );
+       $folders = explode("/", $name); 
+
+       $header = getPageNotice("Notice/top-$name");
+       $nsheader = getPageNotice("Notice/top-ns-$ns");
        
-       $header = wfMsgExt("top-notice-$name", $opt);
-       $nsheader = wfMsgExt("top-notice-ns-$ns", $opt);
+       $footer = getPageNotice("Notice/bottom-$name");
+       $nsfooter = getPageNotice("Notice/bottom-ns-$ns");
+
+       $folderHeader = "";
+       if (count($folders) > 1) {
+               $msgName = "Notice/top-".folders[0];
+               $folderHeader = getPageNotice($msgName);
+       }
        
-       $footer = wfMsgExt("bottom-notice-$name", $opt);
-       $nsfooter = wfMsgExt("bottom-notice-ns-$ns", $opt);
+       if ($header != null) {
+               $text = "<div>$header</div>\n$text";
+       } else if ($folderHeader != null) {
+               $text = "<div id=\"folderHeader\">$folderHeader</div>\n$text";
+       }
+       if ($nsheader != null) $text = "<div>$nsheader</div>\n$text";
        
-       if (!wfEmptyMsg("top-notice-$name", $header)) $text = 
"<div>$header</div>\n$text";
-       if (!wfEmptyMsg("top-notice-ns-$ns", $nsheader)) $text = 
"<div>$nsheader</div>\n$text";
-       
-       if (!wfEmptyMsg("bottom-notice-$name", $footer)) $text = 
"$text\n<div>$footer</div>";
-       if (!wfEmptyMsg("bottom-notice-ns-$ns", $nsfooter)) $text = 
"$text\n<div>$nsfooter</div>";
+       if ($footer != null) $text = "$text\n<div>$footer</div>";
+       if ($nsfooter != null) $text = "$text\n<div>$nsfooter</div>";
        
        return true;
 }
 
+function getPageNotice($key) {
+       $opt = array(
+               'parseinline',
+               );
+
+       $res = wfMsgExt($key, $opt);
+       if (wfEmptyMsg($key, $res)) {
+               $title = Title::newFromText( $key, NS_MEDIAWIKI );
+               if (is_null($title)) {
+                       return null;
+               }
+               $article = new Article($title);
+               if ($article->exists()) {
+                       $title2 = $article->followRedirect();
+                       if (isset($title2) && $title2 != null) {
+                               $article = new Article($title2);
+                       }
+                       $res = 
MessageCache::singleton()->parse($article->getContent(), $title, true, 
true)->getText();
+               } else {
+                       $res = null;
+               }
+       }
+
+       return $res;
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/61187
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8cb62a8c8b94960c1cc6a595d6b62602645b6321
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PageNotice
Gerrit-Branch: master
Gerrit-Owner: Timboven <tim.bo...@telenet.be>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to