BlueSpice MediaWiki master
 All Classes Namespaces Files Functions Variables Groups Pages
Title Class Reference
Inheritance diagram for Title:
Collaboration diagram for Title:

Public Member Functions

 __construct ()
 
 loadFromRow ($row)
 
 isValid ()
 
 isLocal ()
 
 isExternal ()
 
 getInterwiki ()
 
 wasLocalInterwiki ()
 
 isTrans ()
 
 getTransWikiID ()
 
 getTitleValue ()
 
 getText ()
 
 getPartialURL ()
 
 getDBkey ()
 
 getUserCaseDBKey ()
 
 getNamespace ()
 
 getContentModel ($flags=0)
 
 hasContentModel ($id)
 
 getNsText ()
 
 getSubjectNsText ()
 
 getTalkNsText ()
 
 canTalk ()
 
 canHaveTalkPage ()
 
 canExist ()
 
 isWatchable ()
 
 isSpecialPage ()
 
 isSpecial ($name)
 
 fixSpecialName ()
 
 inNamespace ($ns)
 
 inNamespaces ()
 
 hasSubjectNamespace ($ns)
 
 isContentPage ()
 
 isMovable ()
 
 isMainPage ()
 
 isSubpage ()
 
 isConversionTable ()
 
 isWikitextPage ()
 
 isSiteConfigPage ()
 
 isCssOrJsPage ()
 
 isUserConfigPage ()
 
 isCssJsSubpage ()
 
 getSkinFromConfigSubpage ()
 
 getSkinFromCssJsSubpage ()
 
 isUserCssConfigPage ()
 
 isCssSubpage ()
 
 isUserJsonConfigPage ()
 
 isUserJsConfigPage ()
 
 isJsSubpage ()
 
 isTalkPage ()
 
 getTalkPage ()
 
 getTalkPageIfDefined ()
 
 getSubjectPage ()
 
 getOtherPage ()
 
 getDefaultNamespace ()
 
 getFragment ()
 
 hasFragment ()
 
 getFragmentForURL ()
 
 setFragment ($fragment)
 
 createFragmentTarget ($fragment)
 
 getPrefixedDBkey ()
 
 getPrefixedText ()
 
 __toString ()
 
 getFullText ()
 
 getRootText ()
 
 getRootTitle ()
 
 getBaseText ()
 
 getBaseTitle ()
 
 getSubpageText ()
 
 getSubpage ($text)
 
 getSubpageUrlForm ()
 
 getPrefixedURL ()
 
 getFullURL ($query= '', $query2=false, $proto=PROTO_RELATIVE)
 
 getFullUrlForRedirect ($query= '', $proto=PROTO_CURRENT)
 
 getLocalURL ($query= '', $query2=false)
 
 getLinkURL ($query= '', $query2=false, $proto=false)
 
 getInternalURL ($query= '', $query2=false)
 
 getCanonicalURL ($query= '', $query2=false)
 
 getEditURL ()
 
 quickUserCan ($action, $user=null)
 
 userCan ($action, $user=null, $rigor= 'secure')
 
 getUserPermissionsErrors ($action, $user, $rigor= 'secure', $ignoreErrors=[])
 
 getRestrictionTypes ()
 
 getTitleProtection ()
 
 deleteTitleProtection ()
 
 isSemiProtected ($action= 'edit')
 
 isProtected ($action= '')
 
 isNamespaceProtected (User $user)
 
 isCascadeProtected ()
 
 areCascadeProtectionSourcesLoaded ($getPages=true)
 
 getCascadeProtectionSources ($getPages=true)
 
 areRestrictionsLoaded ()
 
 getRestrictions ($action)
 
 getAllRestrictions ()
 
 getRestrictionExpiry ($action)
 
 areRestrictionsCascading ()
 
 loadRestrictionsFromRows ($rows, $oldFashionedRestrictions=null)
 
 loadRestrictions ($oldFashionedRestrictions=null)
 
 flushRestrictions ()
 
 hasSubpages ()
 
 getSubpages ($limit=-1)
 
 isDeleted ()
 
 isDeletedQuick ()
 
 getArticleID ($flags=0)
 
 isRedirect ($flags=0)
 
 getLength ($flags=0)
 
 getLatestRevID ($flags=0)
 
 resetArticleID ($newid)
 
 getLinksTo ($options=[], $table= 'pagelinks', $prefix= 'pl')
 
 getTemplateLinksTo ($options=[])
 
 getLinksFrom ($options=[], $table= 'pagelinks', $prefix= 'pl')
 
 getTemplateLinksFrom ($options=[])
 
 getBrokenLinksFrom ()
 
 getCdnUrls ()
 
 getSquidURLs ()
 
 purgeSquid ()
 
 isValidMoveOperation (&$nt, $auth=true, $reason= '')
 
 moveTo (&$nt, $auth=true, $reason= '', $createRedirect=true, array $changeTags=[])
 
 moveSubpages ($nt, $auth=true, $reason= '', $createRedirect=true, array $changeTags=[])
 
 isSingleRevRedirect ()
 
 isValidMoveTarget ($nt)
 
 getParentCategories ()
 
 getParentCategoryTree ($children=[])
 
 pageCond ()
 
 getPreviousRevisionID ($revId, $flags=0)
 
 getNextRevisionID ($revId, $flags=0)
 
 getFirstRevision ($flags=0)
 
 getEarliestRevTime ($flags=0)
 
 isNewPage ()
 
 isBigDeletion ()
 
 estimateRevisionCount ()
 
 countRevisionsBetween ($old, $new, $max=null)
 
 getAuthorsBetween ($old, $new, $limit, $options=[])
 
 countAuthorsBetween ($old, $new, $limit, $options=[])
 
 equals (Title $title)
 
 isSubpageOf (Title $title)
 
 exists ($flags=0)
 
 isAlwaysKnown ()
 
 isKnown ()
 
 hasSourceText ()
 
 getDefaultMessageText ()
 
 invalidateCache ($purgeTime=null)
 
 touchLinks ()
 
 getTouched ($db=null)
 
 getNotificationTimestamp ($user=null)
 
 getNamespaceKey ($prepend= 'nstab-')
 
 getRedirectsHere ($ns=null)
 
 isValidRedirectTarget ()
 
 getBacklinkCache ()
 
 canUseNoindex ()
 
 getCategorySortkey ($prefix= '')
 
 getPageLanguage ()
 
 getPageViewLanguage ()
 
 getEditNotices ($oldid=0)
 
 __sleep ()
 
 __wakeup ()
 

Static Public Member Functions

static newFromDBkey ($key)
 
static newFromTitleValue (TitleValue $titleValue)
 
static newFromLinkTarget (LinkTarget $linkTarget)
 
