196 lines
3.6 KiB
PHP
196 lines
3.6 KiB
PHP
|
<?php namespace ProcessWire;
|
||
|
|
||
|
/**
|
||
|
* ProcessWire NullPage
|
||
|
*
|
||
|
* #pw-summary NullPage is a type of Page object returned by many API methods to indicate a non-match.
|
||
|
* #pw-body =
|
||
|
* The simplest way to detect a NullPage is typically by checking the value of the `$page->id` property.
|
||
|
* If it happens to be 0 then for most practical purposes, you have a NullPage. A NullPage object
|
||
|
* has all of the same methods and properties as a regular `Page` but there's not much point in
|
||
|
* calling upon them since they will always be empty.
|
||
|
* ~~~~~
|
||
|
* $item = $pages->get("featured=1");
|
||
|
*
|
||
|
* if(!$item->id) {
|
||
|
* // this is a NullPage
|
||
|
* }
|
||
|
*
|
||
|
* if($item instanceof NullPage) {
|
||
|
* // this is a NullPage
|
||
|
* }
|
||
|
* ~~~~~
|
||
|
* #pw-body
|
||
|
*
|
||
|
* Placeholder class for non-existant and non-saveable Page.
|
||
|
* Many API functions return a NullPage to indicate no match.
|
||
|
*
|
||
|
* ProcessWire 3.x, Copyright 2023 by Ryan Cramer
|
||
|
* https://processwire.com
|
||
|
*
|
||
|
* @property int $id The id property will always be 0 for a NullPage.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
class NullPage extends Page implements WireNull {
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return string
|
||
|
*
|
||
|
*/
|
||
|
public function path() { return ''; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param array $options
|
||
|
* @return string
|
||
|
*
|
||
|
*/
|
||
|
public function url($options = array()) { return ''; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $key
|
||
|
* @param mixed $value
|
||
|
* @return $this
|
||
|
*
|
||
|
*/
|
||
|
public function set($key, $value) { return parent::setForced($key, $value); }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $selector
|
||
|
* @return null
|
||
|
*
|
||
|
*/
|
||
|
public function parent($selector = '') { return null; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $selector
|
||
|
* @return PageArray
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function parents($selector = '') {
|
||
|
return $this->wire()->pages->newPageArray();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return string
|
||
|
*
|
||
|
*/
|
||
|
public function __toString() { return ""; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return bool
|
||
|
*
|
||
|
*/
|
||
|
public function isHidden() { return true; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return bool
|
||
|
*
|
||
|
*/
|
||
|
public function isNew() { return false; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return null
|
||
|
*
|
||
|
*/
|
||
|
public function filesManager() { return null; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @return NullPage
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function ___rootParent() {
|
||
|
return $this->wire()->pages->newNullPage();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $selector
|
||
|
* @param bool $includeCurrent
|
||
|
* @return PageArray
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function siblings($selector = '', $includeCurrent = true) {
|
||
|
return $this->wire()->pages->newPageArray();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $selector
|
||
|
* @param array $options
|
||
|
* @return PageArray
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function children($selector = '', $options = array()) {
|
||
|
return $this->wire()->pages->newPageArray();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $type
|
||
|
* @return NullPage
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function getAccessParent($type = 'view') {
|
||
|
return $this->wire()->pages->newNullPage();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $type
|
||
|
* @return PageArray
|
||
|
* @throws WireException
|
||
|
*
|
||
|
*/
|
||
|
public function getAccessRoles($type = 'view') {
|
||
|
return $this->wire()->pages->newPageArray();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param int|Role|string $role
|
||
|
* @param string $type
|
||
|
* @return bool
|
||
|
*
|
||
|
*/
|
||
|
public function hasAccessRole($role, $type = 'view') { return false; }
|
||
|
|
||
|
/**
|
||
|
* #pw-internal
|
||
|
*
|
||
|
* @param string $what
|
||
|
* @return bool
|
||
|
*
|
||
|
*/
|
||
|
public function isChanged($what = '') { return false; }
|
||
|
}
|