cari

Rumah  >  Soal Jawab  >  teks badan

Gayakan pautan dalaman MediaWiki berdasarkan tarikh semakan terakhir halaman.

Saya mempunyai Wikipedia yang besar dengan banyak halaman, kebanyakannya sudah lapuk. Saya ingin menggunakan gaya CSS tersuai pada setiap pautan berdasarkan umur halaman yang dipautkan.

Saya telah melihat ke dalam kod sumber MediaWiki dan untuk setiap pautan saya boleh mendapatkan DBKey bermula dari LinkTarget. Kod sumber boleh dilihat di sini.

Saya sedang mencari proses yang pada asasnya kelihatan seperti ini:

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

Sebagai alternatif, jika ada cara untuk mendapatkan maklumat ini daripada API, saya boleh menambah coretan JS untuk mewarna semula pautan.

Bolehkah seseorang menunjukkan saya kepada sumber untuk mencapai ini?

P粉184747536P粉184747536491 hari yang lalu453

membalas semua(1)saya akan balas

  • P粉448130258

    P粉4481302582023-07-21 09:03:48

    Anda boleh menggunakan cangkuk HtmlPageLinkRendererEnd.

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

    Hanya tambahkan yang berikut pada fail LocalSettings.php anda:

    $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";
            }        
        
        };

    Tukar sahaja '20230704142055' kepada tarikh yang anda inginkan atau semasa.

    Anda juga mungkin perlu menambah kod ini pada bahagian atas fail php anda.

    use MediaWiki\MediaWikiServices;
    use Title;

    balas
    0
  • Batalbalas