static newFromText ($text, $defaultNamespace=NS_MAIN)
 
static newFromTextThrow ($text, $defaultNamespace=NS_MAIN)
 
static newFromURL ($url)
 
static newFromID ($id, $flags=0)
 
static newFromIDs ($ids)
 
static newFromRow ($row)
 
static makeTitle ($ns, $title, $fragment= '', $interwiki= '')
 
static makeTitleSafe ($ns, $title, $fragment= '', $interwiki= '')
 
static newMainPage ()
 
static nameOf ($id)
 
static legalChars ()
 
static convertByteClassToUnicodeClass ($byteClass)
 
static makeName ($ns, $title, $fragment= '', $interwiki= '', $canonicalNamespace=false)
 
static escapeFragmentForURL ($fragment)
 
static compare (LinkTarget $a, LinkTarget $b)
 
static getFilteredRestrictionTypes ($exists=true)
 
static purgeExpiredRestrictions ()
 
static clearCaches ()
 
static capitalize ($text, $ns=NS_MAIN)
 

Public Attributes

const CACHE_MAX = 1000
 
const GAID_FOR_UPDATE = 1
 

Protected Member Functions

 getUserPermissionsErrorsInternal ($action, $user, $rigor= 'secure', $short=false)
 
 getTitleProtectionInternal ()
 
 validateFileMoveOperation ($nt)
 

Static Protected Member Functions

static getSelectFields ()
 

Private member variables

Please use the accessor functions instead.

 $mTextform = ''
 
 $mUrlform = ''
 
 $mDbkeyform = ''
 
 $mNamespace = NS_MAIN
 
 $mInterwiki = ''
 
 $mFragment = ''
 
 $mArticleID = -1
 
 $mRestrictions = []
 
 $mCascadeRestriction
 
 $mCascadingRestrictions
 
 $mCascadeSources
 
 $mRestrictionsLoaded = false
 
 $mTitleProtection
 
 $mDefaultNamespace = NS_MAIN
 
 $mRedirect = null
 
 $mUserCaseDBKey
 
 $mLatestID = false
 
 $mOldRestrictions = false
 
 $mRestrictionsExpiry = []
 
 $mHasCascadingRestrictions
 
 $mPrefixedText = null
 
 $mLength = -1
 
 setContentModel ($model)
 

Detailed Description

Represents a title within MediaWiki. Optionally may contain an interwiki designation or namespace.

Note
This class can fetch various kinds of data from the database; however, it does so inefficiently.
Consider using a TitleValue object instead. TitleValue is more lightweight and does not rely on global state or the database.

Constructor & Destructor Documentation

Title::__construct ( )

protected

Member Function Documentation

Title::__sleep ( )
Returns
array
Title::__toString ( )

Return a string representation of this title

Returns
string Representation of this title

Implements MediaWiki\Linker\LinkTarget.

Title::areCascadeProtectionSourcesLoaded (   $getPages = true)

Determines whether cascading protection sources have already been loaded from the database.

Parameters
bool$getPagesTrue to check if the pages are loaded, or false to check if the status is loaded.
Returns
bool Whether or not the specified information has been loaded
Since
1.23
Title::areRestrictionsCascading ( )

Returns cascading restrictions for the current article

Returns
bool
Title::areRestrictionsLoaded ( )

Accessor for mRestrictionsLoaded

Returns
bool Whether or not the page's restrictions have already been loaded from the database
Since
1.23
Title::canExist ( )

Is this in a namespace that allows actual pages?

Returns
bool
Title::canHaveTalkPage ( )

Can this title have a corresponding talk page?

See Also
MWNamespace::hasTalkNamespace
Since
1.30
Returns
bool True if this title either is a talk page or can have a talk page associated.
Title::canTalk ( )

Can this title have a corresponding talk page?

Deprecated:
since 1.30, use canHaveTalkPage() instead.
Returns
bool True if this title either is a talk page or can have a talk page associated.
Title::canUseNoindex ( )

Whether the magic words INDEX and NOINDEX function for this page.

Returns
bool
static Title::capitalize (   $text,
  $ns = NS_MAIN 
)
static

Capitalize a text string for a title if it belongs to a namespace that capitalizes

Parameters
string$textContaining title to capitalize
int$nsNamespace index, defaults to NS_MAIN
Returns
string Containing capitalized title
static Title::compare ( LinkTarget  $a,
LinkTarget  $b 
)
static

Callback for usort() to do title sorts by (namespace, title)

Parameters
LinkTarget$a
LinkTarget$b
Returns
int Result of string comparison, or namespace comparison
static Title::convertByteClassToUnicodeClass (   $byteClass)
static

Utility method for converting a character sequence from bytes to Unicode.

Primary usecase being converting $wgLegalTitleChars to a sequence usable in javascript, as PHP uses UTF-8 bytes where javascript uses Unicode code units.

Parameters
string$byteClass
Returns
string
Title::countAuthorsBetween (   $old,
  $new,
  $limit,
  $options = [] 
)

Get the number of authors between the given revisions or revision IDs. Used for diffs and other things that really need it.

Parameters
int | Revision$oldOld revision or rev ID (first before range by default)
int | Revision$newNew revision or rev ID (first after range by default)
int$limitMaximum number of authors
string | array$options(Optional): Single option, or an array of options: 'include_old' Include $old in the range; $new is excluded. 'include_new' Include $new in the range; $old is excluded. 'include_both' Include both $old and $new in the range. Unknown option values are ignored.
Returns
int Number of revision authors in the range; zero if not both revisions exist
Title::countRevisionsBetween (   $old,
  $new,
  $max = null 
)

Get the number of revisions between the given revision. Used for diffs and other things that really need it.

Parameters
int | Revision$oldOld revision or rev ID (first before range)
int | Revision$newNew revision or rev ID (first after range)
int | null$maxLimit of Revisions to count, will be incremented to detect truncations
Returns
int Number of revisions between these revisions.
Title::createFragmentTarget (   $fragment)

Creates a new Title for a different fragment of the same page.

Since
1.27
Parameters
string$fragment
Returns
Title

Implements MediaWiki\Linker\LinkTarget.

Title::deleteTitleProtection ( )

Remove any title protection due to page existing

Title::equals ( Title  $title)

Compare with another title.

Parameters
Title$title
Returns
bool
static Title::escapeFragmentForURL (   $fragment)
static

Escape a text fragment, say from a link, for a URL

Deprecated:
since 1.30, use Sanitizer::escapeIdForLink() or escapeIdForExternalInterwiki()
Parameters
string$fragmentContaining a URL or link fragment (after the "#")
Returns
string Escaped string
Title::estimateRevisionCount ( )

Get the approximate revision count of this page.

Returns
int
Title::exists (   $flags = 0)

