MediaWiki REL1_35
Title Class Reference

Represents a title within MediaWiki. More...

Inheritance diagram for Title:
Collaboration diagram for Title:

Public Attributes

const GAID_FOR_UPDATE = 512
 Used to be GAID_FOR_UPDATE define().
 
const NEW_CLONE = 'clone'
 Flag for use with factory methods like newFromLinkTarget() that have a $forceClone parameter.
 
- Public Attributes inherited from IDBAccessObject
const READ_LOCKING = self::READ_LATEST | 2
 Constants for object loading bitfield flags (higher => higher QoS)
 
const READ_NONE = -1
 

Private Attributes

const CACHE_MAX = 1000
 Title::newFromText maintains a cache to avoid expensive re-normalization of commonly used titles.
 

Static Private Attributes

static MapCacheLRU null $titleCache = null
 

Private member variables

Please use the accessor functions instead.

bool $mLocalInterwiki = false
 Was this Title created from a string with a local interwiki prefix?
 
bool string $mContentModel = false
 ID of the page's content model, i.e.
 
bool $mForcedContentModel = false
 If a content model was forced via setContentModel() this will be true to avoid having other code paths reset it.
 
int $mEstimateRevisions
 Estimated number of revisions; null of not loaded.
 
bool $mHasSubpages
 Whether a page has any subpages.
 
array null $mPageLanguage
 The (string) language code of the page's language and content code.
 
string bool null $mDbPageLanguage = false
 The page language code from the database, null if not saved in the database or false if not loaded, yet.
 
TitleValue null $mTitleValue = null
 A corresponding TitleValue object.
 
bool null $mIsBigDeletion = null
 Would deleting this page be a big deletion?
 
bool null $mIsValid = null
 Is the title known to be valid?
 
string $mTextform = ''
 Text form (spaces not underscores) of the main part.
 
string $mUrlform = ''
 URL-encoded form of the main part.
 
string $mDbkeyform = ''
 Main part with underscores.
 
int $mNamespace = NS_MAIN
 Namespace index, i.e.
 
string $mInterwiki = ''
 Interwiki prefix.
 
