Files
conservatorio-tomadini/administrator/components/com_phocamaps/models/fields/phocamapsradio.php
2024-12-17 17:34:10 +01:00

187 lines
5.3 KiB
PHP

<?php
/*
* @package Joomla.Framework
* @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* @component Phoca Component
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later;
*/
defined('JPATH_BASE') or die;
use Joomla\CMS\Form\FormField;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Object\CMSObject;
use Joomla\CMS\HTML\HTMLHelper;
jimport('joomla.html.html');
jimport('joomla.form.formfield');
class JFormFieldPhocaMapsRadio extends FormField
{
protected $type = 'PhocaMapsRadio';
protected function getInput()
{
// Initialize variables.
$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.'>';
$design = ( (string)$this->element['typedesign'] ? $this->element['typedesign'] : 0 );
if ($design == 1) {
$options = $this->getOptionsDesign1();
}
if ($design == 2) {
$options = $this->getOptionsDesign2();
}
//$output .= '<input class="text_area" type="radio" name="'.$this->name.'" id="'.$this->id.'_id" value="'.(string) $option['value'].'" '.$checked.' />';
// 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"' : '';
// Initialize some JavaScript option attributes.
$onclick = !empty($option->onclick) ? ' onclick="'.$option->onclick.'"' : '';
$html[] = '<div class="form-check"><input class="form-check-input" type="radio" id="'.$this->id.$i.'" name="'.$this->name.'"' .
' value="'.htmlspecialchars($option->value, ENT_COMPAT, 'UTF-8').'"'
.$checked.$class.$onclick.$disabled.'/>';
$html[] = '<label class="form-check-label" for="'.$this->id.$i.'">'. Text::_($option->text). ' '.$option->img.'</label>';
$html[] = '</div>';
/*if ($design == 1) {
$html[] = '<label for="'.$this->id.$i.'"'.$class.' style="width:auto">'. Text::_($option->text). '</label>'
. '<div style="position:relative;float:left;width:30px;margin-left:5px">'.$option->img.'</div><div style="clear:both"></div>';
}
if ($design == 2) {
if($option->imgnr % 3 == 0) {
$cssPart = '';
$htmlPart = '<div style="clear:both"></div>';
} else {
$cssPart ='margin-right:10px;';
$htmlPart = '<div style="clear:both"></div>';
}
$html[] = '<label for="'.$this->id.$i.'" '.$class.' style="width:auto">'. Text::_($option->text). '</label>'
. '<div style="position:relative;float:left;margin:0px;padding:0px;margin-left:5em;margin-top: -2em;'.$cssPart.'">'.$option->img.'</div></div>'. $htmlPart;
}*/
}
// End the radio field output.
$html[] = '</fieldset>';
return implode($html);
}
protected function getOptionsDesign1()
{
$options = array();
foreach ($this->element->children() as $option) {
$tmp = new CMSObject();
if ($option->getName() != 'option') {
continue;
}
$tmp->value = (string) $option['value'];
$tmp->text = trim((string) $option);
switch((int)$option['value']) {
case 1: $optName = 'grey'; break;
case 2: $optName = 'grey'; break;//$optName = 'greywb';the same but other padding
case 3: $optName = 'greyrc'; break;
case 4: $optName = 'black'; break;
default:
case 0: $optName = 'none'; break;
}
if ((int)$option['value'] == 0) {
$tmp->img = '';
} else {
$tmp->img = HTMLHelper::_('image', 'components/com_phocamaps/assets/images/box-'.$optName.'-tl.png', '', array('style' => 'margin:0;padding:0'));
}
//$tmp->class = (string) $option['class'];
//$tmp->onclick = (string) $option['onclick'];
$options[] = $tmp;
}
reset($options);
return $options;
}
protected function getOptionsDesign2()
{
$options = array();
$i = 1;
foreach ($this->element->children() as $option) {
$tmp = new CMSObject();
if ($option->getName() != 'option') {
continue;
}
$tmp->value = (string) $option['value'];
$tmp->text = trim((string) $option);
switch((int)$option['value']) {
case 1: $optName = 'igrey'; break;
case 2: $optName = 'iyellow'; break;
case 3: $optName = 'ihome'; break;
case 4: $optName = 'igreen'; break;
case 5: $optName = 'istar'; break;
case 6: $optName = 'iinfoh'; break;
case 7: $optName = 'iinfoi'; break;
case 8: $optName = 'iinfop'; break;
case 9: $optName = 'iinfoph'; break;
case 10:$optName = 'iinfoz'; break;
default:
case 0: $optName = 'default'; break;
}
if ((int)$option['value'] == 0) {
$tmp->img = '';
$tmp->imgnr = 0;
} else {
$tmp->img = HTMLHelper::_('image', 'media/com_phocamaps/images/'.$optName.'/image.png', '', array('style' => 'margin:0;padding:0'));
$tmp->imgnr = $i;
$i++;
}
//$tmp->class = (string) $option['class'];
//$tmp->onclick = (string) $option['onclick'];
$options[] = $tmp;
}
reset($options);
return $options;
}
}