Re: [MediaWiki-l] Sitenotice for all pages except one
You could use the CSS extension [1] to simply hide the display on the Main Page. I haven't tested it, but syntax like this on the Main Page should work (with the CSS extension enabled): {{ #css: #siteNotice { display:none; } }} [1] https://www.mediawiki.org/wiki/Extension:CSS Greg Rundlett https://eQuality-Tech.com https://freephile.org On Wed, May 3, 2017 at 3:51 AM, Jean Valjeanwrote: > 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 > ___ MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
Re: [MediaWiki-l] Sitenotice for all pages except one
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 Valjeanwrote: > 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|| style="border:1px solid #a7d7f9; width:100%; font-size: 110%; text-align: > center; padding: 0.5ex; ">This page is an archive.}} > > > On Wed, May 3, 2017 at 3:51 AM, Jean Valjean > 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 -- Sébastien Santoro aka Dereckson http://www.dereckson.be/ ___ MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
Re: [MediaWiki-l] Sitenotice for all pages except one
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||This page is an archive.}} On Wed, May 3, 2017 at 3:51 AM, Jean Valjeanwrote: > 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