mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
e4160088e8
- Added comments where needed - Beautified the code where needed, more readable and more compliant to CS - loadResource function in helper fhc_helper.php is not using anymore CI - Moved all constants from UDFWidget to UDFLib - Added constant SORT to UDFLib - Renamed constant REGEX_LANGUAGE to FE_REGEX_LANGUAGE in UDFLib - Better formatting and indentation of the code of WidgetLib (more compliant to CS) - Added missing validation attributes to HTML widgets - Added constant HTML_DEFAULT_VALUE to CheckboxWidget - Unset parameter multiple in DropdownWidget constructor - Changed value of constant REQUIRED in widget HTMLWidget - Added protected property $htmlParameters to widget HTMLWidget (it works as alias to $this->_args[HTMLWidget::HTML_ARG_NAME] -> better code) - Replaced $this->_args[HTMLWidget::HTML_ARG_NAME] with $this->htmlParameters in the widgets - Changed the CSS class label[udf-required=true]::after to label[required-field=true]::after in widgets.css - Better use of constants in UDFWidget: constants from HTMLWidget are used only for the HTML parameters, while constants from UDFLib are used only for UDF parameters
123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Represents a generic HTML element
|
|
*/
|
|
class HTMLWidget extends Widget
|
|
{
|
|
// The name of the array present in the data array given to the view that will render this widget
|
|
const HTML_ARG_NAME = 'HTML';
|
|
const HTML_DEFAULT_VALUE = ''; // Default value of the html element
|
|
const HTML_NAME = 'name'; // HTML name attribute
|
|
const HTML_ID = 'id'; // HTML id attribute
|
|
|
|
// External block definition
|
|
const EXTERNAL_BLOCK = 'externalBlock'; // External block name
|
|
const EXTERNAL_START_BLOCK_HTML_TAG = '<div>'; // External block start tag
|
|
const EXTERNAL_END_BLOCK_HTML_TAG = '</div>'; // External block end tag
|
|
|
|
// HTML attributes
|
|
const LABEL = 'title';
|
|
const REGEX = 'regex';
|
|
const TITLE = 'description';
|
|
const REQUIRED = 'required-field';
|
|
const MAX_VALUE = 'max-value';
|
|
const MIN_VALUE = 'min-value';
|
|
const MAX_LENGTH = 'max-length';
|
|
const MIN_LENGTH = 'min-length';
|
|
const PLACEHOLDER = 'placeholder';
|
|
|
|
// Alias of $this->_args[HTMLWidget::HTML_ARG_NAME] for a better code readability
|
|
protected $htmlParameters;
|
|
|
|
/**
|
|
* It gets also the htmlArgs array as parameter, it will be used to set the HTML properties
|
|
*/
|
|
public function __construct($name, $args = array(), $htmlArgs = array())
|
|
{
|
|
parent::__construct($name, $args);
|
|
|
|
// Initialising HTML properties
|
|
$this->_setHtmlProperties($htmlArgs);
|
|
|
|
// Loads helper message to manage returning messages
|
|
$this->load->helper('message');
|
|
}
|
|
|
|
/**
|
|
* Initialising html properties, such as the id and name attributes of the HTML element
|
|
*/
|
|
private function _setHtmlProperties($htmlArgs)
|
|
{
|
|
// If $htmlArgs wasn't already stored in $this->_args
|
|
if (!isset($this->_args[HTMLWidget::HTML_ARG_NAME]))
|
|
{
|
|
$this->_args[HTMLWidget::HTML_ARG_NAME] = array();
|
|
|
|
// Avoids that elements in a HTML page have the same name or id
|
|
$randomIdentifier = uniqid(rand(0, 1000));
|
|
$this->_args[HTMLWidget::HTML_ARG_NAME][HTMLWidget::HTML_ID] = $randomIdentifier;
|
|
$this->_args[HTMLWidget::HTML_ARG_NAME][HTMLWidget::HTML_NAME] = $randomIdentifier;
|
|
|
|
foreach($htmlArgs as $argName => $argValue)
|
|
{
|
|
$this->_args[HTMLWidget::HTML_ARG_NAME][$argName] = $argValue;
|
|
}
|
|
}
|
|
|
|
$this->htmlParameters =& $this->_args[HTMLWidget::HTML_ARG_NAME]; // Reference for a better code readability
|
|
}
|
|
|
|
/**
|
|
* Prints an attribute name and eventually also the value extracted from $htmlArgs
|
|
* Set $isValuePresent to false the value should not be displayed
|
|
*/
|
|
public static function printAttribute($htmlArgs, $attribute, $isValuePresent = true)
|
|
{
|
|
if ($attribute != null)
|
|
{
|
|
if (isset($htmlArgs[$attribute]))
|
|
{
|
|
if ($isValuePresent === true)
|
|
{
|
|
$value = $htmlArgs[$attribute];
|
|
|
|
if (is_bool($value))
|
|
{
|
|
$value = $value ? 'true' : 'false';
|
|
}
|
|
|
|
echo sprintf('%s="%s"', $attribute, $value);
|
|
}
|
|
else
|
|
{
|
|
echo $attribute;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Prints the external block start tag
|
|
*/
|
|
public static function printStartBlock($htmlArgs)
|
|
{
|
|
if (isset($htmlArgs[HTMLWidget::EXTERNAL_BLOCK])
|
|
&& $htmlArgs[HTMLWidget::EXTERNAL_BLOCK] === true)
|
|
{
|
|
echo HTMLWidget::EXTERNAL_START_BLOCK_HTML_TAG;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Prints the external block end tag
|
|
*/
|
|
public static function printEndBlock($htmlArgs)
|
|
{
|
|
if (isset($htmlArgs[HTMLWidget::EXTERNAL_BLOCK])
|
|
&& $htmlArgs[HTMLWidget::EXTERNAL_BLOCK] === true)
|
|
{
|
|
echo HTMLWidget::EXTERNAL_END_BLOCK_HTML_TAG;
|
|
}
|
|
}
|
|
} |