MediaWiki  REL1_19
DifferenceEngine Class Reference
Inheritance diagram for DifferenceEngine:
Collaboration diagram for DifferenceEngine:

List of all members.

Public Member Functions

 __construct ($context=null, $old=0, $new=0, $rcid=0, $refreshCache=false, $unhide=false)
 #@-
 addHeader ($diff, $otitle, $ntitle, $multi= '', $notice= '')
 Add the header to a diff body.
 deletedIdMarker ($id)
 Build a wikitext link toward a deleted revision, if viewable.
 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.
 generateDiffBody ($otext, $ntext)
 Generate a diff, no caching.
 getDiff ($otitle, $ntitle, $notice= '')
 Get complete diff table, including header.
 getDiffBody ()
 Get the diff table body, without header.
 getDiffLang ()
 getMultiNotice ()
 If there are revisions between the ones being compared, return a note saying so.
 getNewid ()
 getOldid ()
 loadNewText ()
 Load the text of the new revision, not the old one.
 loadRevisionData ()
 Load revision metadata for the specified articles.
 loadText ()
 Load the text of the revisions, as well as revision data.
 localiseLineNumbers ($text)
 Replace line numbers with the text in the user's language.
 localiseLineNumbersCb ($matches)
 renderNewRevision ()
 Show the new revision of the page.
 setReducedLineNumbers ($value=true)
 setText ($oldText, $newText)
 Use specified text instead of loading from the database.
 setTextLanguage ($lang)
 Set the language in which the diff text is written (Defaults to page content language).
 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.
 showDiffPage ($diffOnly=false)
 showDiffStyle ()
 Add style sheets and supporting JS for diff display.
 wasCacheHit ()

Static Public Member Functions

static intermediateEditsMsg ($numEdits, $numUsers, $limit)
 Get a notice about how many intermediate edits and users there are.

Public Attributes

 $enableDebugComment = false
 Set this to true to add debug info to the HTML output.
 $mCacheHit = false
 $mNewid
 $mNewPage
 $mNewRev
 $mNewtext
 $mOldid
 #@+
 $mOldPage
 $mOldRev
 $mOldtext
 $mRcidMarkPatrolled
 $mRevisionsLoaded = false
 $mTextLoaded = 0

Protected Member Functions

 debug ($generator="internal")
 Generate a debug comment indicating diff generating time, server node, and generator backend.
 markPatrolledLink ()
 Get a link to mark the change as patrolled, or '' if there's either no revision to patrol or the user is not allowed to to it.
 revisionDeleteLink ($rev)

Protected Attributes

 $mDiffLang
 $mMarkPatrolledLink = null
 $mReducedLineNumbers = false
 $unhide = false

Private Member Functions

 getRevisionHeader (Revision $rev, $complete= '')
 Get a header for a specified revision.
 initDiffEngines ()
 Make sure the proper modules are loaded before we try to make the diff.
 loadRevisionIds ()
 Load revision IDs.

Private Attributes

 $mRevisionsIdsLoaded = false

Detailed Description

Todo:
document

Definition at line 21 of file DifferenceEngine.php.


Constructor & Destructor Documentation

DifferenceEngine::__construct ( context = null,
old = 0,
new = 0,
rcid = 0,
refreshCache = false,
unhide = false 
)

#@-

Constructor

Parameters:
$contextIContextSource context to use, anything else will be ignored
$oldInteger old ID we want to show and diff with.
$newString either 'prev' or 'next'.
$rcidInteger ??? FIXME (default 0)
$refreshCacheboolean If set, refreshes the diff cache
$unhideboolean If set, allow viewing deleted revs

Definition at line 70 of file DifferenceEngine.php.

References ContextSource\$context, $unhide, ContextSource\setContext(), and wfDebug().

Here is the call graph for this function:


Member Function Documentation

DifferenceEngine::addHeader ( diff,
otitle,
ntitle,
multi = '',
notice = '' 
)

Add the header to a diff body.

Returns:
string

Definition at line 884 of file DifferenceEngine.php.

References getDiffLang().

