56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package   FOF
 | |
|  * @copyright Copyright (c)2010-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
 | |
|  * @license   GNU General Public License version 3, or later
 | |
|  */
 | |
| 
 | |
| defined('_JEXEC') || die();
 | |
| 
 | |
| use Joomla\CMS\Form\FormHelper;
 | |
| 
 | |
| // Prevent PHP fatal errors if this somehow gets accidentally loaded multiple times
 | |
| if (class_exists('JFormFieldFancyradio'))
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| // Load the base form field class
 | |
| FormHelper::loadFieldClass('radio');
 | |
| 
 | |
| /**
 | |
|  * Yes/No switcher, compatible with Joomla 3 and 4
 | |
|  *
 | |
|  * ## How to use
 | |
|  *
 | |
|  * 1. Create a folder in your project for custom Joomla form fields, e.g. components/com_example/fields
 | |
|  * 2. Create a new file called `fancyradio.php` with the content
 | |
|  *    ```php
 | |
|  *    defined('_JEXEC') || die();
 | |
|  *    require_once JPATH_LIBRARIES . '/fof40/Html/Fields/fancyradio.php';
 | |
|  *    ```
 | |
|  *
 | |
|  * @package      Joomla\CMS\Form\Field
 | |
|  *
 | |
|  * @since        1.0.0
 | |
|  * @noinspection PhpUnused
 | |
|  * @noinspection PhpIllegalPsrClassPathInspection
 | |
|  */
 | |
| class JFormFieldFancyradio extends JFormFieldRadio
 | |
| {
 | |
| 	public function __construct($form = null)
 | |
| 	{
 | |
| 		if (version_compare(JVERSION, '3.999.999', 'gt'))
 | |
| 		{
 | |
| 			// Joomla 4.0 and later.
 | |
| 			$this->layout = 'joomla.form.field.radio.switcher';
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// Joomla 3.x. Yes, 3.10 does have the layout but I am playing it safe.
 | |
| 			$this->layout = 'joomla.form.field.radio';
 | |
| 		}
 | |
| 
 | |
| 		parent::__construct($form);
 | |
| 	}
 | |
| } |