+ /**
+ * Is this an article that is a redirect page?
+ * Uses link cache, adding it if necessary
+ * @param int $flags a bit field; may be GAID_FOR_UPDATE to select for update
+ * @return bool
+ */
+ public function isRedirect( $flags = 0 ) {
+ if( !is_null($this->mRedirect) )
+ return $this->mRedirect;
+ # Zero for special pages.
+ # Also, calling getArticleID() loads the field from cache!
+ if( !$this->getArticleID($flags) || $this->getNamespace() == NS_SPECIAL ) {
+ return false;
+ }
+ $linkCache = LinkCache::singleton();
+ $this->mRedirect = (bool)$linkCache->getGoodLinkFieldObj( $this, 'redirect' );
+
+ return $this->mRedirect;
+ }
+
+ /**
+ * What is the length of this page?
+ * Uses link cache, adding it if necessary
+ * @param int $flags a bit field; may be GAID_FOR_UPDATE to select for update
+ * @return bool
+ */
+ public function getLength( $flags = 0 ) {
+ if( $this->mLength != -1 )
+ return $this->mLength;
+ # Zero for special pages.
+ # Also, calling getArticleID() loads the field from cache!
+ if( !$this->getArticleID($flags) || $this->getNamespace() == NS_SPECIAL ) {
+ return 0;
+ }
+ $linkCache = LinkCache::singleton();
+ $this->mLength = intval( $linkCache->getGoodLinkFieldObj( $this, 'length' ) );
+
+ return $this->mLength;
+ }
+