Stylisez les liens internes de MediaWiki en fonction de la date de la dernière révision de la page.
P粉184747536
P粉184747536 2023-07-20 10:47:09
0
1
400

J'ai un énorme Wikipédia avec beaucoup de pages, dont beaucoup sont obsolètes. Je souhaite appliquer des styles CSS personnalisés à chaque lien en fonction de l'âge de la page liée.

J'ai étudié le code source de MediaWiki et pour chaque lien, je peux obtenir la DBKey à partir du LinkTarget. Le code source peut être consulté ici.

Je recherche un processus qui ressemble essentiellement à ceci :

$dbKey = $target->getDBkey();
$page = find_page_by_title($dbKey);
$last_revision = get_last_revision($page);
// Additional processing based on the date of $last_revision

Alternativement, s'il existe un moyen d'obtenir ces informations à partir de l'API, je pourrais ajouter un extrait JS pour recolorer le lien.

Quelqu'un peut-il m'indiquer des ressources pour y parvenir ?

P粉184747536
P粉184747536

répondre à tous(1)
P粉448130258

Vous pouvez utiliser le hook HtmlPageLinkRendererEnd.

https://www.mediawiki.org/wiki/Manual:Hooks/HtmlPageLinkRendererEnd

Ajoutez simplement ce qui suit à votre fichier LocalSettings.php :

$wgHooks['HtmlPageLinkRendererEnd'][] = function($linkRenderer, $target, $isKnown, &$text, &$attribs, &$ret) {

        $title = Title::newFromLinkTarget($target);
        $id = $title->getLatestRevID();
        $revStore = MediaWikiServices::getInstance()->getRevisionStore();
        $date = $revStore->getTimestampFromId( $id );

        if ($date > '20230704142055') {
            $attribs['class'] = "old-page";
        }

        if ($date > '20230704142070') {
            $attribs['class'] = "newer-page";
        }        
    
    };

Changez simplement « 20230704142055 » par la date souhaitée ou actuelle.

Vous devrez peut-être également ajouter ce code en haut de votre fichier php.

use MediaWiki\MediaWikiServices;
use Title;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!