File: /home/iestorre/informatica/modules/mod_weatheraholic/fields/truecolors.php
<?php
/**
* Custom Joomla! form field to generate minicolors input with optional opacity slider
*
* NOTE: replace PATH_TO_CUSTOM_MINICOLORS with path to minicolors files. See below.
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
JFormHelper::loadFieldClass('color');
class JFormFieldTruecolors extends JFormFieldColor {
protected $type = 'Truecolors';
/**
* Method to get the field input markup.
*
* @return string The field input markup.
*
* @since 11.3
*/
protected function getInput()
{
// Translate placeholder text
$hint = $this->translateHint ? JText::_($this->hint) : $this->hint;
// Control value can be: hue (default), saturation, brightness, wheel
$control = $this->control;
// Valid options are hex and rgb.
$format = $this->element['format'];
// Set to true to enable the opacity slider.
$opacity = $this->element['opacity'];
// Position of the panel can be: right (default), left, top or bottom
$position = ' data-position="' . $this->position . '"';
$onchange = !empty($this->onchange) ? ' onchange="' . $this->onchange . '"' : '';
$class = $this->class;
$required = $this->required ? ' required aria-required="true"' : '';
$disabled = $this->disabled ? ' disabled' : '';
$autofocus = $this->autofocus ? ' autofocus' : '';
$color = strtolower($this->value);
if (!$color || in_array($color, array('none', 'transparent')))
{
$color = 'none';
}
$class = ' class="' . trim('truecolors ' . $class) . '"';
$control = $control ? ' data-control="' . $control . '"' : '';
$format = $format ? ' data-format="' . $format . '"' : '';
$opacity = $opacity ? ' data-opacity="' . $opacity . '"' : '';
$readonly = $this->readonly ? ' readonly' : '';
$hint = $hint ? ' placeholder="' . $hint . '"' : ' placeholder="rgba(0, 0, 0, 1)"';
$autocomplete = !$this->autocomplete ? ' autocomplete="off"' : '';
// Including fallback code for HTML5 non supported browsers.
JHtml::_('jquery.framework');
JHtml::_('script', 'system/html5fallback.js', false, true);
// Include jQuery
JHtml::_('jquery.framework');
// We must include our custom minicolors, since Joomla! has outdated version
// See: https://github.com/claviska/jquery-minicolors/
$LiveSite = JURI::base();
$dirname = basename(dirname(dirname(__FILE__)));
$document = JFactory::getDocument();
$document->addStyleSheet("../modules/$dirname/css/jquery.truecolors.css");
$document->addScript("../modules/$dirname/js/jquery.truecolors.min.js");
JFactory::getDocument()->addScriptDeclaration("
jQuery(document).ready(function (){
jQuery('input.truecolors').each(function() {
jQuery(this).truecolors({
control: jQuery(this).attr('data-control') || 'hue',
position: jQuery(this).attr('data-position') || 'right',
format: jQuery(this).attr('data-format') || 'hex',
opacity: jQuery(this).attr('data-opacity') || false,
theme: 'bootstrap'
});
});
});
"
);
return '<input type="text" name="' . $this->name . '" id="' . $this->id . '"' . ' value="'
. htmlspecialchars($color, ENT_COMPAT, 'UTF-8') . '"' . $hint . $class . $position . $control . $format . $opacity
. $readonly . $disabled . $required . $onchange . $autocomplete . $autofocus . '/>';
}
}