Your IP : 216.73.216.240


Current Path : /home/juvelize/www/modules/mod_responsivegallery/elements/
Upload File :
Current File : /home/juvelize/www/modules/mod_responsivegallery/elements/jseradio.php

<?php




/**




 * ------------------------------------------------------------------------




 * JSE Options: enhance function for module configuration




 * ------------------------------------------------------------------------




 * Copyright (C) 2008-2013 Joomseller Solutions. All Rights Reserved.




 * @license - GNU/GPL, http://www.gnu.org/licenses/gpl.html




 * Author: Joomseller




 * Websites: http://www.joomseller.com




 * ------------------------------------------------------------------------




 */









defined('JPATH_BASE') or die;









jimport('joomla.html.html');




if(!class_exists('JFormFieldRadio')) {




	require_once JPATH_ROOT.'/libraries/joomla/form/fields/radio.php';




}









/**




 * Create Radio List Button. With the ability to show/hide sub-options.




 * Example xml:




 * <field




 * 	name="mod_js_show_hide"




 * 	type="JSRadio"




 * 	default="1"




 * 	label="MOD_JS_LABEL"




 * 	description="MOD_JS_DESC">




 * 	<option value="1" sub_fields="mod_yes_field_1,mod_yes_field_2">JYES</option>




 * 	<option value="0" sub_fields="mod_no_field_1,mod_no_field_2">JNO</option>




 * </field>




 */




class JFormFieldJSERadio extends JFormFieldRadio {









	/**




	 * The form field type.




	 *




	 * @var    string




	 */




	protected $type = 'JSERadio';




	




	/**




	 * Active sub-fields.




	 * 




	 * @var		string




	 */




	protected $active_sub_fields = '';




	




	/**




	 * List of all sub-fields




	 * 




	 * @var		string




	 */




	protected $sub_fields_list = array();









	/**




	 * Method to get the field input markup.




	 *




	 * @return  string  The field input markup.




	 *




	 * @since   11.1




	 */




	protected function getInput() {




		if (!defined ('JS_MODULE_OPTIONS_ASSETS')) {




			define ('JS_MODULE_OPTIONS_ASSETS', 1);




			$uri = str_replace("\\","/", str_replace(JPATH_SITE, JURI::root(), dirname(__FILE__) ));




			JHTML::script($uri.'/assets/js/jseoptions.js');




			JHTML::stylesheet($uri.'/assets/css/jseoptions.css');




		}









		$html = parent::getInput();




		$this->onload_script();




		




		return $html;




	}









	/**




	 * Method to get the script onload




	 * 




	 * @return blank




	 */




	private function onload_script() {




		?>




		<script type="text/javascript">




			var js_subfield_<?php echo $this->element['name']; ?> = "<?php echo implode(',', $this->sub_fields_list); ?>";




			window.addEvent('load', function() {




				js_HideOptions(js_subfield_<?php echo $this->element['name']; ?>);




				js_ShowOptions('<?php echo $this->active_sub_fields; ?>');




			});




		</script>




		<?php









		return;




	}









	/**




	 * Override getOptions Method to get sub fields list.




	 *




	 * @return  array  The field option objects.




	 */




	protected function getOptions() {




		// Initialize variables.




		$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'];









			// Get sub_fields.




			$sub_fields = str_replace("\n", '', trim($option['sub_fields']));




			$sub_fields_id = '';




			if(!empty($sub_fields)) {




				$sub_fields_list = explode(',',$sub_fields);




				$sub_fields_id_list	= array();




				foreach($sub_fields_list as $sub_field) {




					$sub_fields_id_list[] = $this->getId(null, $sub_field);




				}




				$sub_fields_id = implode(',', $sub_fields_id_list);




				$this->sub_fields_list = array_merge($this->sub_fields_list, array((string)$option['value'] => $sub_fields_id));




			}




			




			// Check if it's selected




			if($option["value"] == $this->value) {




				$this->active_sub_fields = $sub_fields_id;




			}









			// Set some JavaScript option attributes.




			$onclick = !empty($option['onclick']) ? (string) $option['onclick'] : '';









			// Add default onclick




			$onclick .= ' js_HideOptions(js_subfield_'.$this->element['name'].');';




			$onclick .= "js_ShowOptions('$sub_fields_id');";









			$tmp->onclick = $onclick;









			// Add the option object to the result set.




			$options[] = $tmp;




		}









		reset($options);









		return $options;




	}









}