Referenced by getDiff(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

DifferenceEngine::debug ( generator = "internal") [protected]

Generate a debug comment indicating diff generating time, server node, and generator backend.

Definition at line 751 of file DifferenceEngine.php.

References $wgShowHostnames, wfHostname(), and wfTimestamp().

Referenced by generateDiffBody().

Here is the call graph for this function:

Here is the caller graph for this function:

Build a wikitext link toward a deleted revision, if viewable.

Parameters:
int$idrevision ID
Returns:
string wikitext fragment

Definition at line 158 of file DifferenceEngine.php.

References deletedLink().

Referenced by showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Look up a special:Undelete link to the given deleted revision id, as a workaround for being unable to load deleted diffs in currently.

Parameters:
int$idrevision ID
Returns:
mixed URL or false

Definition at line 134 of file DifferenceEngine.php.

References $dbr, $title, SpecialPage\getTitleFor(), ContextSource\getUser(), Title\makeTitleSafe(), Revision\newFromArchiveRow(), and wfGetDB().

Referenced by deletedIdMarker().

Here is the call graph for this function:

Here is the caller graph for this function:

DifferenceEngine::generateDiffBody ( otext,
ntext 
)

Generate a diff, no caching.

Parameters:
$otextString: old text, must be already segmented
$ntextString: new text, must be already segmented

Definition at line 676 of file DifferenceEngine.php.

References $wgContLang, $wgExternalDiffEngine, $wgTmpDirectory, debug(), initDiffEngines(), wfEscapeShellArg(), wfProfileIn(), wfProfileOut(), and wfShellExec().

Referenced by getDiffBody().

Here is the call graph for this function:

Here is the caller graph for this function:

DifferenceEngine::getDiff ( otitle,
ntitle,
notice = '' 
)

Get complete diff table, including header.

Parameters:
$otitleTitle: old title
$ntitleTitle: new title
$noticeString: HTML between diff header and body
Returns:
mixed

Definition at line 570 of file DifferenceEngine.php.

References addHeader(), getDiffBody(), and getMultiNotice().

Referenced by showDiff().

Here is the call graph for this function:

Here is the caller graph for this function:

Get the diff table body, without header.

Returns:
mixed (string/false)

Definition at line 585 of file DifferenceEngine.php.

References $wgMemc, Revision\DELETED_TEXT, generateDiffBody(), loadRevisionData(), loadText(), localiseLineNumbers(), wfIncrStats(), wfMemcKey(), wfProfileIn(), wfProfileOut(), and wfRunHooks().

Referenced by getDiff().

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
Language

Definition at line 96 of file DifferenceEngine.php.

References ContextSource\getTitle().

Referenced by addHeader().

Here is the call graph for this function:

Here is the caller graph for this function:

If there are revisions between the ones being compared, return a note saying so.

Returns:
string

Definition at line 787 of file DifferenceEngine.php.

References $limit, and intermediateEditsMsg().

Referenced by getDiff(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
Bool|int

Definition at line 122 of file DifferenceEngine.php.

References loadRevisionIds().

Referenced by ApiQueryRevisions\extractRowInfo().

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
int

Definition at line 114 of file DifferenceEngine.php.

References loadRevisionIds().

Referenced by ApiQueryRevisions\extractRowInfo().

Here is the call graph for this function:

Here is the caller graph for this function:

DifferenceEngine::getRevisionHeader ( Revision rev,
complete = '' 
) [private]

Get a header for a specified revision.

Parameters:
$revRevision
$completeString: 'complete' to get the header wrapped depending the visibility of the revision and a link to edit the page.
Returns:
String HTML fragment

Definition at line 837 of file DifferenceEngine.php.

References $title, $user, Revision\DELETED_TEXT, 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().

Here is the call graph for this function:

Here is the caller graph for this function:

Make sure the proper modules are loaded before we try to make the diff.

Definition at line 656 of file DifferenceEngine.php.

References $wgExternalDiffEngine, wfDl(), wfProfileIn(), and wfProfileOut().

Referenced by generateDiffBody().

Here is the call graph for this function:

Here is the caller graph for this function:

static DifferenceEngine::intermediateEditsMsg ( numEdits,
numUsers,
limit 
) [static]

Get a notice about how many intermediate edits and users there are.

Parameters:
$numEditsint
$numUsersint
$limitint
Returns:
string

Definition at line 819 of file DifferenceEngine.php.

References $limit, and wfMessage().

Referenced by getMultiNotice().

Here is the call graph for this function:

Here is the caller graph for this function:

Load the text of the new revision, not the old one.

Returns:
bool

Definition at line 1078 of file DifferenceEngine.php.

References Revision\FOR_THIS_USER, and loadRevisionData().

Referenced by renderNewRevision().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Returns:
bool

Definition at line 992 of file DifferenceEngine.php.

References ContextSource\getTitle(), loadRevisionIds(), Revision\newFromId(), and Revision\newFromTitle().

Referenced by getDiffBody(), loadNewText(), loadText(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Load revision IDs.

Definition at line 948 of file DifferenceEngine.php.

References ContextSource\getTitle(), and wfRunHooks().

Referenced by getNewid(), getOldid(), and loadRevisionData().

Here is the call graph for this function:

Here is the caller graph for this function:

Load the text of the revisions, as well as revision data.

Returns:
bool

Definition at line 1047 of file DifferenceEngine.php.

References Revision\FOR_THIS_USER, and loadRevisionData().

Referenced by getDiffBody().

Here is the call graph for this function:

Here is the caller graph for this function:

Replace line numbers with the text in the user's language.

Definition at line 772 of file DifferenceEngine.php.

Referenced by getDiffBody().

Here is the caller graph for this function:

Definition at line 777 of file DifferenceEngine.php.

References $matches, and ContextSource\msg().

Here is the call graph for this function:

Get a link to mark the change as patrolled, or '' if there's either no revision to patrol or the user is not allowed to to it.

Side effect: this method will call OutputPage::preventClickjacking() when a link is builded.

Returns:
String

Definition at line 401 of file DifferenceEngine.php.

References $wgUseRCPatrol, ContextSource\getOutput(), ContextSource\getUser(), Linker\linkKnown(), ContextSource\msg(), RecentChange\newFromConds(), RecentChange\newFromId(), and wfGetDB().

Referenced by renderNewRevision(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Show the new revision of the page.

Definition at line 475 of file DifferenceEngine.php.

References $out, WikiPage\factory(), ContextSource\getContext(), ContextSource\getOutput(), getRevisionHeader(), ContextSource\getTitle(), ContextSource\getWikiPage(), loadNewText(), markPatrolledLink(), ParserOptions\newFromContext(), wfProfileIn(), wfProfileOut(), and wfRunHooks().

Referenced by showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

DifferenceEngine::revisionDeleteLink ( rev) [protected]
Parameters:
$revRevision
Returns:
String

Definition at line 464 of file DifferenceEngine.php.

References Linker\getRevDeleteLink(), and ContextSource\getUser().

Referenced by showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Parameters:
$valuebool

Definition at line 89 of file DifferenceEngine.php.

DifferenceEngine::setText ( oldText,
newText 
)

Use specified text instead of loading from the database.

Definition at line 929 of file DifferenceEngine.php.

Referenced by EditPage\showConflict(), EditPage\showDiff(), and EditPage\spamPageWithContent().

Here is the caller graph for this function:

Set the language in which the diff text is written (Defaults to page content language).

Since:
1.19

Definition at line 941 of file DifferenceEngine.php.

References wfGetLangObj().

Here is the call graph for this function:

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.

Returns:
bool

Definition at line 543 of file DifferenceEngine.php.

References getDiff(), ContextSource\getOutput(), and showDiffStyle().

Referenced by RollbackAction\onView(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Add style sheets and supporting JS for diff display.

Definition at line 558 of file DifferenceEngine.php.

References ContextSource\getOutput().

Referenced by showDiff(), and showDiffPage().

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
bool

Definition at line 107 of file DifferenceEngine.php.


Member Data Documentation

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 49 of file DifferenceEngine.php.

DifferenceEngine::$mCacheHit = false

Definition at line 42 of file DifferenceEngine.php.

DifferenceEngine::$mDiffLang [protected]

Definition at line 27 of file DifferenceEngine.php.

DifferenceEngine::$mMarkPatrolledLink = null [protected]

Definition at line 56 of file DifferenceEngine.php.

DifferenceEngine::$mNewid

Definition at line 25 of file DifferenceEngine.php.

DifferenceEngine::$mNewPage

Definition at line 32 of file DifferenceEngine.php.

DifferenceEngine::$mNewRev

Definition at line 38 of file DifferenceEngine.php.

DifferenceEngine::$mNewtext

Definition at line 26 of file DifferenceEngine.php.

DifferenceEngine::$mOldid

#@+

Access:
private

Definition at line 25 of file DifferenceEngine.php.

DifferenceEngine::$mOldPage

Definition at line 32 of file DifferenceEngine.php.

DifferenceEngine::$mOldRev

Definition at line 38 of file DifferenceEngine.php.

DifferenceEngine::$mOldtext

Definition at line 26 of file DifferenceEngine.php.

DifferenceEngine::$mRcidMarkPatrolled

Definition at line 33 of file DifferenceEngine.php.

DifferenceEngine::$mReducedLineNumbers = false [protected]

Definition at line 53 of file DifferenceEngine.php.

DifferenceEngine::$mRevisionsIdsLoaded = false [private]

Definition at line 39 of file DifferenceEngine.php.

DifferenceEngine::$mRevisionsLoaded = false

Definition at line 40 of file DifferenceEngine.php.

DifferenceEngine::$mTextLoaded = 0

Definition at line 41 of file DifferenceEngine.php.

DifferenceEngine::$unhide = false [protected]

Definition at line 58 of file DifferenceEngine.php.

Referenced by __construct().


The documentation for this class was generated from the following file: