web/wp-content/plugins/acf-extended/includes/acfe-screen-functions.php (78 lines of code) (raw):
<?php
if(!defined('ABSPATH')){
exit;
}
/**
* acfe_is_admin
*
* Check if current screen is back-end
*
* @return bool
*/
function acfe_is_admin(){
return !acfe_is_front();
}
/**
* acfe_is_front
*
* Check if current screen is front-end
*
* @return bool
*/
function acfe_is_front(){
// todo: use acf_get_form_data('screen')
if(!is_admin() || (is_admin() && wp_doing_ajax() && (acf_maybe_get_POST('_acf_screen') === 'acfe_form' || acf_maybe_get_POST('_acf_screen') === 'acf_form'))){
return true;
}
return false;
}
/**
* acfe_get_acf_screen_id
*
* Check if the current admin screen is ACF Field Group UI, ACF Tools, ACF Updates screens etc...
*
* @param string $page
*
* @return string
*/
function acfe_get_acf_screen_id($page = ''){
$prefix = sanitize_title(__("Custom Fields", 'acf'));
if(empty($page)){
return $prefix;
}
return "{$prefix}_page_{$page}";
}
/**
* acfe_is_admin_screen
*
* Check if the current admin screen is ACF Field Group UI, ACF tools, ACF Updates screens etc...
*
* @param false $modules
*
* @return bool
*/
function acfe_is_admin_screen($modules = false){
// global
global $field_group;
// global field group exists
if($field_group !== null){
return true;
}
// get current_screen
if(function_exists('get_current_screen')){
$screen = get_current_screen();
if($screen){
$post_types = array('acf-field-group');
$is_category = false;
// include acfe modules
if($modules){
// reserved post types
$post_types = array_merge($post_types, acfe_get_setting('reserved_post_types', array()));
// field group category
$is_category = $screen->post_type === 'post' && $screen->taxonomy === 'acf-field-group-category';
}
if(in_array($screen->post_type, $post_types) || $is_category){
return true;
}
}
}
return false;
}
/**
* acfe_match_location_rules
*
* Match screen data against an array of location
*
* @param $location
* @param $screen
*
* @return bool
*/
function acfe_match_location_rules($location, $screen){
// Loop through location groups.
foreach($location as $group){
// ignore group if no rules.
if(empty($group)){
continue;
}
// Loop over rules and determine if all rules match.
$match_group = true;
foreach($group as $rule){
if(!acf_match_location_rule($rule, $screen, array())){
$match_group = false;
break;
}
}
// Show the field group
if($match_group){
return true;
}
}
return false;
}
/**
* acfe_is_dynamic_preview
*
* Check if currently in ACFE FlexibleContent Preview or ACF Block Type Preview
*
* @return bool
*/
function acfe_is_dynamic_preview(){
// vars
global $is_preview;
$return = false;
// flexible content
if(isset($is_preview) && $is_preview){
$return = true;
// block type
}elseif(wp_doing_ajax() && acf_maybe_get_POST('query')){
$query = acf_maybe_get_POST('query');
if(acf_maybe_get($query, 'preview')){
$return = true;
}
}
return apply_filters('acfe/is_preview', $return);
}
/**
* acfe_is_block_editor
*
* An enhanced version of acf_is_block_editor that also check if currently in a block type
*
* @return bool
*/
function acfe_is_block_editor(){
// check block editor screen or ajax fetch (block edit mode)
return acf_is_block_editor() || acf_maybe_get_POST('action') === 'acf/ajax/fetch-block';
}
/**
* acfe_is_gutenberg
*
* Check if current screen is block editor
*
* @return bool
* @deprecated
*/
function acfe_is_gutenberg(){
return acfe_is_block_editor();
}