MediaWiki
1.28.3
|
Public Member Functions | |
__construct ($context=null, $old=0, $new=0, $rcid=0, $refreshCache=false, $unhide=false) | |
#@- More... | |
addHeader ($diff, $otitle, $ntitle, $multi= '', $notice= '') | |
Add the header to a diff body. More... | |
deletedIdMarker ($id) | |
Build a wikitext link toward a deleted revision, if viewable. More... | |
deletedLink ($id) | |
Look up a special:Undelete link to the given deleted revision id, as a workaround for being unable to load deleted diffs in currently. More... | |
generateContentDiffBody (Content $old, Content $new) | |
Generate a diff, no caching. More... | |
generateTextDiffBody ($otext, $ntext) | |
Generate a diff, no caching. More... | |
getDiff ($otitle, $ntitle, $notice= '') | |
Get complete diff table, including header. More... | |
getDiffBody () | |
Get the diff table body, without header. More... | |
getDiffLang () | |
getMultiNotice () | |
If there are revisions between the ones being compared, return a note saying so. More... | |
getNewid () | |
getOldid () | |
loadNewText () | |
Load the text of the new revision, not the old one. More... | |
loadRevisionData () | |
Load revision metadata for the specified articles. More... | |
loadText () | |
Load the text of the revisions, as well as revision data. More... | |
localiseLineNumbers ($text) | |
Replace line numbers with the text in the user's language. More... | |
localiseLineNumbersCb ($matches) | |
mapDiffPrevNext ($old, $new) | |
Maps a revision pair definition as accepted by DifferenceEngine constructor to a pair of actual integers representing revision ids. More... | |
renderNewRevision () | |
Show the new revision of the page. More... | |
setContent (Content $oldContent, Content $newContent) | |
Use specified text instead of loading from the database. More... | |
setReducedLineNumbers ($value=true) | |
setTextLanguage ($lang) | |
Set the language in which the diff text is written (Defaults to page content language). More... | |
showDiff ($otitle, $ntitle, $notice= '') | |
Get the diff text, send it to the OutputPage object Returns false if the diff could not be generated, otherwise returns true. More... | |
showDiffPage ($diffOnly=false) | |
showDiffStyle () | |
Add style sheets for diff display. More... | |
wasCacheHit () | |
Public Member Functions inherited from ContextSource | |
canUseWikiPage () | |
Check whether a WikiPage object can be get with getWikiPage(). More... | |
exportSession () | |
Export the resolved user IP, HTTP headers, user ID, and session ID. More... | |
getConfig () | |
Get the Config object. More... | |
getContext () | |
Get the base IContextSource object. More... | |
getLanguage () | |
Get the Language object. More... | |
getOutput () | |
Get the OutputPage object. More... | |
getRequest () | |
Get the WebRequest object. More... | |
getSkin () | |
Get the Skin object. More... | |
getStats () | |
Get the Stats object. More... | |
getTiming () | |
Get the Timing object. More... | |
getTitle () | |
Get the Title object. More... | |
getUser () | |
Get the User object. More... | |
getWikiPage () | |
Get the WikiPage object. More... | |
msg () | |
Get a Message object with context set Parameters are the same as wfMessage() More... | |
setContext (IContextSource $context) | |
Set the IContextSource object. More... | |
Static Public Member Functions | |
static | intermediateEditsMsg ($numEdits, $numUsers, $limit) |
Get a notice about how many intermediate edits and users there are. More... | |
Public Attributes | |
$enableDebugComment = false | |
Set this to true to add debug info to the HTML output. More... | |
bool | $mCacheHit = false |
Was the diff fetched from cache? More... | |
Content | $mNewContent |
int | $mNewid |
Title | $mNewPage |
Revision | $mNewRev |
Content | $mOldContent |
int | $mOldid |
Title | $mOldPage |
Revision | $mOldRev |
bool | $mRevisionsLoaded = false |
Have the revisions been loaded. More... | |
int | $mTextLoaded = 0 |
How many text blobs have been loaded, 0, 1 or 2? More... | |
const | DIFF_VERSION = MW_DIFF_VERSION |
Constant to indicate diff cache compatibility. More... | |
Protected Member Functions | |
debug ($generator="internal") | |
Generate a debug comment indicating diff generating time, server node, and generator backend. More... | |
getDiffBodyCacheKey () | |
Returns the cache key for diff body text or content. More... | |
getMarkPatrolledLinkInfo () | |
Returns an array of meta data needed to build a "mark as patrolled" link and adds the mediawiki.page.patrol.ajax to the output. More... | |
getParserOutput (WikiPage $page, Revision $rev) | |
getRevisionHeader (Revision $rev, $complete= '') | |
Get a header for a specified revision. More... | |
markPatrolledLink () | |
Build a link to mark a change as patrolled. More... | |
revisionDeleteLink ($rev) | |
textDiff ($otext, $ntext) | |
Generates diff, to be wrapped internally in a logging/instrumentation. More... | |
Protected Attributes | |
Language | $mDiffLang |
string | $mMarkPatrolledLink = null |
Link to action=markpatrolled. More... | |
bool | $mReducedLineNumbers = false |
If true, line X is not displayed when X is 1, for example to increase readability and conserve space with many small diffs. More... | |
bool | $mRefreshCache = false |
Refresh the diff cache. More... | |
bool | $unhide = false |
Show rev_deleted content if allowed. More... | |
Private Member Functions | |
loadRevisionIds () | |
Load revision IDs. More... | |
showMissingRevision () | |
Private Attributes | |
$mNewTags | |
$mOldTags | |
bool | $mRevisionsIdsLoaded = false |
Have the revisions IDs been loaded. More... | |
Definition at line 31 of file DifferenceEngine.php.
DifferenceEngine::__construct | ( | $context = null , |
|
$old = 0 , |
|||
$new = 0 , |
|||
$rcid = 0 , |
|||
$refreshCache = false , |
|||
$unhide = false |
|||
) |
#@-
Constructor
IContextSource | $context | Context to use, anything else will be ignored |
int | $old | Old ID we want to show and diff with. |
string | int | $new | Either revision ID or 'prev' or 'next'. Default: 0. |
int | $rcid | Deprecated, no longer used! |
bool | $refreshCache | If set, refreshes the diff cache |
bool | $unhide | If set, allow viewing deleted revs |
Definition at line 114 of file DifferenceEngine.php.
References ContextSource\$context, $refreshCache, $unhide, ContextSource\setContext(), and wfDebug().
DifferenceEngine::addHeader | ( | $diff, | |
$otitle, | |||
$ntitle, | |||
$multi = '' , |
|||
$notice = '' |
|||
) |
Add the header to a diff body.
string | $diff | Diff body |
string | $otitle | Old revision header |
string | $ntitle | New revision header |
string | $multi | Notice telling user that there are intermediate revisions between the ones being compared |
string | $notice | Other notices, e.g. that user is viewing deleted content |
Definition at line 1155 of file DifferenceEngine.php.
References $header, getDiffLang(), ContextSource\getLanguage(), and Html\openElement().
Referenced by getDiff(), and showDiffPage().
|
protected |
Generate a debug comment indicating diff generating time, server node, and generator backend.
string | $generator | : What diff engine was used |
Definition at line 981 of file DifferenceEngine.php.
References $generator, global, TS_DB, wfHostname(), and wfTimestamp().
Referenced by textDiff().
DifferenceEngine::deletedIdMarker | ( | $id | ) |
Build a wikitext link toward a deleted revision, if viewable.
int | $id | Revision ID |
Definition at line 208 of file DifferenceEngine.php.
References $link, and deletedLink().
Referenced by showMissingRevision().
DifferenceEngine::deletedLink | ( | $id | ) |
Look up a special:Undelete link to the given deleted revision id, as a workaround for being unable to load deleted diffs in currently.
int | $id | Revision ID |
Definition at line 181 of file DifferenceEngine.php.
References $dbr, $rev, $title, DB_REPLICA, SpecialPage\getTitleFor(), ContextSource\getUser(), Title\makeTitleSafe(), Revision\newFromArchiveRow(), and wfGetDB().
Referenced by deletedIdMarker().
Generate a diff, no caching.
This implementation uses generateTextDiffBody() to generate a diff based on the default serialization of the given Content objects. This will fail if $old or $new are not instances of TextContent.
Subclasses may override this to provide a different rendering for the diff, perhaps taking advantage of the content's native form. This is required for all content models that are not text based.
MWException | If old or new content is not an instance of TextContent. |
Definition at line 844 of file DifferenceEngine.php.
References generateTextDiffBody(), and Content\serialize().
Referenced by getDiffBody().
DifferenceEngine::generateTextDiffBody | ( | $otext, | |
$ntext | |||
) |
Generate a diff, no caching.
string | $otext | Old text, must be already segmented |
string | $ntext | New text, must be already segmented |
Definition at line 871 of file DifferenceEngine.php.
References $status, $time, ContextSource\getStats(), textDiff(), use, and wfDebugLog().
Referenced by generateContentDiffBody().
DifferenceEngine::getDiff | ( | $otitle, | |
$ntitle, | |||
$notice = '' |
|||
) |
Get complete diff table, including header.
string | bool | $otitle | Header for old text or false |
string | bool | $ntitle | Header for new text or false |
string | $notice | HTML between diff header and body |
Definition at line 717 of file DifferenceEngine.php.
References addHeader(), getDiffBody(), getMultiNotice(), and ContextSource\msg().
Referenced by showDiff().
DifferenceEngine::getDiffBody | ( | ) |
Get the diff table body, without header.
Definition at line 739 of file DifferenceEngine.php.
References $cache, Revision\DELETED_TEXT, generateContentDiffBody(), getDiffBodyCacheKey(), ObjectCache\getMainWANInstance(), loadRevisionData(), loadText(), localiseLineNumbers(), Hooks\run(), and wfIncrStats().
Referenced by getDiff().
|
protected |
Returns the cache key for diff body text or content.
MWException |
Definition at line 816 of file DifferenceEngine.php.
References wfMemcKey().
Referenced by getDiffBody().
DifferenceEngine::getDiffLang | ( | ) |
Definition at line 139 of file DifferenceEngine.php.
References $mDiffLang, and ContextSource\getTitle().
Referenced by addHeader().
|
protected |
Returns an array of meta data needed to build a "mark as patrolled" link and adds the mediawiki.page.patrol.ajax to the output.
Definition at line 517 of file DifferenceEngine.php.
References $user, DB_REPLICA, ContextSource\getOutput(), ContextSource\getUser(), global, RecentChange\isInRCLifespan(), RecentChange\newFromConds(), Hooks\run(), and wfGetDB().
Referenced by markPatrolledLink().
DifferenceEngine::getMultiNotice | ( | ) |
If there are revisions between the ones being compared, return a note saying so.
Definition at line 1025 of file DifferenceEngine.php.
References $limit, $mNewRev, $mOldRev, and Revision\RAW.
Referenced by getDiff(), and showDiffPage().
DifferenceEngine::getNewid | ( | ) |
Definition at line 167 of file DifferenceEngine.php.
References $mNewid, and loadRevisionIds().
DifferenceEngine::getOldid | ( | ) |
Definition at line 158 of file DifferenceEngine.php.
References $mOldid, and loadRevisionIds().
Definition at line 662 of file DifferenceEngine.php.
References $parserOutput, ContextSource\getContext(), Revision\getId(), WikiPage\getParserOutput(), Revision\getTitle(), ContextSource\getUser(), Revision\isCurrent(), and WikiPage\makeParserOptions().
Referenced by renderNewRevision().
|
protected |
Get a header for a specified revision.
Revision | $rev | |
string | $complete | 'complete' to get the header wrapped depending the visibility of the revision and a link to edit the page. |
Definition at line 1090 of file DifferenceEngine.php.
References $header, $lang, $timestamp, $title, $user, Revision\DELETED_TEXT, Revision\getId(), ContextSource\getLanguage(), Revision\getTimestamp(), Revision\getTitle(), ContextSource\getUser(), Revision\isCurrent(), Revision\isDeleted(), Linker\linkKnown(), ContextSource\msg(), Html\rawElement(), and Revision\userCan().
Referenced by renderNewRevision(), and showDiffPage().
|
static |
Get a notice about how many intermediate edits and users there are.
int | $numEdits | |
int | $numUsers | |
int | $limit |
Definition at line 1068 of file DifferenceEngine.php.
References $limit, and wfMessage().
DifferenceEngine::loadNewText | ( | ) |
Load the text of the new revision, not the old one.
Definition at line 1408 of file DifferenceEngine.php.
References Revision\FOR_THIS_USER, ContextSource\getUser(), and loadRevisionData().
Referenced by renderNewRevision().
DifferenceEngine::loadRevisionData | ( | ) |
Load revision metadata for the specified articles.
If newid is 0, then compare the old article in oldid to the current article; if oldid is 0, then compare the current article to the immediately previous one (ignoring the value of newid).
If oldid is false, leave the corresponding revision object set to false. This is impossible via ordinary user input, and is provided for API convenience.
Definition at line 1294 of file DifferenceEngine.php.
References $dbr, $rev, DB_REPLICA, ContextSource\getTitle(), loadRevisionIds(), Revision\newFromId(), Revision\newFromTitle(), and wfGetDB().
Referenced by getDiffBody(), loadNewText(), loadText(), and showDiffPage().
|
private |
Load revision IDs.
Definition at line 1259 of file DifferenceEngine.php.
References $mNewid, $mOldid, ContextSource\getTitle(), list, and Hooks\run().
Referenced by getNewid(), getOldid(), and loadRevisionData().
DifferenceEngine::loadText | ( | ) |
Load the text of the revisions, as well as revision data.
Definition at line 1374 of file DifferenceEngine.php.
References Revision\FOR_THIS_USER, ContextSource\getUser(), and loadRevisionData().
Referenced by getDiffBody().
DifferenceEngine::localiseLineNumbers | ( | $text | ) |
Replace line numbers with the text in the user's language.
string | $text |
Definition at line 1004 of file DifferenceEngine.php.
Referenced by getDiffBody().
DifferenceEngine::localiseLineNumbersCb | ( | $matches | ) |
Definition at line 1012 of file DifferenceEngine.php.
References $matches, and ContextSource\msg().
DifferenceEngine::mapDiffPrevNext | ( | $old, | |
$new | |||
) |
Maps a revision pair definition as accepted by DifferenceEngine constructor to a pair of actual integers representing revision ids.
int | $old | Revision id, e.g. from URL parameter 'oldid' |
int | string | $new | Revision id or strings 'next' or 'prev', e.g. from URL parameter 'diff' |
Definition at line 1239 of file DifferenceEngine.php.
References ContextSource\getTitle().
|
protected |
Build a link to mark a change as patrolled.
Returns empty string if there's either no revision to patrol or the user is not allowed to. Side effect: When the patrol link is build, this method will call OutputPage::preventClickjacking() and load mediawiki.page.patrol.ajax.
Definition at line 484 of file DifferenceEngine.php.
References $mMarkPatrolledLink, getMarkPatrolledLinkInfo(), Linker\linkKnown(), ContextSource\msg(), and Hooks\run().
Referenced by renderNewRevision(), and showDiffPage().
DifferenceEngine::renderNewRevision | ( | ) |
Show the new revision of the page.
Definition at line 593 of file DifferenceEngine.php.
References $out, $parserOutput, WikiPage\factory(), ContextSource\getOutput(), getParserOutput(), getRevisionHeader(), ContextSource\getTitle(), ContextSource\getWikiPage(), loadNewText(), markPatrolledLink(), Hooks\run(), and ContentHandler\runLegacyHooks().
Referenced by showDiffPage().
|
protected |
Revision | $rev |
Definition at line 581 of file DifferenceEngine.php.
References $link, $rev, Linker\getRevDeleteLink(), and ContextSource\getUser().
Referenced by showDiffPage().
Use specified text instead of loading from the database.
Definition at line 1210 of file DifferenceEngine.php.
DifferenceEngine::setReducedLineNumbers | ( | $value = true | ) |
DifferenceEngine::setTextLanguage | ( | $lang | ) |
Set the language in which the diff text is written (Defaults to page content language).
Language | string | $lang |
Definition at line 1224 of file DifferenceEngine.php.
References $lang, and wfGetLangObj().
DifferenceEngine::showDiff | ( | $otitle, | |
$ntitle, | |||
$notice = '' |
|||
) |
Get the diff text, send it to the OutputPage object Returns false if the diff could not be generated, otherwise returns true.
string | bool | $otitle | Header for old text or false |
string | bool | $ntitle | Header for new text or false |
string | $notice | HTML between diff header and body |
Definition at line 684 of file DifferenceEngine.php.
References getDiff(), ContextSource\getOutput(), Hooks\run(), showDiffStyle(), and showMissingRevision().
Referenced by showDiffPage().
DifferenceEngine::showDiffPage | ( | $diffOnly = false | ) |
Definition at line 240 of file DifferenceEngine.php.
References $formattedRevisionTools, $link, $newminor, $nextlink, $oldminor, $out, $query, $rollback, $suppressed, $user, addHeader(), as, below, Revision\DELETED_RESTRICTED, Revision\DELETED_TEXT, Html\element(), ChangesList\flag(), ChangeTags\formatSummaryRow(), Linker\generateRollback(), ContextSource\getContext(), getMultiNotice(), ContextSource\getOutput(), ContextSource\getRequest(), getRevisionHeader(), ContextSource\getTitle(), ContextSource\getUser(), Linker\linkKnown(), loadRevisionData(), markPatrolledLink(), ContextSource\msg(), not, Html\rawElement(), renderNewRevision(), Linker\revComment(), revisionDeleteLink(), Linker\revUserTools(), Hooks\run(), see, set, showDiff(), showDiffStyle(), showMissingRevision(), Linker\titleAttrib(), and wfMergeErrorArrays().
DifferenceEngine::showDiffStyle | ( | ) |
Add style sheets for diff display.
Definition at line 704 of file DifferenceEngine.php.
References ContextSource\getOutput().
Referenced by showDiff(), and showDiffPage().
|
private |
Definition at line 217 of file DifferenceEngine.php.
References $out, deletedIdMarker(), ContextSource\getLanguage(), ContextSource\getOutput(), and ContextSource\msg().
Referenced by showDiff(), and showDiffPage().
|
protected |
Generates diff, to be wrapped internally in a logging/instrumentation.
string | $otext | Old text, must be already segmented |
string | $ntext | New text, must be already segmented |
Definition at line 911 of file DifferenceEngine.php.
References $wgContLang, debug(), global, wfDeprecated(), wfEscapeShellArg(), wfShellExec(), wfTempDir(), and wfWarn().
Referenced by generateTextDiffBody().
DifferenceEngine::wasCacheHit | ( | ) |
DifferenceEngine::$enableDebugComment = false |
Set this to true to add debug info to the HTML output.
Warning: this may cause RSS readers to spuriously mark articles as "new" (bug 20601)
Definition at line 87 of file DifferenceEngine.php.
bool DifferenceEngine::$mCacheHit = false |
Was the diff fetched from cache?
Definition at line 80 of file DifferenceEngine.php.
Referenced by wasCacheHit().
|
protected |
Definition at line 56 of file DifferenceEngine.php.
Referenced by getDiffLang().
|
protected |
Link to action=markpatrolled.
Definition at line 95 of file DifferenceEngine.php.
Referenced by markPatrolledLink().
Content DifferenceEngine::$mNewContent |
Definition at line 53 of file DifferenceEngine.php.
int DifferenceEngine::$mNewid |
Definition at line 44 of file DifferenceEngine.php.
Referenced by getNewid(), and loadRevisionIds().
Title DifferenceEngine::$mNewPage |
Definition at line 62 of file DifferenceEngine.php.
Revision DifferenceEngine::$mNewRev |
Definition at line 68 of file DifferenceEngine.php.
Referenced by getMultiNotice().
|
private |
Definition at line 47 of file DifferenceEngine.php.
Content DifferenceEngine::$mOldContent |
Definition at line 50 of file DifferenceEngine.php.
int DifferenceEngine::$mOldid |
Definition at line 41 of file DifferenceEngine.php.
Referenced by getOldid(), and loadRevisionIds().
Title DifferenceEngine::$mOldPage |
Definition at line 59 of file DifferenceEngine.php.
Revision DifferenceEngine::$mOldRev |
Definition at line 65 of file DifferenceEngine.php.
Referenced by getMultiNotice().
|
private |
Definition at line 46 of file DifferenceEngine.php.
|
protected |
If true, line X is not displayed when X is 1, for example to increase readability and conserve space with many small diffs.
Definition at line 92 of file DifferenceEngine.php.
|
protected |
Refresh the diff cache.
Definition at line 101 of file DifferenceEngine.php.
|
private |
Have the revisions IDs been loaded.
Definition at line 71 of file DifferenceEngine.php.
bool DifferenceEngine::$mRevisionsLoaded = false |
Have the revisions been loaded.
Definition at line 74 of file DifferenceEngine.php.
int DifferenceEngine::$mTextLoaded = 0 |
How many text blobs have been loaded, 0, 1 or 2?
Definition at line 77 of file DifferenceEngine.php.
|
protected |
Show rev_deleted content if allowed.
Definition at line 98 of file DifferenceEngine.php.
Referenced by __construct().
const DifferenceEngine::DIFF_VERSION = MW_DIFF_VERSION |
Constant to indicate diff cache compatibility.
Bump this when changing the diff formatting in a way that fixes important bugs or such to force cached diff views to clear.
Definition at line 38 of file DifferenceEngine.php.