187 lines
5.3 KiB
PHP
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;
|
|
}
|
|
}
|