(Translated by
https://www.hiragana.jp/
)
Bearbeiten von „Kamel Diskussion:J*“ (Absatz) – Kamelopedia
Bearbeiten von „Kamel Diskussion:J*“ (Absatz)
Wechseln zu:
Navigation
,
Suche
!
Du bist nicht
angemeldet
.
Wenn du deine Änderung speicherst, wird deine aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit öffentlich einsehbar.
Spamschutzprüfung. Hier
NICHTS
eintragen!
Spamschutzprüfung. Hier
NICHTS
eintragen!
=== Code-Review die 2. === Mööeep. Das doofe #ifcan funzt nicht, aber die Extension da oben tut's genau so wenig (ignoriert ebenfalls die whitelist); aber egal ... jetzt was neues. Weil mir das zu doof ist, jede öffentliche Seite per Huf in einen Array packen zu müssen, bin ich auf die Idee gekommen, das ganze über eine dynamische – will heißen geparste – MediaWiki Nachricht zu machen. Der Code sieht so aus: <source lang="php"> $wgExtensionFunctions[] = 'fnDynamicWhitelistSetup'; /** * extension setup */ function fnDynamicWhitelistSetup(){ global $wgHooks, $wgGroupPermissions; $wgGroupPermissions['*']['read'] = false; $wgHooks['UserGetRights'][] = 'fnDynamicWhitelist'; } /** * Adds pages listed in MediaWiki:Whitelist to $wgWhitelistRead * Always returns true so that other extensions using the UserGetRights hook * will be executed * * @params $user User object * @params $rights array of user rights * @return boolean true */ function fnDynamicWhitelist($user, $rights){ global $wgWhitelistRead, $wgParser; /** if user is not anonymous, then exit the script **/ if(!$user->isAnon()){ return true; } if (!is_object($wgParser)) { $wgParser = new Parser; $opt = $wgParser->mOptions; } if (!is_object($opt)) { $opt = ParserOptions::newFromUser($user); } $title = Title::newFromText('Whitelist', NS_MEDIAWIKI); $htmllist = $wgParser->parse(wfMsgForContent( 'Whitelist' ),$title,$opt)->getText(); $rawlist = preg_match_all ('/\<li\>\s*(.*)/', $htmllist, $array ); $wgWhitelistRead = $array[1]; return true; } </source> Ist ''fast'' das selbe wie [http://www.mediawiki.org/wiki/Extension:InternalWhitelist Extension:InternalWhitelist], nur mit dem Unterschied, dass erstmal der WikiParser angeworfen wird, bevor die Liste ausgewertet wird. Die MediaWiki-Systemnachricht sieht bei mir dann z.Zt. so aus: <pre> <!-- -- -- alle Seiten in der Kategorie "Public" sind öffentlich zugänglich -- -->{{#dpl: | mode = userformat | skipthispage = false <!-- sehr wichtig! Daran wäre ich fast verzweifelt --> | category = Public | format = ,,\n*%PAGE%, }}<!-- -- -- Stylesheets müssen auch öffentlich sein -- -->{{#dpl: | mode = userformat | skipthispage = false | namespace = MediaWiki | titlematch = %.css | format = ,,\n*%PAGE%, }} </pre> Funzt alles; und (*stolzwieoskar*) das deckt so ziemlich alle Userrights-Extensions ab, die so auf MediaWiki.org rumschwirren (und funzt zum Teil deutlich besser; z.B. das mit den Kategorien ... {{s}} [http://www.mediawiki.org/wiki/Extension:CategoryPermissions Extension:CategoryPermissions]). Einziger Nachteil, den ich bis jetzt sehe, sind die längeren Ladezeiten (derzeit ca. eine Zehntel Sekunde Unterschied zwischen eingeloggt und ausgeloggt). Fällt dir sonst noch was auf? Bei dem Regulären Ausdruck bin ich mir z.B. nicht 100%ig sicher, ob der auch immer und überall das richtige matcht ... und brauche ich das $title eigentlich unbedingt? Ist ja irgendwie doppelt gemoppelt (gibt aber kritischen Fehler, wenn ich das rauswerfe; ist aber umgekehrt auch egal, was ich in den Titel reinschreibe *kopfkratz*). Naja, ich muss ins Bettibett ... --[[Kamel:WiMu|WiMu]] 01:39, 16. Mär. 2010 (NNZ)
Zusammenfassung:
Mit dem Speichern dieser Seite …
… versichere ich, dass ich den Beitrag selbst verfasst habe bzw. dass er keine fremden Rechte verletzt
… willige ich ein, meinen Beitrag unter der
Creative Commons Attribution/Share-Alike Lizenz 3.0
und der
GNU-Lizenz für freie Dokumentation
zu veröffentlichen
… akzeptiere ich die
Kamelknigge
Abbrechen
|
Bearbeitungshilfe
(neues Fenster)
Zum Vermeiden unnötiger Artikelversionen bitte den
Vorschau-Button
benutzen!
Navigationsmenü
Ich
Ein neues Kamel registrieren
Anmelden
Namensräume
Kamelbau
Diskussion
Varianten
Ansichten
Lesen
Bearbeiten
+
Versionen/Autoren
Aktionen
Suche
Navigation
Hauptseite
Wegweiser
Zufällige Seite
Empfohlene Seiten
Schwesterprojekte
KameloNews
Gute Frage
Gute Idee
KameloBooks
Kamelionary
Spiele & Co.
Mitmachen
Letzte Änderungen
Herden-Portal
Forum
Chat
Qualitätssicherung
Hilfe
Werkzeuge
Links hierhin
Änderungen an verlinkten Seiten
Kamelbeiträge
Logbücher
Spezialseiten
Seiteninformationen