Files
conservatorio-tomadini/plugins/system/acf/ACF/Helpers/Field.php
2024-12-31 11:07:09 +01:00

63 lines
1.4 KiB
PHP

<?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;
}
}