MediaWiki
master
addRFCandPMIDInterwiki.php
Go to the documentation of this file.
1
<?php
21
use
MediaWiki\MainConfigNames
;
22
23
require_once __DIR__ .
'/Maintenance.php'
;
24
33
class
AddRFCandPMIDInterwiki
extends
LoggedUpdateMaintenance
{
34
public
function
__construct
() {
35
parent::__construct();
36
$this->
addDescription
(
'Add RFC and PMID to the interwiki database table'
);
37
}
38
39
protected
function
getUpdateKey
() {
40
return
__CLASS__;
41
}
42
43
protected
function
updateSkippedMessage
() {
44
return
'RFC and PMID already added to interwiki database table.'
;
45
}
46
47
protected
function
doDBUpdates
() {
48
$interwikiCache = $this->
getConfig
()->get( MainConfigNames::InterwikiCache );
49
// Using something other than the database,
50
if
( $interwikiCache !==
false
) {
51
return
true
;
52
}
53
$dbw = $this->
getPrimaryDB
();
54
55
$rfc = $dbw->newSelectQueryBuilder()
56
->select(
'iw_url'
)
57
->from(
'interwiki'
)
58
->where( [
'iw_prefix'
=>
'rfc'
] )
59
->caller( __METHOD__ )
60
->fetchField();
61
62
// Old pre-1.28 default value, or not set at all
63
if
( $rfc ===
false
|| $rfc ===
'http://www.rfc-editor.org/rfc/rfc$1.txt'
) {
64
$dbw->newReplaceQueryBuilder()
65
->replaceInto(
'interwiki'
)
66
->uniqueIndexFields( [
'iw_prefix'
] )
67
->row( [
68
'iw_prefix'
=>
'rfc'
,
69
'iw_url'
=>
'https://tools.ietf.org/html/rfc$1'
,
70
'iw_api'
=>
''
,
71
'iw_wikiid'
=>
''
,
72
'iw_local'
=> 0,
73
] )
74
->caller( __METHOD__ )->execute();
75
}
76
77
$dbw->newInsertQueryBuilder()
78
->insertInto(
'interwiki'
)
79
// If there's already a pmid interwiki link, don't overwrite it
80
->ignore()
81
->row( [
82
'iw_prefix'
=>
'pmid'
,
83
'iw_url'
=>
'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract'
,
84
'iw_api'
=>
''
,
85
'iw_wikiid'
=>
''
,
86
'iw_local'
=> 0,
87
] )
88
->caller( __METHOD__ )->execute();
89
90
return
true
;
91
}
92
}
93
94
$maintClass
= AddRFCandPMIDInterwiki::class;
95
require_once RUN_MAINTENANCE_IF_MAIN;
$maintClass
$maintClass
Definition
addRFCandPMIDInterwiki.php:94
AddRFCandPMIDInterwiki
Run automatically with update.php.
Definition
addRFCandPMIDInterwiki.php:33
AddRFCandPMIDInterwiki\doDBUpdates
doDBUpdates()
Do the actual work.
Definition
addRFCandPMIDInterwiki.php:47
AddRFCandPMIDInterwiki\getUpdateKey
getUpdateKey()
Get the update key name to go in the update log table.
Definition
addRFCandPMIDInterwiki.php:39
AddRFCandPMIDInterwiki\__construct
__construct()
Default constructor.
Definition
addRFCandPMIDInterwiki.php:34
AddRFCandPMIDInterwiki\updateSkippedMessage
updateSkippedMessage()
Message to show that the update was done already and was just skipped.
Definition
addRFCandPMIDInterwiki.php:43
LoggedUpdateMaintenance
Class for scripts that perform database maintenance and want to log the update in updatelog so we can...
Definition
LoggedUpdateMaintenance.php:26
Maintenance\addDescription
addDescription( $text)
Set the description text.
Definition
Maintenance.php:328
Maintenance\getPrimaryDB
getPrimaryDB()
Definition
Maintenance.php:1092
Maintenance\getConfig
getConfig()
Definition
Maintenance.php:626
MediaWiki\MainConfigNames
A class containing constants representing the names of configuration variables.
Definition
MainConfigNames.php:22
maintenance
addRFCandPMIDInterwiki.php
Generated on Thu Apr 18 2024 23:25:54 for MediaWiki by
1.10.0