1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-08 15:57:01 +02:00

Add wirePageId() and pageId() functions per processwire/processwire-issues#896

This commit is contained in:
Ryan Cramer
2023-08-04 10:33:50 -04:00
parent 13114afe08
commit d6a0df74d6
2 changed files with 65 additions and 33 deletions

View File

@@ -100,6 +100,23 @@ function page($key = '', $value = null) {
return wirePage($key, $value);
}
/**
* Return id for given page or false if its not a page
*
* Returns positive int (page id) for page that exists, 0 for NullPage,
* or false if given $value is not a Page.
*
* #pw-group-Functions-API
*
* @param Page|mixed $value
* @return int|false
* @since 3.0.224
*
*/
function pageId($value) {
return wirePageId($value);
}
/**
* Access a ProcessWire configuration setting ($config API variable as a function)
*
@@ -680,4 +697,3 @@ function region($key = '', $value = null) {
function setting($name = '', $value = null) {
return wireSetting($name, $value);
}

View File

@@ -132,6 +132,21 @@ function wirePage($key = '', $value = null) {
return _wireDataAPI('page', $key, $value);
}
/**
* Return id for given page or false if its not a page
*
* Returns positive int (page id) for page that exists, 0 for NullPage,
* or false if given $value is not a Page.
*
* @param Page|mixed $value
* @return int|false
* @since 3.0.224
*
*/
function wirePageId($value) {
return ($value instanceof Page ? $value->id : false);
}
/**
* Access the $config API variable as a function
*
@@ -166,9 +181,11 @@ function wireConfig($key = '', $value = null) {
*
*/
function wireModules($name = '') {
/** @var Modules $modules */
$modules = wire('modules');
return strlen($name) ? $modules->getModule($name) : $modules;
$name = (string) $name;
$modules = wire()->modules;
/** @var Modules|Module|ConfigurableModule|null $value */
$value = strlen($name) ? $modules->getModule($name) : $modules;
return $value;
}
/**
@@ -189,12 +206,14 @@ function wireUser($key = '', $value = null) {
* See the pages() function for full usage details.
*
* @param string|array $selector Optional selector to send to find() or get()
* @return Users|PageArray|User|mixed
* @return Users|PageArray|User|NullPage|mixed
* @see pages()
*
*/
function wireUsers($selector = '') {
return _wirePagesAPI('users', $selector);
/** @var Users|PageArray|User|NullPage|mixed $value */
$value = _wirePagesAPI('users', $selector);
return $value;
}
/**
@@ -217,8 +236,7 @@ function wireSession($key = '', $value = null) {
*
*/
function wireFields($name = '') {
/** @var Fields $fields */
$fields = wire('fields');
$fields = wire()->fields;
return strlen($name) ? $fields->get($name) : $fields;
}
@@ -230,8 +248,7 @@ function wireFields($name = '') {
*
*/
function wireTemplates($name = '') {
/** @var Templates $templates */
$templates = wire('templates');
$templates = wire()->templates;
return strlen($name) ? $templates->get($name) : $templates;
}
@@ -242,7 +259,7 @@ function wireTemplates($name = '') {
*
*/
function wireDatabase() {
return wire('database');
return wire()->database;
}
/**
@@ -255,7 +272,9 @@ function wireDatabase() {
*
*/
function wirePermissions($selector = '') {
return _wirePagesAPI('permissions', $selector);
/** @var Permissions|Permission|PageArray|null|NullPage $value */
$value = _wirePagesAPI('permissions', $selector);
return $value;
}
/**
@@ -268,7 +287,9 @@ function wirePermissions($selector = '') {
*
*/
function wireRoles($selector = '') {
return _wirePagesAPI('roles', $selector);
/** @var Roles|Role|PageArray|null|NullPage $value */
$value = _wirePagesAPI('roles', $selector);
return $value;
}
/**
@@ -286,7 +307,8 @@ function wireRoles($selector = '') {
*
*/
function wireSanitizer($name = '', $value = '') {
$sanitizer = wire('sanitizer');
$name = (string) $name;
$sanitizer = wire()->sanitizer;
return strlen($name) ? $sanitizer->$name($value) : $sanitizer;
}
@@ -306,8 +328,7 @@ function wireSanitizer($name = '', $value = '') {
*
*/
function wireDatetime($format = '', $value = '') {
/** @var WireDateTime $datetime */
$datetime = wire('datetime');
$datetime = wire()->datetime;
return strlen($format) ? $datetime->formatDate($value ? $value : time(), $format) : $datetime;
}
@@ -318,7 +339,7 @@ function wireDatetime($format = '', $value = '') {
*
*/
function wireFiles() {
return wire('files');
return wire()->files;
}
/**
@@ -335,9 +356,7 @@ function wireFiles() {
*
*/
function wireCache($name = '', $expire = null, $func = null) {
/** @var WireCache $cache */
$cache = wire('cache');
return strlen($name) ? $cache->get($name, $expire, $func) : $cache;
return strlen($name) ? wire()->cache->get($name, $expire, $func) : wire()->cache;
}
/**
@@ -357,8 +376,7 @@ function wireCache($name = '', $expire = null, $func = null) {
*
*/
function wireLanguages($name = '') {
/** @var Languages $languages */
$languages = wire('languages');
$languages = wire()->languages;
if(!$languages) return null;
if(strlen($name)) return $languages->get($name);
return $languages;
@@ -392,8 +410,7 @@ function wireLanguages($name = '') {
*
*/
function wireInput($type = '', $key = '', $sanitizer = null, $fallback = null) {
/** @var WireInput $input */
$input = wire('input');
$input = wire()->input;
if(!strlen($type)) return $input;
$type = strtolower($type);
if(!strlen($key)) return $input->$type;
@@ -458,8 +475,7 @@ function wireInputCookie($key = '', $sanitizer = null, $fallback = null) {
*
*/
function wireLog($logName = '', $message = '') {
/** @var WireLog $log */
$log = wire('log');
$log = wire()->log;
if(strlen($message)) {
if(!strlen($logName)) $logName = 'unknown';
return $log->save($logName, $message);
@@ -477,13 +493,14 @@ function wireLog($logName = '', $message = '') {
*
*/
function wireProfiler($name = null, $source = null, $data = array()) {
$profiler = wire('profiler');
$profiler = wire()->profiler;
if(is_null($name)) return $profiler;
if(!$profiler) return null;
if(is_string($name)) {
return $profiler->start($name, $source, $data);
} else {
return $profiler->stop($name);
$profiler->stop($name);
return null;
}
}
@@ -495,8 +512,8 @@ function wireProfiler($name = null, $source = null, $data = array()) {
*
*/
function wireUrls($key = '') {
if(empty($key)) return wire('config')->urls;
return wire('config')->urls($key);
if(empty($key)) return wire()->config->urls;
return wire()->config->urls($key);
}
/**
@@ -507,8 +524,8 @@ function wireUrls($key = '') {
*
*/
function wirePaths($key = '') {
if(empty($key)) return wire('config')->paths;
return wire('config')->paths($key);
if(empty($key)) return wire()->config->paths;
return wire()->config->paths($key);
}
/**
@@ -594,4 +611,3 @@ function _wireFunctionsAPI() {
);
return $names;
}