Check if page exists. For historical reasons, this function simply checks for the existence of the title in the page table, and will thus return false for interwiki links, special pages and the like. If you want to know if a title can be meaningfully viewed, you should probably call the isKnown() method instead.

Parameters
int$flagsAn optional bit field; may be Title::GAID_FOR_UPDATE to check from master/for update
Returns
bool
Title::fixSpecialName ( )

If the Title refers to a special page alias which is not the local default, resolve the alias, and localise the name as necessary. Otherwise, return $this

Returns
Title
Title::flushRestrictions ( )

Flush the protection cache in this object and force reload from the database. This is used when updating protection from WikiPage::doUpdateRestrictions().

Title::getAllRestrictions ( )

Accessor/initialisation for mRestrictions

Returns
array Keys are actions, values are arrays as returned by Title::getRestrictions()
Since
1.23
Title::getArticleID (   $flags = 0)

Get the article ID for this Title from the link cache, adding it if necessary

Parameters
int$flagsA bit field; may be Title::GAID_FOR_UPDATE to select for update
Returns
int The ID
Title::getAuthorsBetween (   $old,
  $new,
  $limit,
  $options = [] 
)

Get the authors between the given revisions or revision IDs. Used for diffs and other things that really need it.

Since
1.23
Parameters
int | Revision$oldOld revision or rev ID (first before range by default)
int | Revision$newNew revision or rev ID (first after range by default)
int$limitMaximum number of authors
string | array$options(Optional): Single option, or an array of options: 'include_old' Include $old in the range; $new is excluded. 'include_new' Include $new in the range; $old is excluded. 'include_both' Include both $old and $new in the range. Unknown option values are ignored.
Returns
array|null Names of revision authors in the range; null if not both revisions exist
Title::getBacklinkCache ( )

Get a backlink cache object

Returns
BacklinkCache
Title::getBaseText ( )

Get the base page name without a namespace, i.e. the part before the subpage name

Example:
Title::newFromText('User:Foo/Bar/Baz')->getBaseText();
# returns: 'Foo/Bar'
Returns
string Base name
Title::getBaseTitle ( )

Get the base page name title, i.e. the part before the subpage name

Example:
Title::newFromText('User:Foo/Bar/Baz')->getBaseTitle();
# returns: Title{User:Foo/Bar}
Returns
Title Base title
Since
1.20
Title::getBrokenLinksFrom ( )

Get an array of Title objects referring to non-existent articles linked from this page.

Todo:
check if needed (used only in SpecialBrokenRedirects.php, and should use redirect table in this case).
Returns
Title[] Array of Title the Title objects
Title::getCanonicalURL (   $query = '',
  $query2 = false 
)

Get the URL for a canonical link, for use in things like IRC and e-mail notifications. Uses $wgCanonicalServer and the GetCanonicalURL hook.

NOTE: Unlike getInternalURL(), the canonical URL includes the fragment

See Also
self::getLocalURL for the arguments.
Parameters
string$query
string | bool$query2
Returns
string The URL
Since
1.18
Title::getCascadeProtectionSources (   $getPages = true)

Cascading protection: Get the source of any cascading restrictions on this page.

Parameters
bool$getPagesWhether or not to retrieve the actual pages that the restrictions have come from and the actual restrictions themselves.
Returns
array Two elements: First is an array of Title objects of the pages from which cascading restrictions have come, false for none, or true if such restrictions exist but $getPages was not set. Second is an array like that returned by Title::getAllRestrictions(), or an empty array if $getPages is false.
Title::getCategorySortkey (   $prefix = '')

Returns the raw sort key to be used for categories, with the specified prefix. This will be fed to Collation::getSortKey() to get a binary sortkey that can be used for actual sorting.

Parameters
string$prefixThe prefix to be used, specified using {{defaultsort:}} or like [[Category:Foo|prefix]]. Empty for no prefix.
Returns
string
Title::getCdnUrls ( )

Get a list of URLs to purge from the CDN cache when this page changes

Returns
string[] Array of String the URLs
Title::getContentModel (   $flags = 0)

Get the page's content model id, see the CONTENT_MODEL_XXX constants.

Parameters
int$flagsA bit field; may be Title::GAID_FOR_UPDATE to select for update
Returns
string Content model id
Title::getDBkey ( )

Get the main part with underscores

Returns
string Main part of the title, with underscores

Implements MediaWiki\Linker\LinkTarget.

Title::getDefaultMessageText ( )

Get the default message text or false if the message doesn't exist

Returns
string|bool
Title::getDefaultNamespace ( )

Get the default namespace index, for when there is no namespace

Returns
int Default namespace index
Title::getEarliestRevTime (   $flags = 0)

Get the oldest revision timestamp of this page

Parameters
int$flagsTitle::GAID_FOR_UPDATE
Returns
string MW timestamp
Title::getEditNotices (   $oldid = 0)

Get a list of rendered edit notices for this page.

Array is keyed by the original message key, and values are rendered using parseAsBlock, so they will already be wrapped in paragraphs.

Since
1.21
Parameters
int$oldidRevision ID that's being edited
Returns
array
Title::getEditURL ( )

Get the edit URL for this Title

Returns
string The URL, or a null string if this is an interwiki link
static Title::getFilteredRestrictionTypes (   $exists = true)
static

Get a filtered list of all restriction types supported by this wiki.

Parameters
bool$existsTrue to get all restriction types that apply to titles that do exist, False for all restriction types that apply to titles that do not exist
Returns
array
Title::getFirstRevision (   $flags = 0)

Get the first revision of the page

Parameters
int$flagsTitle::GAID_FOR_UPDATE
Returns
Revision|null If page doesn't exist
Title::getFragment ( )

