Gayakan pautan dalaman MediaWiki berdasarkan tarikh semakan terakhir halaman.
P粉184747536
P粉184747536 2023-07-20 10:47:09
0
1
465

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粉184747536
P粉184747536

membalas semua(1)
P粉448130258

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;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan