acf
This commit is contained in:
63
plugins/system/acf/ACF/Helpers/Field.php
Normal file
63
plugins/system/acf/ACF/Helpers/Field.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2023 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
namespace ACF\Helpers;
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
class Field
|
||||
{
|
||||
/**
|
||||
* Returns the widget for which the ACF custom field is based upon.
|
||||
*
|
||||
* @param string $type
|
||||
* @param object $field_options
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function isWidgetBased($type = '', $field_options = [])
|
||||
{
|
||||
if (!$type)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$widget_name = self::getWidgetName($type);
|
||||
|
||||
$widget = \NRFramework\Widgets\Helper::find($widget_name);
|
||||
|
||||
if ($widget === 'Map' && !is_null($field_options->fieldparams))
|
||||
{
|
||||
return !empty($field_options->fieldparams['provider']) ? $field_options->fieldparams['provider'] : $widget;
|
||||
}
|
||||
|
||||
return $widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the widget name of an ACF custom field.
|
||||
*
|
||||
* @param string @type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getWidgetName($type = '')
|
||||
{
|
||||
// Remove the "acf" prefix
|
||||
$type = str_replace('acf', '', $type);
|
||||
|
||||
// Map for any ACF fields that do not automatically translate to a Widget
|
||||
$map = [
|
||||
'address' => 'MapAddress'
|
||||
];
|
||||
|
||||
// Transform a field type to its corresponding widget from the map
|
||||
return isset($map[$type]) ? $map[$type] : $type;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user