手册:WikiPage.php

This page is a translated version of the page Manual:WikiPage.php and the translation is 59% complete.
Outdated translations are marked like this.

WikiPage类表示MediaWiki页面及其历史。 它封装了对存储在数据库中的页面信息的访问,并允许访问诸如页面文本(Wikitext格式)、标志等属性。

理论上,Wikipage应该是页面的模型对象,而Article 类则处理业务和表示功能。

  • 如果你有一个文章对象,你可以使用Article::getPage()获得一个Wikipage对象。
  • To request the WikiPage object from the current context, use RequestContext::getWikiPage().

创建新Wikipage对象

Use a WikiPageFactory to create new WikiPage objects.

可用方法

  • getContent( $audience ): 获取最新版本的内容,其中$audience是以下之一:
    1. RevisionRecord::FOR_PUBLIC - 向所有用户显示
    2. RevisionRecord::FOR_THIS_USER - 只显示给$wgUser
    3. RevisionRecord::RAW - 获取文本,而不考虑权限
  • 要获取最新版本的文本,请使用:
$text = $wikiPage->getContent( RevisionRecord::RAW )->getText();
  • convertSelectType() - convert 'fromdb', 'fromdbmaster' and 'forupdate' to READ_* constants.
  • getActionOverrides() - compare: ContentHandler::getActionOverrides()
  • clear() - clear object.
  • clearPreparedEdit()
  • pageDataFromTitle() - fetch a page record matching the Title object's namespace and title using a sanitized title string
  • pageDataFromId()
  • loadPageData() - load from a given source by title
  • wasLoadedFrom() - check if page data was loaded
  • loadFromRow() - load object from database row
  • exists() - check if given page exists
  • canExist()
  • hasViewableContent()
  • isNew() - check if the page has only one revision
  • checkTouched() - check if page exists and is not a redirect. Loads page_touched
  • isSamePageAs()

Accessors and checks

  • getId() - get the page ID
  • getTitle() - 或该文章的标题对象。
  • get data from the Title object:
    • getNamespace() - returns an integer
    • getDBkey()
    • getWikiId()
  • getLanguage() - get language code for the page
  • getContentHandler() - return ContentHandler instance to be used to deal with the content of this WikiPage.
  • getContentModel() - return the page's content model id (see the CONTENT_MODEL_XXX constants).
  • getRevisionRecord() - get latest RevisionRecord
  • getContent() - get the content of the current revision.
  • Get data from the page table
    • getQueryInfo() - return the tables, fields, and join conditions to be selected to create a new page object.
    • getTouched() - get the page_touched field
    • getLinksTimestamp() - get page_links_updated field
    • getLatest() - get page_latest field
    • getPageIsRedirectField() - see below
  • getTimestamp() - get timestamp of latest revision. See also setTimestamp().
  • Relating to contributing users:
    • getContributors() - get a list of users who have edited this article, excluding the user who made the last article revision
    • getUser() - get User ID of the user who made the last article revision.
    • getCreator() - get User ID of the user who created the page
  • getUserText()
  • getComment()
  • getMinorEdit()
  • isCountable()
  • Relating to categories
    • getCategories() - get a list of categories this page is a member of.
    • getHiddenCategories()
  • Relating to redirects
    • isRedirect()
    • getPageIsRedirectField() - get the value of the page_is_redirect field in the database
    • followRedirect() - get the Title object or URL this page redirects to.
    • getRedirectURL()
  • Relating to parsing:
    • getParserOutput() - get a ParserOutput for the given ParserOptions and revision ID.
    • shouldCheckParserCache()
  • Relating to the possibility of non-local databases
    • isLocal() - check if content shown on this page comes from the local DB.
    • getWikiDisplayName()
    • getSourceURL()
  • getMutableCacheKeys()

Setters, page actions and checks

  • setTimestamp()
  • Relating to redirects:
    • insertRedirect()
    • insertRedirectEntry()
  • doViewUpdates()
  • doPurge() - run the actions of purging a page.
  • insertOn() - insert a new empty page record for this article. Must be followed up by creating a revision and running $this->updateRevisionOn().
  • updateRevisionOn() - update the page record to point to a newly saved revision.
  • Relating to page sections:
    • supportsSections()
    • replaceSectionAtRev()
  • newPageUpdater() - return PageUpdater for creating the page or creating new page revisions.
    • makeParserOptions() - get parser options suitable for rendering the primary article wikitext.
  • updateParserCache() - update the parser cache. Likely to become deprecated.
  • doSecondaryDataUpdates() - likely to become deprecated.
  • doUpdateRestrictions() - update the article's restriction field, and leave a log entry. This works for protection both existing and non-existing pages.
  • getCurrentUpdate() - get the state of an ongoing update, shortly before or just after it is saved to the database (since 1.38). Generally to be avoided.
  • Relating to page protection:
    • insertNullProtectionRevision() - imsert a new null revision for this page.
    • protectDescription() - build the description to serve as comment for the edit.
    • protectDescriptionLog() - build the description to serve as comment for the log entry.
  • lockAndGetLatest() - Lock the page row for this title, namespace and id and return page_latest (or 0).
  • getAutoDeleteReason() - auto-generates a deletion reason
  • updateCategoryCounts() - should only be called from deferred updates or jobs to avoid contention.
  • toPageRecord() - get the page represented by this WikiPage as a PageStoreRecord.
  • magic methods: __clone(), __wakeup(), __toString()

Hook-like methods

  • onArticleCreate(), onArticleDelete() and onArticleEdit()

Deprecated

  • factory(), newFromID() and newFromRow() - methods for creating a WikiPage object - have been deprecated in favour of methods provided by WikiPageFactory.
  • getRedirectTarget()
  • replaceSectionContent()
  • checkFlags()
  • doUserEditContent()
  • doEditUpdates()
  • doDeleteArticleReal()
  • doDeleteArticleBatched()
  • doDeleteUpdates()
  • getDeletionUpdates()
  • hasDifferencesOutsideMainSlot()
  • prepareContentForEdit() - prepare the content which is about to be saved.
  • isBatchedDelete() - checks if deletion of this page would be batched. See now DeletePage::isBatchedDelete().

有关方法的完整列表,请参阅此处(MediaWiki开发文档)

另见