mirror of
				https://github.com/diocloid/LinkTitles.git
				synced 2025-10-22 05:42:32 +02:00 
			
		
		
		
	Merge pull request #72 from paladox/patch-2
Fix "Call to undefined method WikiPage::factory()"
This commit is contained in:
		@@ -238,11 +238,25 @@ class Source {
 | 
			
		||||
		if ( $this->page === null ) {
 | 
			
		||||
			// Access the property directly to avoid an infinite loop.
 | 
			
		||||
			if ( $this->title != null) {
 | 
			
		||||
				$this->page = \WikiPage::factory( $this->title );
 | 
			
		||||
				$this->page = static::getPage();
 | 
			
		||||
			} else {
 | 
			
		||||
				throw new Exception( 'Unable to create Page for this Source because Title is null.' );
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $this->page;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 	 * Obtain a WikiPage object.
 | 
			
		||||
	 * Workaround for MediaWiki 1.36+ which deprecated Wikipage::factory.
 | 
			
		||||
	 * @return WikiPage object
 | 
			
		||||
	 */
 | 
			
		||||
	private static function getPage() {
 | 
			
		||||
		if ( method_exists( MediaWikiServices::class, 'getWikiPageFactory' ) ) {
 | 
			
		||||
			$wikiPageFactory = MediaWikiServices::getInstance()->getWikiPageFactory();
 | 
			
		||||
			return $wikiPageFactory->newFromTitle( $this->title );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return \WikiPage::factory( $this->title );
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,8 @@
 | 
			
		||||
 */
 | 
			
		||||
namespace LinkTitles;
 | 
			
		||||
 | 
			
		||||
use MediaWiki\MediaWikiServices;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Represents a page that is a potential link target.
 | 
			
		||||
 */
 | 
			
		||||
@@ -189,7 +191,7 @@ class Target {
 | 
			
		||||
	 */
 | 
			
		||||
	public function getContent() {
 | 
			
		||||
		if ( $this->content === null ) {
 | 
			
		||||
			$this->content = \WikiPage::factory( $this->title )->getContent();
 | 
			
		||||
			$this->content = static::getPage();
 | 
			
		||||
		};
 | 
			
		||||
		return $this->content;
 | 
			
		||||
	}
 | 
			
		||||
@@ -242,4 +244,19 @@ class Target {
 | 
			
		||||
			return $redirectTitle && $redirectTitle->equals( $source->getTitle() );
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 	 * Obtain a page's content.
 | 
			
		||||
	 * Workaround for MediaWiki 1.36+ which deprecated Wikipage::factory.
 | 
			
		||||
	 * @return Content content object of the page
 | 
			
		||||
	 */
 | 
			
		||||
	private static function getPage() {
 | 
			
		||||
		if ( method_exists( MediaWikiServices::class, 'getWikiPageFactory' ) ) {
 | 
			
		||||
			$wikiPageFactory = MediaWikiServices::getInstance()->getWikiPageFactory();
 | 
			
		||||
			$page = $wikiPageFactory->newFromTitle( $this->title );
 | 
			
		||||
		} else {
 | 
			
		||||
			$page = \WikiPage::factory( $this->title );
 | 
			
		||||
		}
 | 
			
		||||
		return $page->getContent();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user