string $mFragment = ''
 Title fragment (i.e.
 
int $mArticleID = -1
 Article ID, fetched from the link cache on demand.
 
array $mRestrictions = []
 Array of groups allowed to edit this article.
 
bool $mCascadeRestriction
 Cascade restrictions on this page to included templates and images?
 
 $mCascadingRestrictions
 Caching the results of getCascadeProtectionSources.
 
array $mCascadeSources
 Where are the cascading restrictions coming from on this page?
 
bool $mRestrictionsLoaded = false
 Boolean for initialisation on demand.
 
string null $prefixedText = null
 Text form including namespace/interwiki, initialised on demand.
 
mixed $mTitleProtection
 Cached value for getTitleProtection (create protection)
 
int $mDefaultNamespace = NS_MAIN
 Namespace index when there is no namespace.
 
null $mRedirect = null
 Is the article at this title a redirect?
 
bool int $mLatestID = false
 ID of most recent revision.
 
string bool $mOldRestrictions = false
 Comma-separated set of permission keys indicating who can move or edit the page from the page table, (pre 1.10) rows.
 
array $mRestrictionsExpiry = []
 When do the restrictions on this page expire?
 
bool $mHasCascadingRestrictions
 Are cascading restrictions in effect on this page?
 
int $mLength = -1
 The page length, 0 for special pages.
 
 getLanguageConverter ( $language)
 Shorthand for getting a Language Converter for specific language.
 
 getPageLanguageConverter ()
 Shorthand for getting a Language Converter for page's language.
 
 __construct ()
 Was this Title created from a string with a local interwiki prefix?
 
 lazyFillContentModel ( $model)
 If the content model field is not frozen then update it with a retreived value.
 
 warnIfPageCannotExist (Title $title, $method)
 
 prefix ( $name)
 Prefix some arbitrary text with the namespace or interwiki prefix of this object.
 
 findSubpageDivider ( $text, $dir)
 Finds the first or last subpage divider (slash) in the string.
 
 hasSubpagesEnabled ()
 Whether this Title's namespace has subpages enabled.
 
 secureAndSplit ( $text, $defaultNamespace=null)
 Secure and split - main initialisation function for this object.
 
 getRelativeRevisionID ( $revId, $flags, $dir)
 Get next/previous revision ID relative to another revision ID.
 
 getDbPageLanguageCode ()
 Returns the page language code saved in the database, if $wgPageLanguageUseDB is set to true in LocalSettings.php, otherwise returns false.
 
 loadFieldFromDB ( $field, $flags)
 
static getTitleFormatter ()
 B/C kludge: provide a TitleParser for use by Title.
 
static getInterwikiLookup ()
 B/C kludge: provide an InterwikiLookup for use by Title.
 
static getTitleCache ()
 
static fixUrlQueryArgs ( $query, $query2=false)
 Helper to fix up the get{Canonical,Full,Link,Local,Internal}URL args get{Canonical,Full,Link,Local,Internal}URL methods accepted an optional second argument named variant.
 
static newFromDBkey ( $key)
 Create a new Title from a prefixed DB key.
 
static newFromTitleValue (TitleValue $titleValue, $forceClone='')
 Returns a Title given a TitleValue.
 
static newFromLinkTarget (LinkTarget $linkTarget, $forceClone='')
 Returns a Title given a LinkTarget.
 
static castFromLinkTarget ( $linkTarget)
 Same as newFromLinkTarget, but if passed null, returns null.
 
static newFromText ( $text, $defaultNamespace=NS_MAIN)
 Create a new Title from text, such as what one would find in a link.
 
static newFromTextThrow ( $text, $defaultNamespace=NS_MAIN)
 Like Title::newFromText(), but throws MalformedTitleException when the title is invalid, rather than returning null.
 
static newFromURL ( $url)
 THIS IS NOT THE FUNCTION YOU WANT.
 
static newFromID ( $id, $flags=0)
 Create a new Title from an article ID.
 
static newFromIDs ( $ids)
 Make an array of titles from an array of IDs.
 
static newFromRow ( $row)
 Make a Title object from a DB row.
 
static makeTitle ( $ns, $title, $fragment='', $interwiki='')
 Create a new Title from a namespace index and a DB key.
 
static makeTitleSafe ( $ns, $title, $fragment='', $interwiki='')
 Create a new Title from a namespace index and a DB key.
 
static newMainPage (MessageLocalizer $localizer=null)
 Create a new Title for the Main Page.
 
static nameOf ( $id)
 Get the prefixed DB key associated with an ID.
 
static legalChars ()
 Get a regex character class describing the legal characters in a link.
 
static convertByteClassToUnicodeClass ( $byteClass)
 Utility method for converting a character sequence from bytes to Unicode.
 
static makeName ( $ns, $title, $fragment='', $interwiki='', $canonicalNamespace=false)
 Make a prefixed DB key from a DB key and a namespace index.
 
static compare (LinkTarget $a, LinkTarget $b)
 Callback for usort() to do title sorts by (namespace, title)
 
static getFilteredRestrictionTypes ( $exists=true)
 Get a filtered list of all restriction types supported by this wiki.
 
static purgeExpiredRestrictions ()
 Purge expired restrictions from the page_restrictions table.
 
static clearCaches ()
 Was this Title created from a string with a local interwiki prefix?
 
static capitalize ( $text, $ns=NS_MAIN)
 Capitalize a text string for a title if it belongs to a namespace that capitalizes.
 
static getSelectFields ()
 Returns a list of fields that are to be selected for initializing Title objects or LinkCache entries.
 
 loadFromRow ( $row)
 Load Title object fields from a DB row.
 
 isValid ()
 Returns true if the title is a valid link target, and that it has been properly normalized.
 
 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 )
 
 isExternal ()
 Is this Title interwiki?
 
 getInterwiki ()
 Get the interwiki prefix.
 
 wasLocalInterwiki ()
 Was this a local interwiki link?
 
 isTrans ()
 Determine whether the object refers to a page within this project and is transcludable.
 
 getTransWikiID ()
 Returns the DB name of the distant wiki which owns the object.
 
 getTitleValue ()
 Get a TitleValue object representing this Title.
 
 getText ()
 Get the text form (spaces not underscores) of the main part.
 
 getPartialURL ()
 Get the URL-encoded form of the main part.
 
 getDBkey ()
 Get the main part with underscores.
 
 getNamespace ()
 Get the namespace index, i.e.
 
 getContentModel ( $flags=0)
 Get the page's content model id, see the CONTENT_MODEL_XXX constants.
 
 hasContentModel ( $id)
 Convenience method for checking a title's content model name.
 
 setContentModel ( $model)
 Set a proposed content model for the page for permissions checking.
 
 getNsText ()
 Get the namespace text.
 
 getSubjectNsText ()
 Get the namespace text of the subject (rather than talk) page.
 
 getTalkNsText ()
 Get the namespace text of the talk page.
 
 canHaveTalkPage ()
 Can this title have a corresponding talk page?
 
 canExist ()
 Can this title represent a page in the wiki's database?
 
 isWatchable ()
 Can this title be added to a user's watchlist?
 
 isSpecialPage ()
 Returns true if this is a special page.
 
 isSpecial ( $name)
 Returns true if this title resolves to the named special page.
 
 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.
 
 inNamespace ( $ns)
 Returns true if the title is inside the specified namespace.
 
 inNamespaces (... $namespaces)
 Returns true if the title is inside one of the specified namespaces.
 
 hasSubjectNamespace ( $ns)
 Returns true if the title has the same subject namespace as the namespace specified.
 
 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?
 
 isMovable ()
 Would anybody with sufficient privileges be able to move this page? Some pages just aren't movable.
 
 isMainPage ()
 Is this the mainpage?
 
 isSubpage ()
 Is this a subpage?
 
 isConversionTable ()
 Is this a conversion table for the LanguageConverter?
 
 isWikitextPage ()
 Does that page contain wikitext, or it is JS, CSS or whatever?
 
 isSiteConfigPage ()
 Could this MediaWiki namespace page contain custom CSS, JSON, or JavaScript for the global UI.
 
 isUserConfigPage ()
 Is this a "config" (.css, .json, or .js) sub-page of a user page?
 
 getSkinFromConfigSubpage ()
 Trim down a .css, .json, or .js subpage title to get the corresponding skin name.
 
 isUserCssConfigPage ()
 Is this a CSS "config" sub-page of a user page?
 
 isUserJsonConfigPage ()
 Is this a JSON "config" sub-page of a user page?
 
 isUserJsConfigPage ()
 Is this a JS "config" sub-page of a user page?
 
 isSiteCssConfigPage ()
 Is this a sitewide CSS "config" page?
 
 isSiteJsonConfigPage ()
 Is this a sitewide JSON "config" page?
 
 isSiteJsConfigPage ()
 Is this a sitewide JS "config" page?
 
 isRawHtmlMessage ()
 Is this a message which can contain raw HTML?
 
 isTalkPage ()
 Is this a talk page of some sort?
 
 getTalkPage ()
 Get a Title object associated with the talk page of this article.
 
 getTalkPageIfDefined ()
 Get a Title object associated with the talk page of this article, if such a talk page can exist.
 
 getSubjectPage ()
 Get a title object associated with the subject page of this talk page.
 
 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.
 
 getDefaultNamespace ()
 Get the default namespace index, for when there is no namespace.
 
 getFragment ()
 Get the Title fragment (i.e.
 
 hasFragment ()
 Check if a Title fragment is set.
 
 getFragmentForURL ()
 Get the fragment in URL form, including the "#" character if there is one.
 
 setFragment ( $fragment)
 Set the fragment for this title.
 
 createFragmentTarget ( $fragment)
 Creates a new Title for a different fragment of the same page.
 
 getPrefixedDBkey ()
 Get the prefixed database key form.
 
 getPrefixedText ()
 Get the prefixed title with spaces.
 
 __toString ()
 Return a string representation of this title.
 
 getFullText ()
 Get the prefixed title with spaces, plus any fragment (part beginning with '#')
 
 getRootText ()
 Get the root page name text without a namespace, i.e.
 
 getRootTitle ()
 Get the root page name title, i.e.
 
 getBaseText ()
 Get the base page name without a namespace, i.e.
 
 getBaseTitle ()
 Get the base page name title, i.e.
 
 getSubpageText ()
 Get the lowest-level subpage name, i.e.
 
 getSubpage ( $text)
 Get the title for a subpage of the current page.
 
 getSubpageUrlForm ()
 Get a URL-encoded form of the subpage text.
 
 getPrefixedURL ()
 Get a URL-encoded title (not an actual URL) including interwiki.
 
 getFullURL ( $query='', $query2=false, $proto=PROTO_RELATIVE)
 Get a real URL referring to this title, with interwiki link and fragment.
 
 getFullUrlForRedirect ( $query='', $proto=PROTO_CURRENT)
 Get a url appropriate for making redirects based on an untrusted url arg.
 
 getLocalURL ( $query='', $query2=false)
 Get a URL with no fragment or server name (relative URL) from a Title object.
 
 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.
 
 getInternalURL ( $query='', $query2=false)
 Get the URL form for an internal link.
 
 getCanonicalURL ( $query='', $query2=false)
 Get the URL for a canonical link, for use in things like IRC and e-mail notifications.
 
 getEditURL ()
 Get the edit URL for this 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.
 
 userCan ( $action, $user=null, $rigor=PermissionManager::RIGOR_SECURE)
 Can $user perform $action on this page?
 
 getUserPermissionsErrors ( $action, $user, $rigor=PermissionManager::RIGOR_SECURE, $ignoreErrors=[])
 Can $user perform $action on this page?
 
 getRestrictionTypes ()
 Returns restriction types for the current Title.
 
 getTitleProtection ()
 Is this title subject to title protection? Title protection is the one applied against creation of such title.
 
 deleteTitleProtection ()
 Remove any title protection due to page existing.
 
 isSemiProtected ( $action='edit')
 Is this page "semi-protected" - the only protection levels are listed in $wgSemiprotectedRestrictionLevels?
 
 isProtected ( $action='')
 Does the title correspond to a protected article?
 
 isNamespaceProtected (User $user)
 Determines if $user is unable to edit this page because it has been protected by $wgNamespaceProtection.
 
 isCascadeProtected ()
 Cascading protection: Return true if cascading restrictions apply to this page, false if not.
 
 areCascadeProtectionSourcesLoaded ( $getPages=true)
 Determines whether cascading protection sources have already been loaded from the database.
 
 getCascadeProtectionSources ( $getPages=true)
 Cascading protection: Get the source of any cascading restrictions on this page.
 
 areRestrictionsLoaded ()
 Accessor for mRestrictionsLoaded.
 
 getRestrictions ( $action)
 Accessor/initialisation for mRestrictions.
 
 getAllRestrictions ()
 Accessor/initialisation for mRestrictions.
 
 getRestrictionExpiry ( $action)
 Get the expiry time for the restriction against a given action.
 
 areRestrictionsCascading ()
 Returns cascading restrictions for the current article.
 
 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.
 
 loadRestrictions ( $oldFashionedRestrictions=null, $flags=0)
 Load restrictions from the page_restrictions table.
 
 flushRestrictions ()
 Flush the protection cache in this object and force reload from the database.
 
 hasSubpages ()
 Does this have subpages? (Warning, usually requires an extra DB query.)
 
 getSubpages ( $limit=-1)
 Get all subpages of this page.
 
 isDeleted ()
 Is there a version of this page in the deletion archive?
 
 isDeletedQuick ()
 Is there a version of this page in the deletion archive?
 
 getArticleID ( $flags=0)
 Get the article ID for this Title from the link cache, adding it if necessary.
 
 isRedirect ( $flags=0)
 Is this an article that is a redirect page? Uses link cache, adding it if necessary.
 
 getLength ( $flags=0)
 What is the length of this page? Uses link cache, adding it if necessary.
 
 getLatestRevID ( $flags=0)
 What is the page_latest field for this page?
 
 resetArticleID ( $id)
 Inject a page ID, reset DB-loaded fields, and clear the link cache for this 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.
 
 getTemplateLinksTo ( $options=[])
 Get an array of Title objects using this Title as a template Also stores the IDs in the link cache.
 
 getLinksFrom ( $options=[], $table='pagelinks', $prefix='pl')
 Get an array of Title objects linked from this Title Also stores the IDs in the link cache.
 
 getTemplateLinksFrom ( $options=[])
 Get an array of Title objects used on this Title as a template Also stores the IDs in the link cache.
 
 getBrokenLinksFrom ()
 Get an array of Title objects referring to non-existent articles linked from this page.
 
 getCdnUrls ()
 Get a list of URLs to purge from the CDN cache when this page changes.
 
 purgeSquid ()
 Purge all applicable CDN URLs.
 
 isSingleRevRedirect ()
 Locks the page row and check if this page is single revision redirect.
 
 getParentCategories ()
 Get categories to which this Title belongs and return an array of categories' names.
 
 getParentCategoryTree ( $children=[])
 Get a tree of parent categories.
 
 pageCond ()
 Get an associative array for selecting this title from the "page" table.
 
 getPreviousRevisionID ( $revId, $flags=0)
 Get the revision ID of the previous revision.
 
 getNextRevisionID ( $revId, $flags=0)
 Get the revision ID of the next revision.
 
 getFirstRevision ( $flags=0)
 Get the first revision of the page.
 
 getEarliestRevTime ( $flags=0)
 Get the oldest revision timestamp of this page.
 
 isNewPage ()
 Check if this is a new page.
 
 isBigDeletion ()
 Check whether the number of revisions of this page surpasses $wgDeleteRevisionsLimit.
 
 estimateRevisionCount ()
 Get the approximate revision count of this page.
 
 countRevisionsBetween ( $old, $new, $max=null)
 Get the number of revisions between the given revision.
 
 getAuthorsBetween ( $old, $new, $limit, $options=[])
 Get the authors between the given revisions or revision IDs.
 
 countAuthorsBetween ( $old, $new, $limit, $options=[])
 Get the number of authors between the given revisions or revision IDs.
 
 equals (LinkTarget $title)
 Compare with another title.
 
 isSubpageOf (Title $title)
 Check if this title is a subpage of another title.
 
 exists ( $flags=0)
 Check if page exists.
 
 isAlwaysKnown ()
 Should links to this title be shown as potentially viewable (i.e.
 
 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).
 
 hasSourceText ()
 Does this page have source text?
 
 getDefaultMessageText ()
 Get the default (plain) message contents for an page that overrides an interface message key.
 
 invalidateCache ( $purgeTime=null)
 Updates page_touched for this page; called from LinksUpdate.php.
 
 touchLinks ()
 Update page_touched timestamps and send CDN purge messages for pages linking to this title.
 
 getTouched ( $db=null)
 Get the last touched timestamp.
 
 getNotificationTimestamp ( $user=null)
 Get the timestamp when this page was updated since the user last saw it.
 
 getNamespaceKey ( $prepend='nstab-')
 Generate strings used for xml 'id' names in monobook tabs.
 
 getRedirectsHere ( $ns=null)
 Get all extant redirects to this Title.
 
 isValidRedirectTarget ()
 Check if this Title is a valid redirect target.
 
 getBacklinkCache ()
 Get a backlink cache object.
 
 canUseNoindex ()
 Whether the magic words INDEX and NOINDEX function for this page.
 
 getCategorySortkey ( $prefix='')
 Returns the raw sort key to be used for categories, with the specified prefix.
 
 getPageLanguage ()
 Get the language in which the content of this page is written in wikitext.
 
 getPageViewLanguage ()
 Get the language in which the content of this page is written when viewed by user.
 
 getEditNotices ( $oldid=0)
 Get a list of rendered edit notices for this page.
 
 getId ( $wikiId=false)
 
 __sleep ()
 
 __wakeup ()
 Was this Title created from a string with a local interwiki prefix?
 
 getTitleProtectionInternal ()
 Fetch title protection settings.
 

Additional Inherited Members

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.

Definition at line 42 of file Title.php.

Constructor & Destructor Documentation

◆ __construct()

Title::__construct ( )
private

Was this Title created from a string with a local interwiki prefix?

Definition at line 231 of file Title.php.

Member Function Documentation

◆ __sleep()

Title::__sleep ( )
Returns
array

Definition at line 4636 of file Title.php.

◆ __toString()

Title::__toString ( )

Return a string representation of this title.

Returns
string Representation of this title

Implements MediaWiki\Linker\LinkTarget.

Definition at line 1873 of file Title.php.

◆ __wakeup()

Title::__wakeup ( )

Was this Title created from a string with a local interwiki prefix?

Definition at line 4647 of file Title.php.

References wfUrlencode().

◆ areCascadeProtectionSourcesLoaded()

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

Definition at line 2739 of file Title.php.

◆ areRestrictionsCascading()

Title::areRestrictionsCascading ( )

Returns cascading restrictions for the current article.

Returns
bool

Definition at line 2895 of file Title.php.

◆ areRestrictionsLoaded()

Title::areRestrictionsLoaded ( )

Accessor for mRestrictionsLoaded.

Returns
bool Whether or not the page's restrictions have already been loaded from the database
Since
1.23

Definition at line 2842 of file Title.php.

◆ canExist()

Title::canExist ( )

Can this title represent a page in the wiki's database?

Titles can exist as pages in the database if they are valid, and they are not Special pages, interwiki links, or fragment-only links.

See also
isValid()
Returns
bool true if and only if this title can be used to perform an edit.

Definition at line 1195 of file Title.php.

References NS_MAIN.

Referenced by RequestContext\canUseWikiPage(), and UppercaseTitlesForUnicodeTransition\mungeTitle().

◆ canHaveTalkPage()

Title::canHaveTalkPage ( )

Can this title have a corresponding talk page?

False for relative section links (with getText() === ''), interwiki links (with getInterwiki() !== ''), and pages in NS_SPECIAL.

See also
NamespaceInfo::canHaveTalkPage
Since
1.30
Returns
bool True if this title either is a talk page or can have a talk page associated.

Definition at line 1181 of file Title.php.

◆ canUseNoindex()

Title::canUseNoindex ( )

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

Returns
bool

Definition at line 4376 of file Title.php.

References $wgExemptFromUserRobotsControl.

◆ capitalize()

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

Definition at line 3383 of file Title.php.

◆ castFromLinkTarget()

static Title::castFromLinkTarget (   $linkTarget)
static

Same as newFromLinkTarget, but if passed null, returns null.

Parameters
LinkTarget | null$linkTargetAssumed to be safe (if not null).
Returns
Title|null

Definition at line 305 of file Title.php.

◆ clearCaches()

static Title::clearCaches ( )
static

Was this Title created from a string with a local interwiki prefix?

Definition at line 3368 of file Title.php.

◆ compare()

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

Definition at line 856 of file Title.php.

References MediaWiki\Linker\LinkTarget\getNamespace(), and MediaWiki\Linker\LinkTarget\getText().

◆ convertByteClassToUnicodeClass()

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

Definition at line 723 of file Title.php.

◆ countAuthorsBetween()

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.

Deprecated:
since 1.35 Use RevisionStore::countAuthorsBetween instead.
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

Definition at line 3971 of file Title.php.

References wfDeprecated().

◆ countRevisionsBetween()

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.

Deprecated:
since 1.35 Use RevisionStore::countRevisionsBetween instead.
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.

Definition at line 3890 of file Title.php.

References Revision\newFromTitle(), and wfDeprecated().

◆ createFragmentTarget()

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.

Definition at line 1805 of file Title.php.

Referenced by SpecialWhatLinksHere\listItem().

◆ deleteTitleProtection()

Title::deleteTitleProtection ( )

Remove any title protection due to page existing.

Definition at line 2627 of file Title.php.

References DB_MASTER, and wfGetDB().

◆ equals()

Title::equals ( LinkTarget  $title)

Compare with another title.

Parameters
LinkTarget$title
Returns
bool

Definition at line 3983 of file Title.php.

References $title.

Referenced by MediaWiki\Block\Restriction\PageRestriction\matches(), MediaWiki\Storage\DerivedPageDataUpdater\prepareContent(), and MediaWiki\Revision\RenderedRevision\setRevisionInternal().

◆ estimateRevisionCount()

Title::estimateRevisionCount ( )

Get the approximate revision count of this page.

Returns
int

Definition at line 3865 of file Title.php.

References $dbr, DB_REPLICA, and wfGetDB().

◆ exists()

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$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
bool

Definition at line 4012 of file Title.php.

Referenced by RedirectSpecialArticle\getRedirectQuery(), SpecialUpload\getUploadForm(), and UppercaseTitlesForUnicodeTransition\mungeTitle().

◆ findSubpageDivider()

Title::findSubpageDivider (   $text,
  $dir 
)
private

Finds the first or last subpage divider (slash) in the string.

Any leading sequence of slashes is ignored, since it does not divide two parts of the string. Considering leading slashes dividers would result in empty root title or base title (T229443).

Note that trailing slashes are considered dividers, and empty subpage names are allowed.

Parameters
string$text
int$dir-1 for the last or +1 for the first divider.
Returns
false|int

Definition at line 1905 of file Title.php.

◆ fixSpecialName()

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

Definition at line 1278 of file Title.php.

References NS_SPECIAL.

◆ fixUrlQueryArgs()

static Title::fixUrlQueryArgs (   $query,
  $query2 = false 
)
staticprivate

Helper to fix up the get{Canonical,Full,Link,Local,Internal}URL args get{Canonical,Full,Link,Local,Internal}URL methods accepted an optional second argument named variant.

This was deprecated in favor of passing an array of option with a "variant" key Once $query2 is removed for good, this helper can be dropped and the wfArrayToCgi moved to getLocalURL();

Since
1.19 (r105919)
Parameters
array | string$query
string | string[] | bool$query2
Returns
string

Definition at line 2132 of file Title.php.

References wfArrayToCgi(), and wfDeprecatedMsg().

◆ flushRestrictions()

Title::flushRestrictions ( )

Flush the protection cache in this object and force reload from the database.

This is used when updating protection from WikiPage::doUpdateRestrictions().

Definition at line 3063 of file Title.php.

◆ getAllRestrictions()

Title::getAllRestrictions ( )

Accessor/initialisation for mRestrictions.

Returns
array Keys are actions, values are arrays as returned by Title::getRestrictions()
Since
1.23

Definition at line 2869 of file Title.php.

◆ getArticleID()

Title::getArticleID (   $flags = 0)

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

Parameters
int$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
int The ID

Definition at line 3225 of file Title.php.

Referenced by MergeHistoryPager\__construct(), MediaWiki\Preferences\MultiTitleFilter\filterFromForm(), MediaWiki\Rest\Handler\PageHistoryHandler\getDbResults(), NamespaceDupes\mergePage(), and RecentChange\newForCategorization().

◆ getAuthorsBetween()

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
Deprecated:
since 1.35 Use RevisionStore::getAuthorsBetween instead.
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

Definition at line 3928 of file Title.php.

References MediaWiki\User\UserIdentity\getName(), Revision\newFromTitle(), and wfDeprecated().

◆ getBacklinkCache()

Title::getBacklinkCache ( )

Get a backlink cache object.

Returns
BacklinkCache

Definition at line 4367 of file Title.php.

References BacklinkCache\get().

◆ getBaseText()

Title::getBaseText ( )

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

the part before the subpage name

Note
the return value may contain trailing whitespace and is thus not safe for use with makeTitle or TitleValue.
Example:
Title::newFromText('User:Foo/Bar/Baz')->getBaseText();
# returns: 'Foo/Bar'
static newFromText( $text, $defaultNamespace=NS_MAIN)
Create a new Title from text, such as what one would find in a link.
Definition Title.php:329
Returns
string Base name

Definition at line 2014 of file Title.php.

◆ getBaseTitle()

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

Definition at line 2041 of file Title.php.

References $title.

◆ getBrokenLinksFrom()

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

Definition at line 3580 of file Title.php.

References $dbr, $res, DB_REPLICA, and wfGetDB().

◆ getCanonicalURL()

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 | array$query
string | bool$query2Deprecated
Returns
string The URL
Since
1.18

Definition at line 2384 of file Title.php.

References PROTO_CANONICAL, and wfExpandUrl().

◆ getCascadeProtectionSources()

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.

Definition at line 2756 of file Title.php.

References $dbr, $res, DB_REPLICA, NS_FILE, wfGetDB(), and wfTimestampNow().

◆ getCategorySortkey()

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

Definition at line 4395 of file Title.php.

Referenced by CategoryViewer\doCategoryQuery().

◆ getCdnUrls()

Title::getCdnUrls ( )

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

Deprecated:
1.35 Use HtmlCacheUpdater
Returns
string[] Array of String the URLs

Definition at line 3616 of file Title.php.

Referenced by MediaWiki\performAction().

◆ getContentModel()

Title::getContentModel (   $flags = 0)

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

Todo:
Deprecate this in favor of SlotRecord::getModel()
Parameters
int$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
string Content model id

Definition at line 1053 of file Title.php.

Referenced by MediaWiki\EditPage\TextConflictHelper\__construct(), SpecialChangeContentModel\getOptionsForTitle(), and SpecialWhatLinksHere\wlhLink().

◆ getDBkey()

◆ getDbPageLanguageCode()

Title::getDbPageLanguageCode ( )
private

Returns the page language code saved in the database, if $wgPageLanguageUseDB is set to true in LocalSettings.php, otherwise returns false.

If there is no language saved in the db, it will return NULL.

Returns
string|null|bool

Definition at line 4421 of file Title.php.

References $wgPageLanguageUseDB.

◆ getDefaultMessageText()

Title::getDefaultMessageText ( )

Get the default (plain) message contents for an page that overrides an interface message key.

Primary use cases:

  • Article:
    • Show default when viewing the page. The Article::getSubstituteContent method displays the default message content, instead of the 'noarticletext' placeholder message normally used.
  • EditPage:
    • Title of edit page. When creating an interface message override, the editor is told they are "Editing the page", instead of "Creating the page". (EditPage::setHeaders)
    • Edit notice. The 'translateinterface' edit notice is shown when creating or editing an interface message override. (EditPage::showIntro)
    • Opening the editor. The contents of the localisation message are used as contents of the editor when creating a new page in the MediaWiki namespace. This simplifies the process for editors when "changing" an interface message by creating an override. (EditPage::getContentObject)
    • Showing a diff. The left-hand side of a diff when an editor is previewing their changes before saving the creation of a page in the MediaWiki namespace. (EditPage::showDiff)
    • Disallowing a save. When attempting to create a MediaWiki-namespace page with the proposed content matching the interface message default, the save is rejected, the same way we disallow blank pages from being created. (EditPage::internalAttemptSave)
  • ApiEditPage:
    • Default content, when using the 'prepend' or 'append' feature.
  • SkinTemplate:
    • Label the create action as "Edit", if the page can be an override.
Returns
string|bool

Definition at line 4156 of file Title.php.

References $lang, NS_MEDIAWIKI, and wfMessage().

◆ getDefaultNamespace()

Title::getDefaultNamespace ( )

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

Returns
int Default namespace index

Definition at line 1737 of file Title.php.

◆ getEarliestRevTime()

Title::getEarliestRevTime (   $flags = 0)

Get the oldest revision timestamp of this page.

Deprecated:
since 1.35. Use RevisionLookup::getFirstRevision instead.
Parameters
int$flagsBitfield of class READ_* constants
Returns
string|null MW timestamp

Definition at line 3814 of file Title.php.

◆ getEditNotices()

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

Definition at line 4532 of file Title.php.

References wfMessage().

◆ getEditURL()

Title::getEditURL ( )

Get the edit URL for this Title.

Returns
string The URL, or a null string if this is an interwiki link

Definition at line 2396 of file Title.php.

References $s.

◆ getFilteredRestrictionTypes()

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

Definition at line 2512 of file Title.php.

References $wgRestrictionTypes.

◆ getFirstRevision()

Title::getFirstRevision (   $flags = 0)

Get the first revision of the page.

Deprecated:
since 1.35. Use RevisionLookup::getFirstRevision instead.
Parameters
int$flagsBitfield of class READ_* constants
Returns
Revision|null If page doesn't exist

Definition at line 3798 of file Title.php.

References wfDeprecated().

◆ getFragment()

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.

Definition at line 1748 of file Title.php.

Referenced by WikiPage\insertRedirectEntry().

◆ getFragmentForURL()

Title::getFragmentForURL ( )

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

Returns
string Fragment in URL form

Definition at line 1767 of file Title.php.

◆ getFullText()

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 '#'

Definition at line 1883 of file Title.php.

Referenced by WikitextContentHandler\makeRedirectContent(), and WikitextContent\updateRedirect().

◆ getFullURL()

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 | array$query
string | string[] | bool$query2
string | int | null$protoProtocol type to use in URL
Returns
string The URL

Definition at line 2170 of file Title.php.

References wfExpandUrl().

Referenced by CssContentHandler\makeRedirectContent(), and JavaScriptContentHandler\makeRedirectContent().

◆ getFullUrlForRedirect()

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.

Definition at line 2203 of file Title.php.

References SpecialPage\getTitleFor().

◆ getId()

Title::getId (   $wikiId = false)
Since
1.35.6
Parameters
string | false$wikiId
Returns
int

Definition at line 4607 of file Title.php.

◆ getInternalURL()

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 | array$query
string | bool$query2Deprecated
Returns
string The URL

Definition at line 2362 of file Title.php.

References $wgInternalServer, $wgServer, PROTO_HTTP, and wfExpandUrl().

◆ getInterwiki()

Title::getInterwiki ( )

Get the interwiki prefix.

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

Returns
string Interwiki prefix

Implements MediaWiki\Linker\LinkTarget.

Definition at line 942 of file Title.php.

Referenced by WikiPage\insertRedirectEntry(), and WikitextContentHandler\makeRedirectContent().

◆ getInterwikiLookup()

static Title::getInterwikiLookup ( )
staticprivate

B/C kludge: provide an InterwikiLookup for use by Title.

Ideally, Title would have no methods that need this. Avoid usage of this singleton by using TitleValue and the associated services when possible.

Returns
InterwikiLookup

Definition at line 227 of file Title.php.

◆ getLanguageConverter()

Title::getLanguageConverter (   $language)
private

Shorthand for getting a Language Converter for specific language.

Parameters
Language$languageLanguage of converter
Returns
ILanguageConverter

Definition at line 194 of file Title.php.

References getLanguageConverter().

Referenced by getLanguageConverter().

◆ getLatestRevID()

Title::getLatestRevID (   $flags = 0)

What is the page_latest field for this page?

Parameters
int$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
int Int or 0 if the page doesn't exist

Definition at line 3311 of file Title.php.

Referenced by RefreshLinksJob\getCurrentRevisionIfUnchanged().

◆ getLength()

Title::getLength (   $flags = 0)

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

Parameters
int$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
int

Definition at line 3284 of file Title.php.

◆ getLinksFrom()

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

Definition at line 3514 of file Title.php.

References $res, DB_REPLICA, and wfGetDB().

◆ getLinksTo()

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

Definition at line 3456 of file Title.php.

References $res, DB_MASTER, DB_REPLICA, and wfGetDB().

◆ getLinkURL()

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 | array$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

Definition at line 2337 of file Title.php.

◆ getLocalURL()

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 | array$queryAn optional query string, not used for interwiki links. Can be specified as an associative array as well, e.g., [ 'action' => 'edit' ] (keys and values will be URL-escaped). Some query patterns will trigger various shorturl path replacements.
string | string[] | bool$query2An 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.

Definition at line 2237 of file Title.php.

References $matches, $wgActionPaths, $wgArticlePath, $wgMainPageIsDomainRoot, $wgRequest, $wgScript, $wgServer, $wgVariantArticlePath, wfAppendQuery(), and wfUrlencode().

Referenced by SkinTemplate\buildContentNavigationUrls().

◆ getNamespace()

◆ getNamespaceKey()

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

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

Parameters
string$prependDefaults to 'nstab-'
Returns
string XML 'id' name

Definition at line 4278 of file Title.php.

◆ getNextRevisionID()

Title::getNextRevisionID (   $revId,
  $flags = 0 
)

Get the revision ID of the next revision.

Deprecated:
since 1.34, use RevisionLookup::getNextRevision
Parameters
int$revIdRevision ID. Get the revision that was after this one.
int$flagsBitfield of class READ_* constants
Returns
int|bool Next revision ID, or false if none exists

Definition at line 3787 of file Title.php.

◆ getNotificationTimestamp()

Title::getNotificationTimestamp (   $user = null)

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

Deprecated:
since 1.35
Parameters
User | null$user(null defaults to global $wgUser, and is deprecated since 1.35)
Returns
string|bool|null String timestamp, false if not watched, null if nothing is unseen

Definition at line 4259 of file Title.php.

References wfDeprecated().

◆ getNsText()

Title::getNsText ( )

Get the namespace text.

Returns
string|false Namespace text

Definition at line 1128 of file Title.php.

References wfDebug().

◆ getOtherPage()

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.

Deprecated:
since 1.34, use NamespaceInfo::getAssociatedPage
Since
1.25
Exceptions
MWExceptionIf the page doesn't have an other page
Returns
Title

Definition at line 1712 of file Title.php.

◆ getPageLanguage()

Title::getPageLanguage ( )

Get the language in which the content of this page is written in wikitext.

Defaults to content language, 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

Definition at line 4443 of file Title.php.

References $wgLang, $wgLanguageCode, and wfGetLangObj().

◆ getPageLanguageConverter()

Title::getPageLanguageConverter ( )
private

Shorthand for getting a Language Converter for page's language.

Returns
ILanguageConverter

Definition at line 203 of file Title.php.

◆ getPageViewLanguage()

Title::getPageViewLanguage ( )

Get the language in which the content of this page is written when viewed by user.

Defaults to content language, 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

Definition at line 4484 of file Title.php.

References $wgLang, and wfGetLangObj().

◆ getParentCategories()

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

Definition at line 3675 of file Title.php.

References $dbr, $res, DB_REPLICA, NS_CATEGORY, and wfGetDB().

◆ getParentCategoryTree()

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

Definition at line 3710 of file Title.php.

◆ getPartialURL()

Title::getPartialURL ( )

Get the URL-encoded form of the main part.

Returns
string Main part of the title, URL-encoded

Definition at line 1023 of file Title.php.

◆ getPrefixedDBkey()

Title::getPrefixedDBkey ( )

Get the prefixed database key form.

Returns
string The prefixed title, with underscores and any interwiki and namespace prefixes

Definition at line 1847 of file Title.php.

References $s.

Referenced by PPTemplateFrame_Hash\__construct(), DoubleRedirectJob\fixRedirects(), DoubleRedirectJob\getFinalDestination(), PPFrame_Hash\loopCheck(), LinkHolderArray\makeHolder(), and RecentChange\newForCategorization().

◆ getPrefixedText()

◆ getPrefixedURL()

Title::getPrefixedURL ( )

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

Returns
string The URL-encoded form

Definition at line 2113 of file Title.php.

References $s, and wfUrlencode().

◆ getPreviousRevisionID()

Title::getPreviousRevisionID (   $revId,
  $flags = 0 
)

Get the revision ID of the previous revision.

Deprecated:
since 1.34, use RevisionLookup::getPreviousRevision
Parameters
int$revIdRevision ID. Get the revision that was before this one.
int$flagsBitfield of class READ_* constants
Returns
int|bool Old revision ID, or false if none exists

Definition at line 3775 of file Title.php.

◆ getRedirectsHere()

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

Definition at line 4307 of file Title.php.

References $dbr, $res, DB_REPLICA, and wfGetDB().

◆ getRelativeRevisionID()

Title::getRelativeRevisionID (   $revId,
  $flags,
  $dir 
)
private

Get next/previous revision ID relative to another revision ID.

Parameters
int$revIdRevision ID. Get the revision that was before this one.
int$flagsBitfield of class READ_* constants
string$dir'next' or 'prev'
Returns
int|bool New revision ID, or false if none exists

Definition at line 3753 of file Title.php.

◆ getRestrictionExpiry()

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.

Definition at line 2883 of file Title.php.

◆ getRestrictions()

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.

Definition at line 2855 of file Title.php.

◆ getRestrictionTypes()

Title::getRestrictionTypes ( )

Returns restriction types for the current Title.

Returns
array Applicable restriction types

Definition at line 2530 of file Title.php.

References NS_FILE, and wfDebug().

◆ getRootText()

Title::getRootText ( )

Get the root page name text without a namespace, i.e.

the leftmost part before any slashes

Note
the return value may contain trailing whitespace and is thus not safe for use with makeTitle or TitleValue.
Example:
Title::newFromText('User:Foo/Bar/Baz')->getRootText();
# returns: 'Foo'
Returns
string Root name
Since
1.20

Definition at line 1964 of file Title.php.

◆ getRootTitle()

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

Definition at line 1991 of file Title.php.

References $title.

◆ getSelectFields()

static Title::getSelectFields ( )
staticprotected

Returns a list of fields that are to be selected for initializing Title objects or LinkCache entries.

Returns
array

Definition at line 450 of file Title.php.

References $wgPageLanguageUseDB.

◆ getSkinFromConfigSubpage()

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

Definition at line 1467 of file Title.php.

◆ getSubjectNsText()

Title::getSubjectNsText ( )

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

Returns
string Namespace text

Definition at line 1153 of file Title.php.

◆ getSubjectPage()

Title::getSubjectPage ( )

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

Deprecated:
since 1.34, use NamespaceInfo::getSubjectPage
Returns
Title The object for the subject page

Definition at line 1655 of file Title.php.

References $title.

◆ getSubpage()

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|null Subpage title, or null on an error
Since
1.20

Definition at line 2088 of file Title.php.

◆ getSubpages()

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

Definition at line 3145 of file Title.php.

References $dbr, DB_REPLICA, and wfGetDB().

◆ getSubpageText()

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

Definition at line 2061 of file Title.php.

◆ getSubpageUrlForm()

Title::getSubpageUrlForm ( )

Get a URL-encoded form of the subpage text.

Returns
string URL-encoded subpage name

Definition at line 2102 of file Title.php.

References wfUrlencode().

◆ getTalkNsText()

Title::getTalkNsText ( )

Get the namespace text of the talk page.

Returns
string Namespace text

Definition at line 1164 of file Title.php.

◆ getTalkPage()

Title::getTalkPage ( )

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

Deprecated:
since 1.34, use getTalkPageIfDefined() or NamespaceInfo::getTalkPage() with NamespaceInfo::canHaveTalkPage(). Note that the new method will throw if asked for the talk page of a section-only link, or of an interwiki link.
Returns
Title The object for the talk page
Exceptions
MWExceptionif $target doesn't have talk pages, e.g. because it's in NS_SPECIAL or because it's a relative link, or an interwiki link.

Definition at line 1610 of file Title.php.

References $title.

◆ getTalkPageIfDefined()

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().

Definition at line 1640 of file Title.php.

◆ getTemplateLinksFrom()

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

Definition at line 3568 of file Title.php.

◆ getTemplateLinksTo()

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

Definition at line 3498 of file Title.php.

◆ getText()

Title::getText ( )

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

Returns
string Main part of the title

Implements MediaWiki\Linker\LinkTarget.

Definition at line 1014 of file Title.php.

Referenced by CategoryViewer\addSubcategoryObject(), TraditionalImageGallery\getCaptionHtml(), UppercaseTitlesForUnicodeTransition\mungeTitle(), and MovePageForm\showForm().

◆ getTitleCache()

static Title::getTitleCache ( )
staticprivate
Returns
MapCacheLRU

Definition at line 437 of file Title.php.

◆ getTitleFormatter()

static Title::getTitleFormatter ( )
staticprivate

B/C kludge: provide a TitleParser for use by Title.

Ideally, Title would have no methods that need this. Avoid usage of this singleton by using TitleValue and the associated services when possible.

Returns
TitleFormatter

Definition at line 215 of file Title.php.

◆ getTitleProtection()

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.

Definition at line 2557 of file Title.php.

◆ getTitleProtectionInternal()

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

Definition at line 2580 of file Title.php.

References $dbr, $res, DB_REPLICA, and wfGetDB().

◆ getTitleValue()

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

Definition at line 991 of file Title.php.

References wfDebug().

◆ getTouched()

Title::getTouched (   $db = null)

Get the last touched timestamp.

Parameters
IDatabase | null$db
Returns
string|false Last-touched timestamp

Definition at line 4243 of file Title.php.

References DB_REPLICA, and wfGetDB().

◆ getTransWikiID()

Title::getTransWikiID ( )

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

Returns
string|false The DB name

Definition at line 974 of file Title.php.

◆ getUserPermissionsErrors()

Title::getUserPermissionsErrors (   $action,
  $user,
  $rigor = PermissionManager::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.
Exceptions
Exception
Deprecated:
since 1.33, use MediaWikiServices::getInstance()->getPermissionManager()->getPermissionErrors()

Definition at line 2489 of file Title.php.

References wfDeprecated().

◆ hasContentModel()

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

Definition at line 1086 of file Title.php.

◆ hasFragment()

Title::hasFragment ( )

Check if a Title fragment is set.

Returns
bool
Since
1.23

Implements MediaWiki\Linker\LinkTarget.

Definition at line 1758 of file Title.php.

Referenced by CoreParserFunctions\displaytitle().

◆ hasSourceText()

Title::hasSourceText ( )

Does this page have source text?

Returns
bool

Definition at line 4097 of file Title.php.

References NS_MEDIAWIKI, and wfMessage().

◆ hasSubjectNamespace()

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

Definition at line 1341 of file Title.php.

◆ hasSubpages()

Title::hasSubpages ( )

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

Returns
bool

Definition at line 3114 of file Title.php.

◆ hasSubpagesEnabled()

Title::hasSubpagesEnabled ( )
private

Whether this Title's namespace has subpages enabled.

Returns
bool

Definition at line 1944 of file Title.php.

◆ inNamespace()

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.

Definition at line 1302 of file Title.php.

◆ inNamespaces()

Title::inNamespaces (   $namespaces)

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

Definition at line 1314 of file Title.php.

◆ invalidateCache()

Title::invalidateCache (   $purgeTime = null)

Updates page_touched for this page; called from LinksUpdate.php.

Parameters
string | null$purgeTime[optional] TS_MW timestamp
Returns
bool True if the update succeeded

Definition at line 4179 of file Title.php.

References Wikimedia\Rdbms\IDatabase\addQuotes(), DB_MASTER, Wikimedia\Rdbms\IDatabase\getDomainID(), Wikimedia\Rdbms\IDatabase\timestamp(), Wikimedia\Rdbms\IDatabase\update(), wfGetDB(), and wfReadOnly().

◆ isAlwaysKnown()

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

Definition at line 4034 of file Title.php.

References NS_FILE, NS_MAIN, NS_MEDIA, NS_MEDIAWIKI, and NS_SPECIAL.

◆ isBigDeletion()

Title::isBigDeletion ( )

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

Returns
bool

Definition at line 3836 of file Title.php.

References $dbr, $wgDeleteRevisionsLimit, DB_REPLICA, and wfGetDB().

◆ isCascadeProtected()

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.

Definition at line 2725 of file Title.php.

◆ isContentPage()

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

Definition at line 1353 of file Title.php.

◆ isConversionTable()

Title::isConversionTable ( )

Is this a conversion table for the LanguageConverter?

Returns
bool

Definition at line 1409 of file Title.php.

References NS_MEDIAWIKI.

◆ isDeleted()

Title::isDeleted ( )

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

Returns
int The number of archived revisions

Definition at line 3175 of file Title.php.

References $dbr, DB_REPLICA, NS_FILE, and wfGetDB().

◆ isDeletedQuick()

Title::isDeletedQuick ( )

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

Returns
bool

Definition at line 3200 of file Title.php.

References $dbr, DB_REPLICA, NS_FILE, and wfGetDB().

◆ isExternal()

Title::isExternal ( )

Is this Title interwiki?

Returns
bool

Implements MediaWiki\Linker\LinkTarget.

Definition at line 931 of file Title.php.

Referenced by DoubleRedirectJob\getFinalDestination(), and LinkHolderArray\makeHolder().

◆ isKnown()

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

Definition at line 4088 of file Title.php.

◆ isLocal()

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

Definition at line 916 of file Title.php.

◆ isMainPage()

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

Definition at line 1388 of file Title.php.

◆ isMovable()

Title::isMovable ( )

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

Returns
bool

Definition at line 1364 of file Title.php.

◆ isNamespaceProtected()

Title::isNamespaceProtected ( User  $user)

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

Deprecated:
since 1.34 Don't use this function in new code.
Parameters
User$userUser object to check permissions
Returns
bool

Definition at line 2706 of file Title.php.

References $wgNamespaceProtection.

◆ isNewPage()

Title::isNewPage ( )

Check if this is a new page.

Returns
bool

Definition at line 3826 of file Title.php.

References $dbr, DB_REPLICA, and wfGetDB().

◆ isProtected()

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

Definition at line 2673 of file Title.php.

References $type, and $wgRestrictionLevels.

◆ isRawHtmlMessage()

Title::isRawHtmlMessage ( )

Is this a message which can contain raw HTML?

Returns
bool
Since
1.32

Definition at line 1579 of file Title.php.

References $wgRawHtmlMessages, and NS_MEDIAWIKI.

◆ isRedirect()

Title::isRedirect (   $flags = 0)

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

Parameters
int$flagsEither a bitfield of class READ_* constants or GAID_FOR_UPDATE
Returns
bool

Definition at line 3259 of file Title.php.

Referenced by CategoryViewer\addSubcategoryObject().

◆ isSemiProtected()

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

Definition at line 2645 of file Title.php.

References $wgSemiprotectedRestrictionLevels.

◆ isSingleRevRedirect()

Title::isSingleRevRedirect ( )

Locks the page row and check if this page is single revision redirect.

This updates the cached fields of this instance via Title::loadFromRow()

Returns
bool

Definition at line 3637 of file Title.php.

References DB_MASTER, and wfGetDB().

◆ isSiteConfigPage()

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

Definition at line 1439 of file Title.php.

◆ isSiteCssConfigPage()

Title::isSiteCssConfigPage ( )

Is this a sitewide CSS "config" page?

Returns
bool
Since
1.32

Definition at line 1525 of file Title.php.

References CONTENT_MODEL_CSS, and NS_MEDIAWIKI.

◆ isSiteJsConfigPage()

Title::isSiteJsConfigPage ( )

Is this a sitewide JS "config" page?

Returns
bool
Since
1.31

Definition at line 1561 of file Title.php.

References CONTENT_MODEL_JAVASCRIPT, and NS_MEDIAWIKI.

◆ isSiteJsonConfigPage()

Title::isSiteJsonConfigPage ( )

Is this a sitewide JSON "config" page?

Returns
bool
Since
1.32

Definition at line 1543 of file Title.php.

References CONTENT_MODEL_JSON, and NS_MEDIAWIKI.

◆ isSpecial()

Title::isSpecial (   $name)

Returns true if this title resolves to the named special page.

Parameters
string$nameThe special page name
Returns
bool

Definition at line 1260 of file Title.php.

◆ isSpecialPage()

Title::isSpecialPage ( )

Returns true if this is a special page.

Returns
bool

Definition at line 1250 of file Title.php.

References NS_SPECIAL.

Referenced by SkinTemplate\buildPersonalUrls().

◆ isSubpage()

Title::isSubpage ( )

Is this a subpage?

Returns
bool

Definition at line 1397 of file Title.php.

◆ isSubpageOf()

Title::isSubpageOf ( Title  $title)

Check if this title is a subpage of another title.

Parameters
Title$title
Returns
bool

Definition at line 3996 of file Title.php.

References $title.

◆ isTalkPage()

Title::isTalkPage ( )

Is this a talk page of some sort?

Returns
bool

Definition at line 1594 of file Title.php.

◆ isTrans()

Title::isTrans ( )

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

Returns
bool True if this is transcludable

Definition at line 961 of file Title.php.

◆ isUserConfigPage()

Title::isUserConfigPage ( )

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

Returns
bool
Since
1.31

Definition at line 1453 of file Title.php.

◆ isUserCssConfigPage()

Title::isUserCssConfigPage ( )

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

Returns
bool
Since
1.31

Definition at line 1483 of file Title.php.

References CONTENT_MODEL_CSS, and NS_USER.

◆ isUserJsConfigPage()

Title::isUserJsConfigPage ( )

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

Returns
bool
Since
1.31

Definition at line 1511 of file Title.php.

References CONTENT_MODEL_JAVASCRIPT, and NS_USER.

◆ isUserJsonConfigPage()

Title::isUserJsonConfigPage ( )

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

Returns
bool
Since
1.31

Definition at line 1497 of file Title.php.

References CONTENT_MODEL_JSON, and NS_USER.

◆ isValid()

Title::isValid ( )

Returns true if the title is a valid link target, and that it has been properly normalized.

This method checks that the title is syntactically valid, and that the namespace it refers to exists.

Titles constructed using newFromText() or makeTitleSafe() are always valid.

Note
Code that wants to check whether the title can represent a page that can be created and edited should use canExist() instead. Examples of valid titles that cannot "exist" are Special pages, interwiki links, and on-page section links that only have the fragment part set.
See also
canExist()
Returns
bool

Definition at line 877 of file Title.php.

◆ isValidRedirectTarget()

Title::isValidRedirectTarget ( )

Check if this Title is a valid redirect target.

Returns
bool

Definition at line 4343 of file Title.php.

References $wgInvalidRedirectTargets.

Referenced by AbstractContent\getRedirectChain(), WikitextContent\getRedirectTargetAndText(), and XmlDumpWriter\openPage().

◆ isWatchable()

Title::isWatchable ( )

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

False for relative section links (with getText() === ''), interwiki links (with getInterwiki() !== ''), and pages in NS_SPECIAL.

Returns
bool

Definition at line 1239 of file Title.php.

Referenced by SpecialEditWatchlist\extractTitles().

◆ isWikitextPage()

Title::isWikitextPage ( )

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

Returns
bool

Definition at line 1421 of file Title.php.

References CONTENT_MODEL_WIKITEXT.

◆ lazyFillContentModel()

Title::lazyFillContentModel (   $model)
private

If the content model field is not frozen then update it with a retreived value.

Parameters
string | bool$modelCONTENT_MODEL_XXX constant or false

Definition at line 1117 of file Title.php.

◆ legalChars()

static Title::legalChars ( )
static

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

Returns
string The list of characters, not delimited

Definition at line 709 of file Title.php.

References $wgLegalTitleChars.

◆ loadFieldFromDB()

Title::loadFieldFromDB (   $field,
  $flags 
)
private
Parameters
string$field
int$flagsBitfield of class READ_* constants
Returns
string|bool

Definition at line 4616 of file Title.php.

References wfGetDB().

◆ loadFromRow()

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

Definition at line 536 of file Title.php.

◆ loadRestrictions()

Title::loadRestrictions (   $oldFashionedRestrictions = null,
  $flags = 0 
)

Load restrictions from the page_restrictions table.

Parameters
string | null$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"
int$flagsA bit field. If self::READ_LATEST is set, skip replicas and read from the master DB.

Definition at line 2992 of file Title.php.

References $cache, $dbr, DB_MASTER, DB_REPLICA, wfGetDB(), and wfTimestampNow().

◆ loadRestrictionsFromRows()

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 | null$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"

Definition at line 2914 of file Title.php.

References $dbr, $type, DB_REPLICA, wfGetDB(), and wfTimestampNow().

◆ makeName()

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

Definition at line 829 of file Title.php.

References $title.

◆ makeTitle()

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

Definition at line 592 of file Title.php.

References $t, $title, and wfUrlencode().

◆ makeTitleSafe()

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.

The Title object returned by this method is guaranteed to be valid. Call canExist() to check if the Title represents an editable page.

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

Definition at line 618 of file Title.php.

References $t, and $title.

◆ nameOf()

static Title::nameOf (   $id)
static

Get the prefixed DB key associated with an ID.

Parameters
int$idThe page_id of the article
Returns
string|null An object representing the article, or null if no such article was found

Definition at line 688 of file Title.php.

References $dbr, $s, DB_REPLICA, and wfGetDB().

◆ newFromDBkey()

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

Definition at line 242 of file Title.php.

References $t.

◆ newFromID()

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$flagsBitfield of class READ_* constants
Returns
Title|null The new object, or null on an error

Definition at line 473 of file Title.php.

References $title, and wfGetDB().

◆ newFromIDs()

static Title::newFromIDs (   $ids)
static

Make an array of titles from an array of IDs.

Parameters
int[]$idsArray of IDs
Returns
Title[] Array of Titles

Definition at line 498 of file Title.php.

References $dbr, $res, DB_REPLICA, and wfGetDB().

◆ newFromLinkTarget()

static Title::newFromLinkTarget ( LinkTarget  $linkTarget,
  $forceClone = '' 
)
static

Returns a Title given a LinkTarget.

If the given LinkTarget is already a Title instance, that instance is returned, unless $forceClone is "clone". If $forceClone is "clone" and the given LinkTarget is already a Title instance, that instance is copied using the clone operator.

Parameters
LinkTarget$linkTargetAssumed to be safe.
string$forceCloneset to NEW_CLONE to ensure a fresh instance is returned.
Returns
Title

Definition at line 281 of file Title.php.

References MediaWiki\Linker\LinkTarget\getFragment(), MediaWiki\Linker\LinkTarget\getInterwiki(), MediaWiki\Linker\LinkTarget\getNamespace(), and MediaWiki\Linker\LinkTarget\getText().

◆ newFromRow()

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

Definition at line 524 of file Title.php.

References $t.

◆ newFromText()

static Title::newFromText (   $text,
  $defaultNamespace = NS_MAIN 
)
static

Create a new Title from text, such as what one would find in a link.

Decodes any HTML entities in the text. Titles returned by this method are guaranteed to be valid. Call canExist() to check if the Title represents an editable page.

Note
The Title instance returned by this method is not guaranteed to be a fresh instance. It may instead be a cached instance created previously, with references to it remaining elsewhere.
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 if the Title could not be parsed because it is invalid.

Definition at line 329 of file Title.php.

◆ newFromTextThrow()

static Title::newFromTextThrow (   $text,
  $defaultNamespace = NS_MAIN 
)
static

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

Titles returned by this method are guaranteed to be valid. Call canExist() to check if the Title represents an editable page.

Note
The Title instance returned by this method is not guaranteed to be a fresh instance. It may instead be a cached instance created previously, with references to it remaining elsewhere.
See also
Title::newFromText
Since
1.25
Parameters
string$textTitle text to check
int$defaultNamespace
Exceptions
MalformedTitleExceptionIf the title is invalid.
Returns
Title

Definition at line 364 of file Title.php.

References $t, and NS_MAIN.

◆ newFromTitleValue()

static Title::newFromTitleValue ( TitleValue  $titleValue,
  $forceClone = '' 
)
static

Returns a Title given a TitleValue.

If the given TitleValue is already a Title instance, that instance is returned, unless $forceClone is "clone". If $forceClone is "clone" and the given TitleValue is already a Title instance, that instance is copied using the clone operator.

Deprecated:
since 1.34, use newFromLinkTarget or castFromLinkTarget
Parameters
TitleValue$titleValueAssumed to be safe.
string$forceCloneset to NEW_CLONE to ensure a fresh instance is returned.
Returns
Title

Definition at line 266 of file Title.php.

◆ newFromURL()

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

Definition at line 414 of file Title.php.

References $t.

◆ newMainPage()

static Title::newMainPage ( MessageLocalizer  $localizer = null)
static

Create a new Title for the Main Page.

This uses the 'mainpage' interface message, which could be specified in $wgForceUIMsgAsContentMsg. If that is the case, then calling this method will use the user language, which would involve initialising the session via RequestContext::getMain()->getLanguage(). For session-less endpoints, be sure to pass in a MessageLocalizer (such as your own RequestContext, or ResourceloaderContext) to prevent an error.

Note
The Title instance returned by this method is not guaranteed to be a fresh instance. It may instead be a cached instance created previously, with references to it remaining elsewhere.
Parameters
MessageLocalizer | null$localizerAn optional context to use (since 1.34)
Returns
Title

Definition at line 654 of file Title.php.

References $title, and wfMessage().

◆ pageCond()

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()

Definition at line 3737 of file Title.php.

◆ prefix()

Title::prefix (   $name)
private

Prefix some arbitrary text with the namespace or interwiki prefix of this object.

Parameters
string$nameThe text
Returns
string The prefixed text

Definition at line 1821 of file Title.php.

References NS_SPECIAL.

◆ purgeExpiredRestrictions()

static Title::purgeExpiredRestrictions ( )
static

Purge expired restrictions from the page_restrictions table.

This will purge no more than $wgUpdateRowsPerQuery page_restrictions rows

Definition at line 3073 of file Title.php.

References Wikimedia\Rdbms\IDatabase\addQuotes(), DB_MASTER, Wikimedia\Rdbms\IDatabase\delete(), Wikimedia\Rdbms\IDatabase\selectFieldValues(), Wikimedia\Rdbms\IDatabase\timestamp(), wfGetDB(), and wfReadOnly().

◆ purgeSquid()

Title::purgeSquid ( )

Purge all applicable CDN URLs.

Deprecated:
1.35 Use HtmlCacheUpdater

Definition at line 3625 of file Title.php.

◆ quickUserCan()

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 | null$userUser to check (since 1.19); $wgUser will be used if not provided.
Returns
bool
Exceptions
Exception
Deprecated:
since 1.33, use MediaWikiServices::getInstance()->getPermissionManager()->quickUserCan(..) instead

Definition at line 2425 of file Title.php.

References wfDeprecated().

◆ resetArticleID()

Title::resetArticleID (   $id)

Inject a page ID, reset DB-loaded fields, and clear the link cache for this title.

This can be called on page insertion to allow loading of the new page_id without having to create a new Title instance. Likewise with deletion.

This is also used during page moves, to reflect the change in the relationship between article ID and title text.

Note
This overrides Title::setContentModel()
Parameters
int | bool$idPage ID, 0 for non-existant, or false for "unknown" (lazy-load)

Definition at line 3346 of file Title.php.

◆ secureAndSplit()

Title::secureAndSplit (   $text,
  $defaultNamespace = null 
)
private

Secure and split - main initialisation function for this object.

Assumes that $text is urldecoded and uses underscores, but not otherwise munged. This function removes illegal characters, splits off the interwiki and namespace prefixes, sets the other forms, and canonicalizes everything.

If this method returns normally, the Title is valid.

Parameters
string$text
int | null$defaultNamespace
Exceptions
MalformedTitleExceptionOn malformed titles

Definition at line 3408 of file Title.php.

References wfUrlencode().

◆ setContentModel()

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 in the DB. It only affects this particular Title instance. The content model is forced to remain this value until another setContentModel() call.

ContentHandler::canBeUsedOn() should be checked before calling this if there is any doubt regarding the applicability of the content model

Since
1.28
Parameters
string$modelCONTENT_MODEL_XXX constant

Definition at line 1103 of file Title.php.

Referenced by EditPage\internalAttemptSave().

◆ setFragment()

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.

Definition at line 1794 of file Title.php.

◆ touchLinks()

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.

Definition at line 4219 of file Title.php.

References HTMLCacheUpdateJob\newForBacklinks(), and NS_CATEGORY.

◆ userCan()

Title::userCan (   $action,
  $user = null,
  $rigor = PermissionManager::RIGOR_SECURE 
)

Can $user perform $action on this page?

Parameters
string$actionAction that permission needs to be checked for
User | null$userUser to check (since 1.19); $wgUser will be used if not provided.
string$rigorSame format as Title::getUserPermissionsErrors()
Returns
bool
Exceptions
Exception
Deprecated:
since 1.33, use MediaWikiServices::getInstance()->getPermissionManager()->userCan(..) instead

Definition at line 2450 of file Title.php.

References wfDeprecated().

◆ warnIfPageCannotExist()

Title::warnIfPageCannotExist ( Title  $title,
  $method 
)
private
Parameters
Title$title
string$method
Returns
bool whether a warning was issued

Definition at line 1681 of file Title.php.

References $title, and wfLogWarning().

◆ wasLocalInterwiki()

Title::wasLocalInterwiki ( )

Was this a local interwiki link?

Returns
bool

Definition at line 951 of file Title.php.

Member Data Documentation

◆ $mArticleID

int Title::$mArticleID = -1

Article ID, fetched from the link cache on demand.

Definition at line 92 of file Title.php.

◆ $mCascadeRestriction

bool Title::$mCascadeRestriction

Cascade restrictions on this page to included templates and images?

Definition at line 124 of file Title.php.

◆ $mCascadeSources

array Title::$mCascadeSources

Where are the cascading restrictions coming from on this page?

Definition at line 136 of file Title.php.

◆ $mCascadingRestrictions

Title::$mCascadingRestrictions

Caching the results of getCascadeProtectionSources.

Definition at line 127 of file Title.php.

◆ $mContentModel

bool string Title::$mContentModel = false
private

ID of the page's content model, i.e.

one of the CONTENT_MODEL_XXX constants

Definition at line 101 of file Title.php.

◆ $mDbkeyform

string Title::$mDbkeyform = ''

Main part with underscores.

Definition at line 81 of file Title.php.

◆ $mDbPageLanguage

string bool null Title::$mDbPageLanguage = false
private

The page language code from the database, null if not saved in the database or false if not loaded, yet.

Definition at line 177 of file Title.php.

◆ $mDefaultNamespace

int Title::$mDefaultNamespace = NS_MAIN

Namespace index when there is no namespace.

Don't change the following default, NS_MAIN is hardcoded in several places. See T2696. Used primarily for {{transclusion}} tags.

See also
newFromText()

Definition at line 160 of file Title.php.

◆ $mEstimateRevisions

int Title::$mEstimateRevisions
private

Estimated number of revisions; null of not loaded.

Definition at line 110 of file Title.php.

◆ $mForcedContentModel

bool Title::$mForcedContentModel = false
private

If a content model was forced via setContentModel() this will be true to avoid having other code paths reset it.

Definition at line 107 of file Title.php.

◆ $mFragment

string Title::$mFragment = ''

Title fragment (i.e.

the bit after the #)

Definition at line 89 of file Title.php.

◆ $mHasCascadingRestrictions

bool Title::$mHasCascadingRestrictions
protected

Are cascading restrictions in effect on this page?

Definition at line 133 of file Title.php.

◆ $mHasSubpages

bool Title::$mHasSubpages
private

Whether a page has any subpages.

Definition at line 169 of file Title.php.

◆ $mInterwiki

string Title::$mInterwiki = ''

Interwiki prefix.

Definition at line 85 of file Title.php.

◆ $mIsBigDeletion

bool null Title::$mIsBigDeletion = null
private

Would deleting this page be a big deletion?

Definition at line 183 of file Title.php.

◆ $mIsValid

bool null Title::$mIsValid = null
private

Is the title known to be valid?

Definition at line 186 of file Title.php.

◆ $mLatestID

bool int Title::$mLatestID = false
protected

ID of most recent revision.

Definition at line 95 of file Title.php.

◆ $mLength

int Title::$mLength = -1
protected

The page length, 0 for special pages.

Definition at line 163 of file Title.php.

◆ $mLocalInterwiki

bool Title::$mLocalInterwiki = false
private

Was this Title created from a string with a local interwiki prefix?

Definition at line 87 of file Title.php.

◆ $mNamespace

int Title::$mNamespace = NS_MAIN

Namespace index, i.e.

one of the NS_xxxx constants

Definition at line 83 of file Title.php.

◆ $mOldRestrictions

string bool Title::$mOldRestrictions = false
protected

Comma-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"

Definition at line 121 of file Title.php.

◆ $mPageLanguage

array null Title::$mPageLanguage
private

The (string) language code of the page's language and content code.

Definition at line 172 of file Title.php.

◆ $mRedirect

null Title::$mRedirect = null

Is the article at this title a redirect?

Definition at line 166 of file Title.php.

◆ $mRestrictions

array Title::$mRestrictions = []

Array of groups allowed to edit this article.

Definition at line 113 of file Title.php.

◆ $mRestrictionsExpiry

array Title::$mRestrictionsExpiry = []
protected

When do the restrictions on this page expire?

Definition at line 130 of file Title.php.

◆ $mRestrictionsLoaded

bool Title::$mRestrictionsLoaded = false

Boolean for initialisation on demand.

Definition at line 139 of file Title.php.

◆ $mTextform

string Title::$mTextform = ''

Text form (spaces not underscores) of the main part.

Definition at line 77 of file Title.php.

◆ $mTitleProtection

mixed Title::$mTitleProtection

Cached value for getTitleProtection (create protection)

Definition at line 152 of file Title.php.

◆ $mTitleValue

TitleValue null Title::$mTitleValue = null
private

A corresponding TitleValue object.

Definition at line 180 of file Title.php.

◆ $mUrlform

string Title::$mUrlform = ''

URL-encoded form of the main part.

Definition at line 79 of file Title.php.

◆ $prefixedText

string null Title::$prefixedText = null

Text form including namespace/interwiki, initialised on demand.

Only public to share cache with TitleFormatter

Definition at line 149 of file Title.php.

◆ $titleCache

MapCacheLRU null Title::$titleCache = null
staticprivate

Definition at line 44 of file Title.php.

◆ CACHE_MAX

const Title::CACHE_MAX = 1000
private

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.

Definition at line 51 of file Title.php.

◆ GAID_FOR_UPDATE

const Title::GAID_FOR_UPDATE = 512

Used to be GAID_FOR_UPDATE define().

Used with getArticleID() and friends to use the master DB and inject it into link cache.

Deprecated:
since 1.34, use Title::READ_LATEST instead.

Definition at line 58 of file Title.php.

◆ NEW_CLONE

const Title::NEW_CLONE = 'clone'

Flag for use with factory methods like newFromLinkTarget() that have a $forceClone parameter.

If set, the method must return a new instance. Without this flag, some factory methods may return existing instances.

Since
1.33

Definition at line 67 of file Title.php.


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