79 lines
3.0 KiB
PHP
79 lines
3.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @package Advanced Custom Fields
|
|
* @version 2.8.8 Pro
|
|
*
|
|
* @author Tassos Marinos <info@tassos.gr>
|
|
* @link https://www.tassos.gr
|
|
* @copyright Copyright © 2024 Tassos All Rights Reserved
|
|
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
|
*/
|
|
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
use Joomla\CMS\Uri\Uri;
|
|
use Joomla\CMS\Language\Text;
|
|
|
|
extract($displayData);
|
|
|
|
// Get all countries data
|
|
$countries = \NRFramework\Countries::getCountriesData();
|
|
|
|
// Find the default country
|
|
$default_country_code = isset($value['code']) && !empty($value['code']) && isset($countries[$value['code']]) ? $value['code'] : 'AF';
|
|
|
|
// Find the default calling code
|
|
$default_calling_code = '+' . $countries[$default_country_code]['calling_code'];
|
|
|
|
$flag_base_url = implode('/', [rtrim(Uri::root(), '/'), 'media', 'plg_system_nrframework', 'img', 'flags']);
|
|
|
|
$placeholder = !empty($placeholder) ? $placeholder : '_ _ _ _ _ _';
|
|
|
|
if ($inputmask)
|
|
{
|
|
$placeholder = '';
|
|
}
|
|
|
|
?>
|
|
<div class="tf-phone-control<?php echo $class ? ' ' . $class : ''; ?>"<?php echo $readonly ? ' readonly' : ''; ?> data-flags-base-url="<?php echo $flag_base_url; ?>" data-id="<?php echo $id; ?>" data-required="<?php echo $required ? 'true' : 'false'; ?>">
|
|
<?php if ($required && (empty($value['code']) || empty($value['value']))) { ?>
|
|
<input type="hidden" required class="required tf-phone-control--validator" id="<?php echo $id; ?>"/>
|
|
<?php } ?>
|
|
|
|
<div class="tf-phone-control--skeleton tf-phone-control--flag">
|
|
<img width="27" height="13.5" src="<?php echo implode('/', [$flag_base_url, strtolower($default_country_code) . '.png']); ?>" alt="<?php echo $countries[$default_country_code]['name']; ?>" />
|
|
<svg class="tf-arrow" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" width="19"><path fill="currentColor" d="M480-333 240-573l51-51 189 189 189-189 51 51-240 240Z"/></svg>
|
|
<span class="tf-flag-calling-code"><?php echo $default_calling_code; ?></span>
|
|
</div>
|
|
|
|
<select
|
|
class="tf-phone-control--flag--selector noChosen"
|
|
name="<?php echo $name ?>[code]"
|
|
<?php if ($aria_label): ?>
|
|
aria-label="<?php echo htmlspecialchars($aria_label, ENT_COMPAT, 'UTF-8'); ?>"
|
|
<?php endif; ?>
|
|
>
|
|
<?php
|
|
foreach ($countries as $key => $country)
|
|
{
|
|
$selected = isset($value['code']) && $value['code'] === $key;
|
|
?><option value="<?php echo $key; ?>" <?php echo $selected ? ' selected' : ''; ?>><?php echo $country['name']; ?></option><?php
|
|
}
|
|
?>
|
|
</select>
|
|
|
|
<input
|
|
type="tel"
|
|
class="tf-phone-control--number<?php echo !empty($input_class) ? ' ' . $input_class : ''; ?>"
|
|
id="<?php echo $id; ?>"
|
|
<?php echo $inputmask ? ' data-imask="' . $inputmask . '"' : ''; ?>
|
|
<?php echo $required ? ' required' : ''; ?>
|
|
<?php echo $readonly ? ' readonly' : ''; ?>
|
|
<?php echo $browserautocomplete ? ' autocomplete="off"' : ''; ?>
|
|
placeholder="<?php echo $placeholder ?>"
|
|
value="<?php echo isset($value['value']) ? $value['value'] : ''; ?>"
|
|
name="<?php echo $name; ?>[value]"
|
|
/>
|
|
</div>
|