Get the Title fragment (i.e. the bit after the #) in text form

Use Title::hasFragment to check for a fragment

Returns
string Title fragment

Implements MediaWiki\Linker\LinkTarget.

Title::getFragmentForURL ( )

Get the fragment in URL form, including the "#" character if there is one

Returns
string Fragment in URL form
Title::getFullText ( )

Get the prefixed title with spaces, plus any fragment (part beginning with '#')

Returns
string The prefixed title, with spaces and the fragment, including '#'
Title::getFullURL (   $query = '',
  $query2 = false,
  $proto = PROTO_RELATIVE 
)

Get a real URL referring to this title, with interwiki link and fragment

See Also
self::getLocalURL for the arguments.
wfExpandUrl
Parameters
string|string[]$query
string|string[]|bool$query2
string | int | null$protoProtocol type to use in URL
Returns
string The URL
Title::getFullUrlForRedirect (   $query = '',
  $proto = PROTO_CURRENT 
)

Get a url appropriate for making redirects based on an untrusted url arg

This is basically the same as getFullUrl(), but in the case of external interwikis, we send the user to a landing page, to prevent possible phishing attacks and the like.

Note
Uses current protocol by default, since technically relative urls aren't allowed in redirects per HTTP spec, so this is not suitable for places where the url gets cached, as might pollute between https and non-https users.
See Also
self::getLocalURL for the arguments.
Parameters
array | string$query
string$protoProtocol type to use in URL
Returns
string A url suitable to use in an HTTP location header.
Title::getInternalURL (   $query = '',
  $query2 = false 
)

Get the URL form for an internal link.

  • Used in various CDN-related code, in case we have a different internal hostname for the server from the exposed one.

This uses $wgInternalServer to qualify the path, or $wgServer if $wgInternalServer is not set. If the server variable used is protocol-relative, the URL will be expanded to http://

See Also
self::getLocalURL for the arguments.
Parameters
string$query
string | bool$query2
Returns
string The URL
Title::getInterwiki ( )

Get the interwiki prefix

Use Title::isExternal to check if a interwiki is set

Returns
string Interwiki prefix

Implements MediaWiki\Linker\LinkTarget.

Title::getLatestRevID (   $flags = 0)

What is the page_latest field for this page?

Parameters
int$flagsA bit field; may be Title::GAID_FOR_UPDATE to select for update
Returns
int Int or 0 if the page doesn't exist
Title::getLength (   $flags = 0)

What is the length of this page? Uses link cache, adding it if necessary

Parameters
int$flagsA bit field; may be Title::GAID_FOR_UPDATE to select for update
Returns
int
Title::getLinksFrom (   $options = [],
  $table = 'pagelinks',
  $prefix = 'pl' 
)

Get an array of Title objects linked from this Title Also stores the IDs in the link cache.

WARNING: do not use this function on arbitrary user-supplied titles! On heavily-used templates it will max out the memory.

Parameters
array$optionsQuery option to Database::select()
string$tableTable name
string$prefixFields prefix
Returns
array Array of Title objects linking here
Title::getLinksTo (   $options = [],
  $table = 'pagelinks',
  $prefix = 'pl' 
)

Get an array of Title objects linking to this Title Also stores the IDs in the link cache.

WARNING: do not use this function on arbitrary user-supplied titles! On heavily-used templates it will max out the memory.

Parameters
array$optionsMay be FOR UPDATE
string$tableTable name
string$prefixFields prefix
Returns
Title[] Array of Title objects linking here
Title::getLinkURL (   $query = '',
  $query2 = false,
  $proto = false 
)

Get a URL that's the simplest URL that will be valid to link, locally, to the current Title. It includes the fragment, but does not include the server unless action=render is used (or the link is external). If there's a fragment but the prefixed text is empty, we just return a link to the fragment.

The result obviously should not be URL-escaped, but does need to be HTML-escaped if it's being output in HTML.

Parameters
string|string[]$query
bool$query2
string | int | bool$protoA PROTO_* constant on how the URL should be expanded, or false (default) for no expansion
See Also
self::getLocalURL for the arguments.
Returns
string The URL
Title::getLocalURL (   $query = '',
  $query2 = false 
)

Get a URL with no fragment or server name (relative URL) from a Title object. If this page is generated with action=render, however, $wgServer is prepended to make an absolute URL.

See Also
self::getFullURL to always get an absolute URL.
self::getLinkURL to always get a URL that's the simplest URL that will be valid to link, locally, to the current Title.
self::newFromText to produce a Title object.
Parameters
string|string[]$query An optional query string, not used for interwiki links. Can be specified as an associative array as well, e.g., array( 'action' => 'edit' ) (keys and values will be URL-escaped). Some query patterns will trigger various shorturl path replacements.
string|string[]|bool$query2 An optional secondary query array. This one MUST be an array. If a string is passed it will be interpreted as a deprecated variant argument and urlencoded into a variant= argument. This second query argument will be added to the $query The second parameter is deprecated since 1.19. Pass it as a key,value pair in the first parameter array instead.
Returns
string String of the URL.
Title::getNamespace ( )

Get the namespace index, i.e. one of the NS_xxxx constants.

Returns
int Namespace index

Implements MediaWiki\Linker\LinkTarget.

Title::getNamespaceKey (   $prepend = 'nstab-')

Generate strings used for xml 'id' names in monobook tabs

Parameters
string$prependDefaults to 'nstab-'
Returns
string XML 'id' name
Title::getNextRevisionID (   $revId,
  $flags = 0 
)

Get the revision ID of the next revision

Parameters
int$revIdRevision ID. Get the revision that was after this one.
int$flagsTitle::GAID_FOR_UPDATE
Returns
int|bool Next revision ID, or false if none exists
Title::getNotificationTimestamp (   $user = null)

Get the timestamp when this page was updated since the user last saw it.

Parameters
User$user
Returns
string|null
Title::getNsText ( )

Get the namespace text

Returns
string|false Namespace text
Title::getOtherPage ( )

Get the other title for this page, if this is a subject page get the talk page, if it is a subject page get the talk page

Since
1.25
Exceptions
MWExceptionIf the page doesn't have an other page
Returns
Title
Title::getPageLanguage ( )

Get the language in which the content of this page is written in wikitext. Defaults to $wgContLang, but in certain cases it can be e.g. $wgLang (such as special pages, which are in the user language).

Since
1.18
Returns
Language
Title::getPageViewLanguage ( )

Get the language in which the content of this page is written when viewed by user. Defaults to $wgContLang, but in certain cases it can be e.g. $wgLang (such as special pages, which are in the user language).

Since
1.20
Returns
Language
Title::getParentCategories ( )

Get categories to which this Title belongs and return an array of categories' names.

Returns
array Array of parents in the form: $parent => $currentarticle
Title::getParentCategoryTree (   $children = [])

Get a tree of parent categories

Parameters
array$childrenArray with the children in the keys, to check for circular refs
Returns
array Tree of parent categories
Title::getPartialURL ( )

Get the URL-encoded form of the main part

Returns
string Main part of the title, URL-encoded
Title::getPrefixedDBkey ( )

Get the prefixed database key form

Returns
string The prefixed title, with underscores and any interwiki and namespace prefixes
Title::getPrefixedText ( )

Get the prefixed title with spaces. This is the form usually used for display

Returns
string The prefixed title, with spaces
Title::getPrefixedURL ( )

Get a URL-encoded title (not an actual URL) including interwiki

Returns
string The URL-encoded form
Title::getPreviousRevisionID (   $revId,
  $flags = 0 
)

Get the revision ID of the previous revision

Parameters
int$revIdRevision ID. Get the revision that was before this one.
int$flagsTitle::GAID_FOR_UPDATE
Returns
int|bool Old revision ID, or false if none exists
Title::getRedirectsHere (   $ns = null)

Get all extant redirects to this Title

Parameters
int | null$nsSingle namespace to consider; null to consider all namespaces
Returns
Title[] Array of Title redirects to this title
Title::getRestrictionExpiry (   $action)

Get the expiry time for the restriction against a given action

Parameters
string$action
Returns
string|bool 14-char timestamp, or 'infinity' if the page is protected forever or not protected at all, or false if the action is not recognised.
Title::getRestrictions (   $action)

Accessor/initialisation for mRestrictions

Parameters
string$actionAction that permission needs to be checked for
Returns
array Restriction levels needed to take the action. All levels are required. Note that restriction levels are normally user rights, but 'sysop' and 'autoconfirmed' are also allowed for backwards compatibility. These should be mapped to 'editprotected' and 'editsemiprotected' respectively.
Title::getRestrictionTypes ( )

Returns restriction types for the current Title

Returns
array Applicable restriction types
Title::getRootText ( )

Get the root page name text without a namespace, i.e. the leftmost part before any slashes

Example:
Title::newFromText('User:Foo/Bar/Baz')->getRootText();
# returns: 'Foo'
Returns
string Root name
Since
1.20
Title::getRootTitle ( )

Get the root page name title, i.e. the leftmost part before any slashes

Example:
Title::newFromText('User:Foo/Bar/Baz')->getRootTitle();
# returns: Title{User:Foo}
Returns
Title Root title
Since
1.20
static Title::getSelectFields ( )
staticprotected

Returns a list of fields that are to be selected for initializing Title objects or LinkCache entries. Uses $wgContentHandlerUseDB to determine whether to include page_content_model.

Returns
array
Title::getSkinFromConfigSubpage ( )

Trim down a .css, .json, or .js subpage title to get the corresponding skin name

Returns
string Containing skin name from .css, .json, or .js subpage title
Since
1.31
Title::getSkinFromCssJsSubpage ( )
Deprecated:
Since 1.31; use ::getSkinFromConfigSubpage() instead
Returns
string Containing skin name from .css, .json, or .js subpage title
Title::getSquidURLs ( )
Deprecated:
since 1.27 use getCdnUrls()
Title::getSubjectNsText ( )

Get the namespace text of the subject (rather than talk) page

Returns
string Namespace text
Title::getSubjectPage ( )

Get a title object associated with the subject page of this talk page

Returns
Title The object for the subject page
Title::getSubpage (   $text)

Get the title for a subpage of the current page

Example:
Title::newFromText('User:Foo/Bar/Baz')->getSubpage("Asdf");
# returns: Title{User:Foo/Bar/Baz/Asdf}
Parameters
string$textThe subpage name to add to the title
Returns
Title Subpage title
Since
1.20
Title::getSubpages (   $limit = -1)

Get all subpages of this page.

Parameters
int$limitMaximum number of subpages to fetch; -1 for no limit
Returns
TitleArray|array TitleArray, or empty array if this page's namespace doesn't allow subpages
Title::getSubpageText ( )

Get the lowest-level subpage name, i.e. the rightmost part after any slashes

Example:
Title::newFromText('User:Foo/Bar/Baz')->getSubpageText();
# returns: "Baz"
Returns
string Subpage name
Title::getSubpageUrlForm ( )

Get a URL-encoded form of the subpage text

Returns
string URL-encoded subpage name
Title::getTalkNsText ( )

Get the namespace text of the talk page

Returns
string Namespace text
Title::getTalkPage ( )

Get a Title object associated with the talk page of this article

Returns
Title The object for the talk page
Title::getTalkPageIfDefined ( )

Get a Title object associated with the talk page of this article, if such a talk page can exist.

Since
1.30
Returns
Title|null The object for the talk page, or null if no associated talk page can exist, according to canHaveTalkPage().
Title::getTemplateLinksFrom (   $options = [])

Get an array of Title objects used on this Title as a template Also stores the IDs in the link cache.

WARNING: do not use this function on arbitrary user-supplied titles! On heavily-used templates it will max out the memory.

Parameters
array$optionsMay be FOR UPDATE
Returns
Title[] Array of Title the Title objects used here
Title::getTemplateLinksTo (   $options = [])

Get an array of Title objects using this Title as a template Also stores the IDs in the link cache.

WARNING: do not use this function on arbitrary user-supplied titles! On heavily-used templates it will max out the memory.

Parameters
array$optionsQuery option to Database::select()
Returns
Title[] Array of Title the Title objects linking here
Title::getText ( )

Get the text form (spaces not underscores) of the main part

Returns
string Main part of the title

Implements MediaWiki\Linker\LinkTarget.

Title::getTitleProtection ( )

Is this title subject to title protection? Title protection is the one applied against creation of such title.

Returns
array|bool An associative array representing any existent title protection, or false if there's none.
Title::getTitleProtectionInternal ( )
protected

Fetch title protection settings

To work correctly, $this->loadRestrictions() needs to have access to the actual protections in the database without munging 'sysop' => 'editprotected' and 'autoconfirmed' => 'editsemiprotected'. Other callers probably want $this->getTitleProtection() instead.

Returns
array|bool
Title::getTitleValue ( )

Get a TitleValue object representing this Title.

Note
Not all valid Titles have a corresponding valid TitleValue (e.g. TitleValues cannot represent page-local links that have a fragment but no title text).
Returns
TitleValue|null
Title::getTouched (   $db = null)

Get the last touched timestamp

Parameters
IDatabase | null$db
Returns
string|false Last-touched timestamp
Title::getTransWikiID ( )

Returns the DB name of the distant wiki which owns the object.

Returns
string|false The DB name
Title::getUserCaseDBKey ( )

Get the DB key with the initial letter case as specified by the user

Returns
string DB key
Title::getUserPermissionsErrors (   $action,
  $user,
  $rigor = 'secure',
  $ignoreErrors = [] 
)

Can $user perform $action on this page?

Todo:
FIXME: This does not check throttles (User::pingLimiter()).
Parameters
string$actionAction that permission needs to be checked for
User$userUser to check
string$rigorOne of (quick,full,secure)
  • quick : does cheap permission checks from replica DBs (usable for GUI creation)
  • full : does cheap and expensive checks possibly from a replica DB
  • secure : does cheap and expensive checks, using the master as needed
array$ignoreErrorsArray of Strings Set this to a list of message keys whose corresponding errors may be ignored.
Returns
array Array of arrays of the arguments to wfMessage to explain permissions problems.
Title::getUserPermissionsErrorsInternal (   $action,
  $user,
  $rigor = 'secure',
  $short = false 
)
protected

Can $user perform $action on this page? This is an internal function, with multiple levels of checks depending on performance needs; see $rigor below. It does not check wfReadOnly().

Parameters
string$actionAction that permission needs to be checked for
User$userUser to check
string$rigorOne of (quick,full,secure)
  • quick : does cheap permission checks from replica DBs (usable for GUI creation)
  • full : does cheap and expensive checks possibly from a replica DB
  • secure : does cheap and expensive checks, using the master as needed
bool$shortSet this to true to stop after the first permission error.
Returns
array Array of arrays of the arguments to wfMessage to explain permissions problems.
Title::hasContentModel (   $id)

Convenience method for checking a title's content model name

Parameters
string$idThe content model ID (use the CONTENT_MODEL_XXX constants).
Returns
bool True if $this->getContentModel() == $id
Title::hasFragment ( )

Check if a Title fragment is set

Returns
bool
Since
1.23

Implements MediaWiki\Linker\LinkTarget.

Title::hasSourceText ( )

Does this page have source text?

Returns
bool
Title::hasSubjectNamespace (   $ns)

Returns true if the title has the same subject namespace as the namespace specified. For example this method will take NS_USER and return true if namespace is either NS_USER or NS_USER_TALK since both of them have NS_USER as their subject namespace.

This is MUCH simpler than individually testing for equivalence against both NS_USER and NS_USER_TALK, and is also forward compatible.

Since
1.19
Parameters
int$ns
Returns
bool
Title::hasSubpages ( )

Does this have subpages? (Warning, usually requires an extra DB query.)

Returns
bool
Title::inNamespace (   $ns)

Returns true if the title is inside the specified namespace.

Please make use of this instead of comparing to getNamespace() This function is much more resistant to changes we may make to namespaces than code that makes direct comparisons.

Parameters
int$nsThe namespace
Returns
bool
Since
1.19

Implements MediaWiki\Linker\LinkTarget.

Title::inNamespaces ( )

Returns true if the title is inside one of the specified namespaces.

Parameters
int|int[]$namespaces,... The namespaces to check for
Returns
bool
Since
1.19
Title::invalidateCache (   $purgeTime = null)

Updates page_touched for this page; called from LinksUpdate.php

Parameters
string$purgeTime[optional] TS_MW timestamp
Returns
bool True if the update succeeded
Title::isAlwaysKnown ( )

Should links to this title be shown as potentially viewable (i.e. as "bluelinks"), even if there's no record by this title in the page table?

This function is semi-deprecated for public use, as well as somewhat misleadingly named. You probably just want to call isKnown(), which calls this function internally.

(ISSUE: Most of these checks are cheap, but the file existence check can potentially be quite expensive. Including it here fixes a lot of existing code, but we might want to add an optional parameter to skip it and any other expensive checks.)

Returns
bool

Allows overriding default behavior for determining if a page exists. If $isKnown is kept as null, regular checks happen. If it's a boolean, this value is returned by the isKnown method.

Since
1.20
Parameters
Title$title
bool | null$isKnown
Title::isBigDeletion ( )

Check whether the number of revisions of this page surpasses $wgDeleteRevisionsLimit

Returns
bool
Title::isCascadeProtected ( )

Cascading protection: Return true if cascading restrictions apply to this page, false if not.

Returns
bool If the page is subject to cascading restrictions.
Title::isContentPage ( )

Is this Title in a namespace which contains content? In other words, is this a content page, for the purposes of calculating statistics, etc?

Returns
bool
Title::isConversionTable ( )

Is this a conversion table for the LanguageConverter?

Returns
bool
Title::isCssJsSubpage ( )
Returns
bool
Deprecated:
Since 1.31; use ::isUserConfigPage() instead (which also checks for JSON pages)
Title::isCssOrJsPage ( )
Returns
bool
Deprecated:
Since 1.31; use ::isSiteConfigPage() instead (which also checks for JSON pages)
Title::isCssSubpage ( )
Deprecated:
Since 1.31; use ::isUserCssConfigPage()
Returns
bool
Title::isDeleted ( )

Is there a version of this page in the deletion archive?

Returns
int The number of archived revisions
Title::isDeletedQuick ( )

Is there a version of this page in the deletion archive?

Returns
bool
Title::isExternal ( )

Is this Title interwiki?

Returns
bool

Implements MediaWiki\Linker\LinkTarget.

Title::isJsSubpage ( )
Deprecated:
Since 1.31; use ::isUserJsConfigPage()
Returns
bool
Title::isKnown ( )

Does this title refer to a page that can (or might) be meaningfully viewed? In particular, this function may be used to determine if links to the title should be rendered as "bluelinks" (as opposed to "redlinks" to non-existent pages). Adding something else to this function will cause inconsistency since LinkHolderArray calls isAlwaysKnown() and does its own page existence check.

Returns
bool
Title::isLocal ( )

Determine whether the object refers to a page within this project (either this wiki or a wiki with a local interwiki, see https://www.mediawiki.org/wiki/Manual:Interwiki_table#iw_local )

Returns
bool True if this is an in-project interwiki link or a wikilink, false otherwise
Title::isMainPage ( )

Is this the mainpage?

Note
Title::newFromText seems to be sufficiently optimized by the title cache that we don't need to over-optimize by doing direct comparisons and accidentally creating new bugs where $title->equals( Title::newFromText() ) ends up reporting something differently than $title->isMainPage();
Since
1.18
Returns
bool
Title::isMovable ( )

Would anybody with sufficient privileges be able to move this page? Some pages just aren't movable.

Returns
bool
Title::isNamespaceProtected ( User  $user)

Determines if $user is unable to edit this page because it has been protected by $wgNamespaceProtection.

Parameters
User$userUser object to check permissions
Returns
bool
Title::isNewPage ( )

Check if this is a new page

Returns
bool
Title::isProtected (   $action = '')

Does the title correspond to a protected article?

Parameters
string$actionThe action the page is protected from, by default checks all actions.
Returns
bool
Title::isRedirect (   $flags = 0)

Is this an article that is a redirect page? Uses link cache, adding it if necessary

Parameters
int$flagsA bit field; may be Title::GAID_FOR_UPDATE to select for update
Returns
bool
Title::isSemiProtected (   $action = 'edit')

Is this page "semi-protected" - the only protection levels are listed in $wgSemiprotectedRestrictionLevels?

Parameters
string$actionAction to check (default: edit)
Returns
bool
Title::isSingleRevRedirect ( )

Checks if this page is just a one-rev redirect. Adds lock, so don't use just for light purposes.

Returns
bool
Title::isSiteConfigPage ( )

Could this MediaWiki namespace page contain custom CSS, JSON, or JavaScript for the global UI. This is generally true for pages in the MediaWiki namespace having CONTENT_MODEL_CSS, CONTENT_MODEL_JSON, or CONTENT_MODEL_JAVASCRIPT.

This method does not return true for per-user JS/JSON/CSS. Use isUserConfigPage() for that!

Note that this method should not return true for pages that contain and show "inactive" CSS, JSON, or JS.

Returns
bool
Since
1.31
Title::isSpecial (   $name)

Returns true if this title resolves to the named special page

Parameters
string$nameThe special page name
Returns
bool
Title::isSpecialPage ( )

Returns true if this is a special page.

Returns
bool
Title::isSubpage ( )

Is this a subpage?

Returns
bool
Title::isSubpageOf ( Title  $title)

Check if this title is a subpage of another title

Parameters
Title$title
Returns
bool
Title::isTalkPage ( )

Is this a talk page of some sort?

Returns
bool
Title::isTrans ( )

Determine whether the object refers to a page within this project and is transcludable.

Returns
bool True if this is transcludable
Title::isUserConfigPage ( )

Is this a "config" (.css, .json, or .js) sub-page of a user page?

Returns
bool
Since
1.31
Title::isUserCssConfigPage ( )

Is this a CSS "config" sub-page of a user page?

Returns
bool
Since
1.31
Title::isUserJsConfigPage ( )

Is this a JS "config" sub-page of a user page?

Returns
bool
Since
1.31
Title::isUserJsonConfigPage ( )

Is this a JSON "config" sub-page of a user page?

Returns
bool
Since
1.31
Title::isValid ( )

Returns true if the title is valid, false if it is invalid.

Valid titles can be round-tripped via makeTitleSafe() and newFromText(). Invalid titles may get returned from makeTitle(), and it may be useful to allow them to exist, e.g. in order to process log entries about pages in namespaces that belong to extensions that are no longer installed.

Note
This method is relatively expensive. When constructing Title objects that need to be valid, use an instantiator method that is guaranteed to return valid titles, such as makeTitleSafe() or newFromText().
Returns
bool
Title::isValidMoveOperation ( $nt,
  $auth = true,
  $reason = '' 
)

Check whether a given move operation would be valid. Returns true if ok, or a getUserPermissionsErrors()-like array otherwise

Deprecated:
since 1.25, use MovePage's methods instead
Parameters
Title&$ntThe new title
bool$authWhether to check user permissions (uses $wgUser)
string$reasonIs the log summary of the move, used for spam checking
Returns
array|bool True on success, getUserPermissionsErrors()-like array on failure
Title::isValidMoveTarget (   $nt)

Checks if $this can be moved to a given Title

  • Selects for update, so don't call it unless you mean business
Deprecated:
since 1.25, use MovePage's methods instead
Parameters
Title$ntThe new title to check
Returns
bool
Title::isValidRedirectTarget ( )

Check if this Title is a valid redirect target

Returns
bool
Title::isWatchable ( )

Can this title be added to a user's watchlist?

Returns
bool
Title::isWikitextPage ( )

Does that page contain wikitext, or it is JS, CSS or whatever?

Returns
bool
static Title::legalChars ( )
static

Get a regex character class describing the legal characters in a link

Returns
string The list of characters, not delimited
Title::loadFromRow (   $row)

Load Title object fields from a DB row. If false is given, the title will be treated as non-existing.

Parameters
stdClass | bool$rowDatabase row
Title::loadRestrictions (   $oldFashionedRestrictions = null)

Load restrictions from the page_restrictions table

Parameters
string$oldFashionedRestrictionsComma-separated set of permission keys indicating who can move or edit the page from the page table, (pre 1.10) rows. Edit and move sections are separated by a colon Example: "edit=autoconfirmed,sysop:move=sysop"
Title::loadRestrictionsFromRows (   $rows,
  $oldFashionedRestrictions = null 
)

Compiles list of active page restrictions from both page table (pre 1.10) and page_restrictions table for this existing page. Public for usage by LiquidThreads.

Parameters
array$rowsArray of db result objects
string$oldFashionedRestrictionsComma-separated set of permission keys indicating who can move or edit the page from the page table, (pre 1.10) rows. Edit and move sections are separated by a colon Example: "edit=autoconfirmed,sysop:move=sysop"
static Title::makeName (   $ns,
  $title,
  $fragment = '',
  $interwiki = '',
  $canonicalNamespace = false 
)
static

Make a prefixed DB key from a DB key and a namespace index

Parameters
int$nsNumerical representation of the namespace
string$titleThe DB key form the title
string$fragmentThe link fragment (after the "#")
string$interwikiThe interwiki prefix
bool$canonicalNamespaceIf true, use the canonical name for $ns instead of the localized version.
Returns
string The prefixed form of the title
static Title::makeTitle (   $ns,
  $title,
  $fragment = '',
  $interwiki = '' 
)
static

Create a new Title from a namespace index and a DB key.

It's assumed that $ns and $title are safe, for instance when they came directly from the database or a special page name, not from user input.

No validation is applied. For convenience, spaces are normalized to underscores, so that e.g. user_text fields can be used directly.

Note
This method may return Title objects that are "invalid" according to the isValid() method. This is usually caused by configuration changes: e.g. a namespace that was once defined is no longer configured, or a character that was once allowed in titles is now forbidden.
Parameters
int$nsThe namespace of the article
string$titleThe unprefixed database key form
string$fragmentThe link fragment (after the "#")
string$interwikiThe interwiki prefix
Returns
Title The new object
static Title::makeTitleSafe (   $ns,
  $title,
  $fragment = '',
  $interwiki = '' 
)
static

Create a new Title from a namespace index and a DB key. The parameters will be checked for validity, which is a bit slower than makeTitle() but safer for user-provided data.

Title objects returned by makeTitleSafe() are guaranteed to be valid, that is, they return true from the isValid() method. If no valid Title can be constructed from the input, this method returns null.

Parameters
int$nsThe namespace of the article
string$titleDatabase key form
string$fragmentThe link fragment (after the "#")
string$interwikiInterwiki prefix
Returns
Title|null The new object, or null on an error
Title::moveSubpages (   $nt,
  $auth = true,
  $reason = '',
  $createRedirect = true,
array  $changeTags = [] 
)

Move this page's subpages to be subpages of $nt

Parameters
Title$ntMove target
bool$authWhether $wgUser's permissions should be checked
string$reasonThe reason for the move
bool$createRedirectWhether to create redirects from the old subpages to the new ones Ignored if the user doesn't have the 'suppressredirect' right
array$changeTagsApplied to the entry in the move log and redirect page revision
Returns
array Array with old page titles as keys, and strings (new page titles) or getUserPermissionsErrors()-like arrays (errors) as values, or a getUserPermissionsErrors()-like error array with numeric indices if no pages were moved
Title::moveTo ( $nt,
  $auth = true,
  $reason = '',
  $createRedirect = true,
array  $changeTags = [] 
)

Move a title to a new location

Deprecated:
since 1.25, use the MovePage class instead
Parameters
Title&$ntThe new title
bool$authIndicates whether $wgUser's permissions should be checked
string$reasonThe reason for the move
bool$createRedirectWhether to create a redirect from the old title to the new title. Ignored if the user doesn't have the suppressredirect right.
array$changeTagsApplied to the entry in the move log and redirect page revision
Returns
array|bool True on success, getUserPermissionsErrors()-like array on failure
static Title::nameOf (   $id)
static

Get the prefixed DB key associated with an ID

Parameters
int$idThe page_id of the article
Returns
Title|null An object representing the article, or null if no such article was found
static Title::newFromDBkey (   $key)
static

Create a new Title from a prefixed DB key

Parameters
string$keyThe database key, which has underscores instead of spaces, possibly including namespace and interwiki prefixes
Returns
Title|null Title, or null on an error
static Title::newFromID (   $id,
  $flags = 0 
)
static

Create a new Title from an article ID

Parameters
int$idThe page_id corresponding to the Title to create
int$flagsUse Title::GAID_FOR_UPDATE to use master
Returns
Title|null The new object, or null on an error
static Title::newFromIDs (   $ids)
static

Make an array of titles from an array of IDs

Parameters
int[]$ids Array of IDs
Returns
Title[] Array of Titles
static Title::newFromLinkTarget ( LinkTarget  $linkTarget)
static

Create a new Title from a LinkTarget

Parameters
LinkTarget$linkTargetAssumed to be safe.
Returns
Title
static Title::newFromRow (   $row)
static

Make a Title object from a DB row

Parameters
stdClass$rowObject database row (needs at least page_title,page_namespace)
Returns
Title Corresponding Title
static Title::newFromText (   $text,
  $defaultNamespace = NS_MAIN 
)
static

Create a new Title from text, such as what one would find in a link. De- codes any HTML entities in the text.

Title objects returned by this method are guaranteed to be valid, and thus return true from the isValid() method.

Parameters
string | int | null$textThe link text; spaces, prefixes, and an initial ':' indicating the main namespace are accepted.
int$defaultNamespaceThe namespace to use if none is specified by a prefix. If you want to force a specific namespace even if $text might begin with a namespace prefix, use makeTitle() or makeTitleSafe().
Exceptions
InvalidArgumentException
Returns
Title|null Title or null on an error.
static Title::newFromTextThrow (   $text,
  $defaultNamespace = NS_MAIN 
)
static

Like Title::newFromText(), but throws MalformedTitleException when the title is invalid, rather than returning null.

The exception subclasses encode detailed information about why the title is invalid.

Title objects returned by this method are guaranteed to be valid, and thus return true from the isValid() method.

See Also
Title::newFromText
Since
1.25
Parameters
string$textTitle text to check
int$defaultNamespace
Exceptions
MalformedTitleExceptionIf the title is invalid
Returns
Title
static Title::newFromTitleValue ( TitleValue  $titleValue)
static

Create a new Title from a TitleValue

Parameters
TitleValue$titleValueAssumed to be safe.
Returns
Title
static Title::newFromURL (   $url)
static

THIS IS NOT THE FUNCTION YOU WANT. Use Title::newFromText().

Example of wrong and broken code: $title = Title::newFromURL( $wgRequest->getVal( 'title' ) );

Example of right code: $title = Title::newFromText( $wgRequest->getVal( 'title' ) );

Create a new Title from URL-encoded text. Ensures that the given title's length does not exceed the maximum.

Parameters
string$urlThe title, as might be taken from a URL
Returns
Title|null The new object, or null on an error
static Title::newMainPage ( )
static

Create a new Title for the Main Page

Returns
Title The new object
Title::pageCond ( )

Get an associative array for selecting this title from the "page" table

Returns
array Array suitable for the $where parameter of DB::select()
static Title::purgeExpiredRestrictions ( )
static

Purge expired restrictions from the page_restrictions table

This will purge no more than $wgUpdateRowsPerQuery page_restrictions rows

Title::purgeSquid ( )

Purge all applicable CDN URLs

Title::quickUserCan (   $action,
  $user = null 
)

Can $user perform $action on this page? This skips potentially expensive cascading permission checks as well as avoids expensive error formatting

Suitable for use for nonessential UI controls in common cases, but not for functional access control.

May provide false positives, but should never provide a false negative.

Parameters
string$actionAction that permission needs to be checked for
User$userUser to check (since 1.19); $wgUser will be used if not provided.
Returns
bool
Title::resetArticleID (   $newid)

This clears some fields in this object, and clears any associated keys in the "bad links" section of the link cache.

Parameters
int$newidThe new Article ID
bool If a content model was forced via Title::setContentModel (   $model)

Set a proposed content model for the page for permissions checking. This does not actually change the content model of a title!

Additionally, you should make sure you've checked ContentHandler::canBeUsedOn() first.

Since
1.28
Parameters
string$modelCONTENT_MODEL_XXX constant

this will be true to avoid having other code paths reset it

Title::setFragment (   $fragment)

Set the fragment for this title. Removes the first character from the specified fragment before setting, so it assumes you're passing it with an initial "#".

Deprecated for public use, use Title::makeTitle() with fragment parameter, or Title::createFragmentTarget(). Still in active use privately.

Parameters
string$fragmentText
Title::touchLinks ( )

Update page_touched timestamps and send CDN purge messages for pages linking to this title. May be sent to the job queue depending on the number of links. Typically called on create and delete.

Title::userCan (   $action,
  $user = null,
  $rigor = 'secure' 
)

Can $user perform $action on this page?

Parameters
string$actionAction that permission needs to be checked for
User$userUser to check (since 1.19); $wgUser will be used if not provided.
string$rigorSame format as Title::getUserPermissionsErrors()
Returns
bool
Title::validateFileMoveOperation (   $nt)
protected

Check if the requested move target is a valid file move target

Todo:
move this to MovePage
Parameters
Title$ntTarget title
Returns
array List of errors
Title::wasLocalInterwiki ( )

Was this a local interwiki link?

Returns
bool

Member Data Documentation

Title::$mCascadingRestrictions

Caching the results of getCascadeProtectionSources

const Title::CACHE_MAX = 1000

Title::newFromText maintains a cache to avoid expensive re-normalization of commonly used titles. On a batch operation this can become a memory leak if not bounded. After hitting this many titles reset the cache.

const Title::GAID_FOR_UPDATE = 1

Used to be GAID_FOR_UPDATE define. Used with getArticleID() and friends to use the master DB


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