acf
This commit is contained in:
96
plugins/system/nrframework/fields/tfecommrangefield.php
Normal file
96
plugins/system/nrframework/fields/tfecommrangefield.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @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
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
require_once dirname(__DIR__) . '/helpers/field.php';
|
||||
|
||||
class JFormFieldTFEcommRangeField extends NRFormField
|
||||
{
|
||||
/**
|
||||
* Method to render the input field
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getInput()
|
||||
{
|
||||
$prefixLabel = isset($this->element['prefixLabel']) ? (string) $this->element['prefixLabel'] : false;
|
||||
$mainName = (string) $this->element['name'];
|
||||
|
||||
$showIsAnyOption = isset($this->element['showIsAnyOption']) ? (string) $this->element['showIsAnyOption'] === 'true' : false;
|
||||
$isAnyOption = $showIsAnyOption ? '<option value="any">NR_ANY</option>' : '';
|
||||
|
||||
$showIsNotEqualOption = isset($this->element['showIsNotEqualOption']) ? (string) $this->element['showIsNotEqualOption'] === 'true' : false;
|
||||
$isNotEqualOption = $showIsNotEqualOption ? '<option value="not_equal">NR_NOT_EQUAL_TO</option>' : '';
|
||||
|
||||
$xml = new SimpleXMLElement('
|
||||
<fields name="' . $mainName . '">
|
||||
<fieldset name="' . $mainName . '">
|
||||
<field name="operator" type="comparator"
|
||||
hiddenLabel="true"
|
||||
class="noChosen"
|
||||
default="any">
|
||||
' . $isAnyOption . '
|
||||
<option value="equal">NR_EQUAL_TO</option>
|
||||
' . $isNotEqualOption . '
|
||||
<option value="less_than">NR_FEWER_THAN</option>
|
||||
<option value="less_than_or_equal_to">NR_FEWER_THAN_OR_EQUAL_TO</option>
|
||||
<option value="greater_than">NR_GREATER_THAN</option>
|
||||
<option value="greater_than_or_equal_to">NR_GREATER_THAN_OR_EQUAL_TO</option>
|
||||
<option value="range">NR_BETWEEN</option>
|
||||
</field>
|
||||
<field name="value" type="number"
|
||||
hiddenLabel="true"
|
||||
class="input-small"
|
||||
default="1"
|
||||
hint="1"
|
||||
min="1"
|
||||
showon="operator!:any"
|
||||
/>
|
||||
<field name="range_note" type="note"
|
||||
class="tf-note-and"
|
||||
description="NR_AND_LC"
|
||||
showon="operator:range"
|
||||
/>
|
||||
<field name="value2" type="number"
|
||||
hiddenLabel="true"
|
||||
class="input-small"
|
||||
default="1"
|
||||
hint="1"
|
||||
min="1"
|
||||
showon="operator:range"
|
||||
/>
|
||||
</fieldset>
|
||||
</fields>
|
||||
');
|
||||
|
||||
$this->form->setField($xml);
|
||||
|
||||
foreach ($xml->field as $key => $field)
|
||||
{
|
||||
$name = (string) $field->attributes()->name;
|
||||
$type = (string) $field->attributes()->type;
|
||||
|
||||
$value = isset($this->value[$name]) ? $this->value[$name] : null;
|
||||
$this->form->setValue($name, null, $value);
|
||||
}
|
||||
|
||||
$html = $this->form->renderFieldset($mainName);
|
||||
|
||||
HTMLHelper::stylesheet('plg_system_nrframework/tf-ecomm-range-field.css', ['relative' => true, 'version' => 'auto']);
|
||||
|
||||
$prefix = $prefixLabel ? '<span>' . Text::_($prefixLabel) . '</span>' : '';
|
||||
|
||||
return '<div class="tf-ecomm-range-extra-settings' . (!empty($this->class) ? ' ' . $this->class : '') . '">' . $prefix . $html . '</div>';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user