acf
This commit is contained in:
@ -0,0 +1,73 @@
|
||||
<?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\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
|
||||
extract($displayData);
|
||||
|
||||
if (!isset($choices) || !is_array($choices) || !count($choices))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$mode = isset($mode) ? $mode : 'svg';
|
||||
$gap = isset($gap) && !empty($gap) ? $gap : 'inherit';
|
||||
$class = isset($class) ? ' ' . $class : '';
|
||||
$columns = isset($columns) ? $columns : null;
|
||||
$id = isset($id) ? $id : null;
|
||||
|
||||
$class .= ' ' . $id;
|
||||
|
||||
if ($columns)
|
||||
{
|
||||
Factory::getDocument()->addStyleDeclaration('
|
||||
.tf-choiceselector-control.' . $id . ' {
|
||||
--columns: ' . $columns . ';
|
||||
--gap: ' . $gap . ';
|
||||
}'
|
||||
);
|
||||
}
|
||||
|
||||
HTMLHelper::stylesheet('plg_system_nrframework/controls/choiceselector.css', ['relative' => true, 'version' => 'auto']);
|
||||
?>
|
||||
<div class="tf-choiceselector-control mode-<?php echo $mode; ?><?php echo $class; ?>">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($choices as $key => $_value)
|
||||
{
|
||||
$_value = !is_string($_value) ? (array) $_value : $_value;
|
||||
|
||||
$id = $name . '_' . (empty($item_id) ? $key : $item_id);
|
||||
|
||||
$image = isset($_value['image']) ? $_value['image'] : false;
|
||||
$icon = isset($_value['icon']) ? $_value['icon'] : false;
|
||||
$label = isset($_value['label']) ? $_value['label'] : $_value;
|
||||
$pro = isset($_value['pro']) ? (bool) $_value['pro'] : false;
|
||||
?>
|
||||
<div class="tf-choiceselector-control--item<?php echo $pro ? ' pro' : ''; ?>"<?php echo $pro ? ' data-pro-only="' . Text::_($label) . '"' : ''; ?>>
|
||||
<?php echo $pro ? '<span class="pro">' . Text::_('NR_PRO') . '</span>' : ''; ?>
|
||||
|
||||
<input type="radio" id="fpf-control-input-item_<?php echo $id; ?>" name="<?php echo $name; ?>" value="<?php echo $key; ?>"<?php echo $value == $key ? ' checked="checked"' : ''; ?> />
|
||||
<label for="fpf-control-input-item_<?php echo $id; ?>">
|
||||
<?php echo $mode == 'svg' && !empty($icon) ? $icon : ''; ?>
|
||||
<span class="text"><?php echo Text::_($label); ?></span>
|
||||
</label>
|
||||
</div>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
65
plugins/system/nrframework/layouts/controls/dimension.php
Normal file
65
plugins/system/nrframework/layouts/controls/dimension.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?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\Language\Text;
|
||||
use Joomla\CMS\Layout\FileLayout;
|
||||
|
||||
extract($displayData);
|
||||
|
||||
$unit = isset($value['unit']) ? $value['unit'] : 'px';
|
||||
?>
|
||||
<div class="tf-dimension-control<?php echo $units ? ' has-units' : ''; ?>">
|
||||
<div class="tf-dimension-controls">
|
||||
<?php
|
||||
foreach ($dimensions as $key => $label)
|
||||
{
|
||||
$item_name = $name . '[' . $key . ']';
|
||||
$item_value = isset($value[$key]) ? $value[$key] : '';
|
||||
$is_linked = isset($value['linked']) ? $value['linked'] : $linked;
|
||||
$item_id = rtrim(str_replace(['][', '[', ']'], '_', $item_name), '_');
|
||||
?>
|
||||
<div class="tf-dimension-controls--item form-control<?php echo $item_value !== '' ? ' has-value' : ''; ?>">
|
||||
<input type="number" value="<?php echo $item_value; ?>" min="0" max="999" class="tf-dimension-controls--item--value" placeholder="<?php echo Text::_($label); ?>" id="<?php echo $item_id; ?>" name="<?php echo $item_name; ?>" />
|
||||
<?php
|
||||
if ($units)
|
||||
{
|
||||
$layout = new FileLayout('selector', JPATH_PLUGINS . '/system/nrframework/layouts/controls/unit');
|
||||
echo $layout->render([
|
||||
'name' => $name,
|
||||
'units' => $units,
|
||||
'unit' => $unit,
|
||||
'hide_input' => true
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
$layout = new FileLayout('input_value', JPATH_PLUGINS . '/system/nrframework/layouts/controls/unit');
|
||||
echo $layout->render([
|
||||
'name' => $name,
|
||||
'unit' => $unit
|
||||
]);
|
||||
|
||||
$layout = new FileLayout('linked', JPATH_PLUGINS . '/system/nrframework/layouts/controls/dimension');
|
||||
echo $layout->render([
|
||||
'dimension_control_locks' => $dimension_control_locks,
|
||||
'name' => $name,
|
||||
'is_linked' => $is_linked
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2018 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
extract($displayData);
|
||||
|
||||
if (!$dimension_control_locks)
|
||||
{
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<div class="tf-dimension-control--locks" title="<?php echo Text::_('NR_LINK_UNLINK_VALUES_TOGETHER'); ?>">
|
||||
<svg class="tf-dimension-control--locks--item<?php echo $is_linked ? ' active' : ''; ?>" data-type="lock" width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.5 15.875C1.0875 15.875 0.734375 15.7281 0.440625 15.4344C0.146875 15.1406 0 14.7875 0 14.375V6.875C0 6.4625 0.146875 6.10938 0.440625 5.81563C0.734375 5.52187 1.0875 5.375 1.5 5.375H2.25V3.875C2.25 2.8375 2.61563 1.95312 3.34688 1.22187C4.07812 0.490625 4.9625 0.125 6 0.125C7.0375 0.125 7.92188 0.490625 8.65313 1.22187C9.38438 1.95312 9.75 2.8375 9.75 3.875V5.375H10.5C10.9125 5.375 11.2656 5.52187 11.5594 5.81563C11.8531 6.10938 12 6.4625 12 6.875V14.375C12 14.7875 11.8531 15.1406 11.5594 15.4344C11.2656 15.7281 10.9125 15.875 10.5 15.875H1.5ZM1.5 14.375H10.5V6.875H1.5V14.375ZM6 12.125C6.4125 12.125 6.76563 11.9781 7.05938 11.6844C7.35313 11.3906 7.5 11.0375 7.5 10.625C7.5 10.2125 7.35313 9.85938 7.05938 9.56563C6.76563 9.27188 6.4125 9.125 6 9.125C5.5875 9.125 5.23438 9.27188 4.94063 9.56563C4.64687 9.85938 4.5 10.2125 4.5 10.625C4.5 11.0375 4.64687 11.3906 4.94063 11.6844C5.23438 11.9781 5.5875 12.125 6 12.125ZM3.75 5.375H8.25V3.875C8.25 3.25 8.03125 2.71875 7.59375 2.28125C7.15625 1.84375 6.625 1.625 6 1.625C5.375 1.625 4.84375 1.84375 4.40625 2.28125C3.96875 2.71875 3.75 3.25 3.75 3.875V5.375Z" fill="currentColor" />
|
||||
</svg>
|
||||
<svg class="tf-dimension-control--locks--item<?php echo !$is_linked ? ' active' : ''; ?>" data-type="unlock" width="12" height="16" viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.5 5.375H8.25V3.875C8.25 3.25 8.03125 2.71875 7.59375 2.28125C7.15625 1.84375 6.625 1.625 6 1.625C5.375 1.625 4.84375 1.84375 4.40625 2.28125C3.96875 2.71875 3.75 3.25 3.75 3.875H2.25C2.25 2.8375 2.61563 1.95312 3.34688 1.22187C4.07812 0.490625 4.9625 0.125 6 0.125C7.0375 0.125 7.92188 0.490625 8.65313 1.22187C9.38438 1.95312 9.75 2.8375 9.75 3.875V5.375H10.5C10.9125 5.375 11.2656 5.52187 11.5594 5.81563C11.8531 6.10938 12 6.4625 12 6.875V14.375C12 14.7875 11.8531 15.1406 11.5594 15.4344C11.2656 15.7281 10.9125 15.875 10.5 15.875H1.5C1.0875 15.875 0.734375 15.7281 0.440625 15.4344C0.146875 15.1406 0 14.7875 0 14.375V6.875C0 6.4625 0.146875 6.10938 0.440625 5.81563C0.734375 5.52187 1.0875 5.375 1.5 5.375ZM1.5 14.375H10.5V6.875H1.5V14.375ZM6 12.125C6.4125 12.125 6.76563 11.9781 7.05938 11.6844C7.35313 11.3906 7.5 11.0375 7.5 10.625C7.5 10.2125 7.35313 9.85938 7.05938 9.56563C6.76563 9.27188 6.4125 9.125 6 9.125C5.5875 9.125 5.23438 9.27188 4.94063 9.56563C4.64687 9.85938 4.5 10.2125 4.5 10.625C4.5 11.0375 4.64687 11.3906 4.94063 11.6844C5.23438 11.9781 5.5875 12.125 6 12.125Z" fill="currentColor" />
|
||||
</svg>
|
||||
</div>
|
||||
<input type="hidden" class="tf-dimension-control-link-value" value="<?php echo $is_linked ? '1' : '0'; ?>" name="<?php echo $name; ?>[linked]" />
|
||||
78
plugins/system/nrframework/layouts/controls/phonecontrol.php
Normal file
78
plugins/system/nrframework/layouts/controls/phonecontrol.php
Normal file
@ -0,0 +1,78 @@
|
||||
<?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>
|
||||
28
plugins/system/nrframework/layouts/controls/unit.php
Normal file
28
plugins/system/nrframework/layouts/controls/unit.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2018 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Layout\FileLayout;
|
||||
|
||||
extract($displayData);
|
||||
?>
|
||||
<div class="tf-unit-control form-control<?php echo isset($wrapper_class) && !empty($wrapper_class) ? ' ' . $wrapper_class : ''; ?>" data-hint="<?php echo $hint; ?>">
|
||||
<?php
|
||||
echo $input;
|
||||
if (count($units) > 0)
|
||||
{
|
||||
$layout = new FileLayout('selector', JPATH_PLUGINS . '/system/nrframework/layouts/controls/unit');
|
||||
echo $layout->render($displayData);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2018 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
extract($displayData);
|
||||
?>
|
||||
<input type="hidden" name="<?php echo $name; ?>[unit]" class="tf-unit-control-unit-value" value="<?php echo $unit; ?>" />
|
||||
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2018 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Layout\FileLayout;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
extract($displayData);
|
||||
|
||||
HTMLHelper::stylesheet('plg_system_nrframework/controls/unit_selector.css', ['relative' => true, 'version' => 'auto']);
|
||||
|
||||
$multipleUnits = count($units) > 1;
|
||||
|
||||
if ($multipleUnits)
|
||||
{
|
||||
HTMLHelper::script('plg_system_nrframework/controls/unit_selector.js', ['relative' => true, 'version' => 'auto']);
|
||||
}
|
||||
?>
|
||||
<div class="tf-unit-control-dropdown<?php echo $multipleUnits ? ' has-multiple-units' : ''; ?><?php echo isset($dropdown_class) && !empty($dropdown_class) ? ' ' . $dropdown_class : ''; ?>">
|
||||
<div class="tf-unit-control-dropdown--opener"<?php echo count($units) > 1 ? ' title="' . Text::_('NR_SELECT_UNIT') . '"' : ''; ?>>
|
||||
<span class="tf-unit-control-dropdown--opener--selected--unit"><?php echo $unit; ?></span>
|
||||
<?php if ($multipleUnits): ?>
|
||||
<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 5.46666L0 1.46666L0.933333 0.533325L4 3.59999L7.06667 0.533325L8 1.46666L4 5.46666Z" fill="currentColor" /></svg>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if ($multipleUnits): ?>
|
||||
<ul class="tf-unit-control-dropdown--drop">
|
||||
<?php foreach ($units as $unit_key): ?>
|
||||
<li class="tf-unit-control-dropdown--drop--item<?php echo $unit_key === $unit ? ' selected' : ''; ?>"><?php echo $unit_key; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
if (!isset($hide_input))
|
||||
{
|
||||
$layout = new FileLayout('input_value', JPATH_PLUGINS . '/system/nrframework/layouts/controls/unit');
|
||||
echo $layout->render($displayData);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
Reference in New Issue
Block a user