Create an extension it will be easier ton maintain.
Divide the code in several methods too, https://jeroendedauw.github.io/slides/craftmanship/functions/#/1
On Wed, May 3, 2017 at 11:22 PM, Jean Valjean jeanvaljean2718@gmail.com wrote:
Okay, this is the code I came up with:
$wgAlreadyParsed = false; function onParserBeforeStripSiteNotice( &$parser, &$text, &$strip_state ) { global $wgAlreadyParsed; if ( $wgAlreadyParsed ) { return true; } $title = $parser->getTitle(); if ( $title->getNamespace () !== 0 ) { return true; } $wikiPage = WikiPage::factory( $title ); $revision = $wikiPage->getRevision(); if ( is_null ( $revision ) ) { return true; } $content = $revision->getContent( Revision::RAW ); $revisionText = ContentHandler::getContentText( $content ); if ( $text !== $revisionText ) { return true; } $wgAlreadyParsed = true; $titleText = $title->getPrefixedText (); $text = "{{siteNotice|$titleText}}" . $text; } $wgHooks['ParserBeforeStrip'][] = 'onParserBeforeStripSiteNotice';
Then in Template:SiteNotice I put:
{{#ifeq: {{FULLPAGENAME}}|Main Page||<div class="plainlinks" style="border:1px solid #a7d7f9; width:100%; font-size: 110%; text-align: center; padding: 0.5ex; "><p>This page is an archive.</p></div>}}
On Wed, May 3, 2017 at 3:51 AM, Jean Valjean jeanvaljean2718@gmail.com wrote:
How do I put up a sitenotice for all pages except one (e.g. Main Page)? I want the main page to have my current content, and all other pages to have a notice saying their content is just an archive.
I notice that when I put {{FULLPAGENAME}} in MediaWiki:Sitenotice, it always says "MediaWiki:Sitenotice".
Otherwise, I would use an #ifeq.
MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l