You've already forked joomla_test
							
							
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package     Joomla.Platform
 | |
|  * @subpackage  Form
 | |
|  *
 | |
|  * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 | |
|  * @license     GNU General Public License version 2 or later; see LICENSE
 | |
|  */
 | |
| 
 | |
| defined('JPATH_PLATFORM') or die;
 | |
| 
 | |
| /**
 | |
|  * Form Field class for the Joomla Platform.
 | |
|  * Provides radio button inputs
 | |
|  *
 | |
|  * @package     Joomla.Platform
 | |
|  * @subpackage  Form
 | |
|  * @link        http://www.w3.org/TR/html-markup/command.radio.html#command.radio
 | |
|  * @since       11.1
 | |
|  */
 | |
| class JFormFieldRadio extends JFormField
 | |
| {
 | |
| 	/**
 | |
| 	 * The form field type.
 | |
| 	 *
 | |
| 	 * @var    string
 | |
| 	 * @since  11.1
 | |
| 	 */
 | |
| 	protected $type = 'Radio';
 | |
| 
 | |
| 	/**
 | |
| 	 * Method to get the radio button field input markup.
 | |
| 	 *
 | |
| 	 * @return  string  The field input markup.
 | |
| 	 *
 | |
| 	 * @since   11.1
 | |
| 	 */
 | |
| 	protected function getInput()
 | |
| 	{
 | |
| 		$html = array();
 | |
| 
 | |
| 		// Initialize some field attributes.
 | |
| 		$class = $this->element['class'] ? ' class="radio ' . (string) $this->element['class'] . '"' : ' class="radio"';
 | |
| 
 | |
| 		// Start the radio field output.
 | |
| 		$html[] = '<fieldset id="' . $this->id . '"' . $class . '>';
 | |
| 
 | |
| 		// Get the field options.
 | |
| 		$options = $this->getOptions();
 | |
| 
 | |
| 		// Build the radio field output.
 | |
| 		foreach ($options as $i => $option)
 | |
| 		{
 | |
| 
 | |
| 			// Initialize some option attributes.
 | |
| 			$checked = ((string) $option->value == (string) $this->value) ? ' checked="checked"' : '';
 | |
| 			$class = !empty($option->class) ? ' class="' . $option->class . '"' : '';
 | |
| 			$disabled = !empty($option->disable) ? ' disabled="disabled"' : '';
 | |
| 			$required = !empty($option->required) ? ' required="required" aria-required="true"' : '';
 | |
| 
 | |
| 			// Initialize some JavaScript option attributes.
 | |
| 			$onclick = !empty($option->onclick) ? ' onclick="' . $option->onclick . '"' : '';
 | |
| 
 | |
| 			$html[] = '<input type="radio" id="' . $this->id . $i . '" name="' . $this->name . '" value="'
 | |
| 				. htmlspecialchars($option->value, ENT_COMPAT, 'UTF-8') . '"' . $checked . $class . $onclick . $disabled . $required . '/>';
 | |
| 
 | |
| 			$html[] = '<label for="' . $this->id . $i . '"' . $class . '>'
 | |
| 				. JText::alt($option->text, preg_replace('/[^a-zA-Z0-9_\-]/', '_', $this->fieldname)) . '</label>';
 | |
| 		}
 | |
| 
 | |
| 		// End the radio field output.
 | |
| 		$html[] = '</fieldset>';
 | |
| 
 | |
| 		return implode($html);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Method to get the field options for radio buttons.
 | |
| 	 *
 | |
| 	 * @return  array  The field option objects.
 | |
| 	 *
 | |
| 	 * @since   11.1
 | |
| 	 */
 | |
| 	protected function getOptions()
 | |
| 	{
 | |
| 		$options = array();
 | |
| 
 | |
| 		foreach ($this->element->children() as $option)
 | |
| 		{
 | |
| 
 | |
| 			// Only add <option /> elements.
 | |
| 			if ($option->getName() != 'option')
 | |
| 			{
 | |
| 				continue;
 | |
| 			}
 | |
| 
 | |
| 			// Create a new option object based on the <option /> element.
 | |
| 			$tmp = JHtml::_(
 | |
| 				'select.option', (string) $option['value'], trim((string) $option), 'value', 'text',
 | |
| 				((string) $option['disabled'] == 'true')
 | |
| 			);
 | |
| 
 | |
| 			// Set some option attributes.
 | |
| 			$tmp->class = (string) $option['class'];
 | |
| 
 | |
| 			// Set some JavaScript option attributes.
 | |
| 			$tmp->onclick = (string) $option['onclick'];
 | |
| 
 | |
| 			// Add the option object to the result set.
 | |
| 			$options[] = $tmp;
 | |
| 		}
 | |
| 
 | |
| 		reset($options);
 | |
| 
 | |
| 		return $options;
 | |
| 	}
 | |
| }
 | 
