0
0
mirror of https://github.com/salesagility/SuiteCRM.git synced 2024-12-22 12:28:31 +00:00
salesagility_SuiteCRM/include/Smarty/plugins/function.html_checkboxes.php
Dillon-Brown 66954ac3af Merge remote-tracking branch 'upstream/hotfix-7.10.x' into hotfix
# Conflicts:
#	.travis.yml
#	README.md
#	data/SugarBean.php
#	include/MVC/View/SugarView.php
#	include/Smarty/plugins/function.fetch.php
#	include/SugarFields/Fields/File/SugarFieldFile.php
#	include/SugarObjects/templates/person/Person.php
#	include/SugarXHprof/SugarXHprof.php
#	include/SugarXHprof/xhprof_lib/utils/xhprof_runs.php
#	include/nusoap/class.nusoap_base.php
#	include/nusoap/class.soap_transport_http.php
#	include/nusoap/class.soapclient.php
#	include/nusoap/class.wsdl.php
#	include/nusoap/class.wsdlcache.php
#	include/parsecsv.lib.php
#	include/social/get_feed_data.php
#	include/tcpdf/barcodes.php
#	lib/Robo/Plugin/Commands/CodeCoverageCommands.php
#	modules/AOD_Index/Lib/Zend/Search/Lucene/Storage/File.php
#	modules/AOR_Charts/lib/pChart/class/pBarcode128.class.php
#	modules/AOR_Charts/lib/pChart/class/pBarcode39.class.php
#	modules/AOR_Charts/lib/pChart/class/pCache.class.php
#	modules/AOR_Charts/lib/pChart/class/pData.class.php
#	modules/AOR_Charts/lib/pChart/class/pDraw.class.php
#	modules/AOR_Charts/lib/pChart/class/pImage.class.php
#	modules/AOR_Charts/lib/pChart/class/pSpring.class.php
#	modules/AOS_PDF_Templates/templateParser.php
#	modules/AOS_Products/AOS_Products.php
#	modules/AOW_Actions/FormulaCalculator.php
#	modules/AOW_WorkFlow/aow_utils.php
#	modules/Trackers/store/DatabaseStore.php
#	phpcs.xml
#	service/core/REST/SugarRest.php
#	service/example/Rest_Proxy.php
#	suitecrm_version.php
#	tests/SuiteCRM/Test/SuitePHPUnit_Framework_TestCase.php
#	tests/unit/phpunit/data/SugarBeanTest.php
#	tests/unit/phpunit/include/MVC/Controller/SugarControllerTest.php
#	tests/unit/phpunit/include/MVC/SugarApplicationTest.php
#	tests/unit/phpunit/include/MVC/View/SugarViewTest.php
#	tests/unit/phpunit/include/MVC/View/views/view.editTest.php
#	tests/unit/phpunit/include/utils/securityUtilsTest.php
#	tests/unit/phpunit/modules/ACLActions/ACLActionTest.php
#	tests/unit/phpunit/modules/Emails/EmailTest.php
#	tests/unit/phpunit/modules/ProspectLists/ProspectListTest.php
#	tests/unit/phpunit/modules/SchedulersJobs/SchedulersJobTest.php
#	tests/unit/phpunit/modules/UserPreferences/UserPreferenceTest.php
#	themes/SuiteP/css/Dawn/style.css
#	themes/SuiteP/css/Day/style.css
#	themes/SuiteP/css/Dusk/style.css
#	themes/SuiteP/css/Night/style.css
2019-09-20 14:53:13 +01:00

144 lines
4.3 KiB
PHP
Executable File

<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty {html_checkboxes} function plugin
*
* File: function.html_checkboxes.php<br>
* Type: function<br>
* Name: html_checkboxes<br>
* Date: 24.Feb.2003<br>
* Purpose: Prints out a list of checkbox input types<br>
* Input:<br>
* - name (optional) - string default "checkbox"
* - values (required) - array
* - options (optional) - associative array
* - checked (optional) - array default not set
* - separator (optional) - ie <br> or &nbsp;
* - output (optional) - the output next to each checkbox
* - assign (optional) - assign the output as an array to this variable
* Examples:
* <pre>
* {html_checkboxes values=$ids output=$names}
* {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
* {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
* </pre>
* @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
* (Smarty online manual)
* @author Christopher Kvarme <christopher.kvarme@flashjab.com>
* @author credits to Monte Ohrt <monte at ohrt dot com>
* @version 1.0
* @param array
* @param Smarty
* @return string
* @uses smarty_function_escape_special_chars()
*/
function smarty_function_html_checkboxes($params, &$smarty)
{
require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
$name = 'checkbox';
$values = null;
$options = null;
$selected = null;
$separator = '';
$labels = true;
$output = null;
$extra = '';
foreach($params as $_key => $_val) {
switch($_key) {
case 'name':
case 'separator':
$$_key = $_val;
break;
case 'labels':
$$_key = (bool)$_val;
break;
case 'options':
$$_key = (array)$_val;
break;
case 'values':
case 'output':
$$_key = array_values((array)$_val);
break;
case 'checked':
case 'selected':
$selected = array_map('strval', array_values((array)$_val));
break;
case 'checkboxes':
$smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING);
$options = (array)$_val;
break;
case 'assign':
break;
default:
if(!is_array($_val)) {
$extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
} else {
$smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
}
break;
}
}
if (!isset($options) && !isset($values))
return ''; /* raise error here? */
$selected = (array)$selected;
$_html_result = array();
if (isset($options)) {
foreach ($options as $_key=>$_val)
$_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
} else {
foreach ($values as $_i=>$_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
}
}
if(!empty($params['assign'])) {
$smarty->assign($params['assign'], $_html_result);
} else {
return implode("\n",$_html_result);
}
}
function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) {
$_output = '';
if ($labels) $_output .= '<label>';
$_output .= '<input type="checkbox" name="'
. smarty_function_escape_special_chars($name) . '[]" value="'
. smarty_function_escape_special_chars($value) . '"';
if (in_array((string)$value, $selected)) {
$_output .= ' checked="checked"';
}
$_output .= $extra . ' />' . $output;
if ($labels) $_output .= '</label>';
$_output .= $separator;
return $_output;
}
?>