Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Smarty html_checkboxes_ex html_radios_ex を廃止 #815 #817

Merged
merged 1 commit into from
Jan 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/Smarty/templates/admin/products/review_edit.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
</tr>
<tr>
<th>性別</th>
<td><!--{html_radios_ex name="sex" options=$arrSex selected=$arrForm.sex}--></td>
<td><!--{html_radios name="sex" options=$arrSex selected=$arrForm.sex}--></td>
</tr>
<tr>
<th>おすすめレベル <span class="attention">*</span></th>
Expand Down
176 changes: 0 additions & 176 deletions data/smarty_extends/function.html_checkboxes_ex.php

This file was deleted.

169 changes: 4 additions & 165 deletions data/smarty_extends/function.html_radios_ex.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,174 +5,13 @@
* @subpackage plugins
*/

require_once DATA_REALDIR . 'vendor/smarty/smarty/libs/plugins/function.html_radios.php';

/**
* Smarty {html_radios} function plugin
*
* File: function.html_radios.php<br>
* Type: function<br>
* Name: html_radios<br>
* Date: 24.Feb.2003<br>
* Purpose: Prints out a list of radio input types<br>
* Input:<br>
* - name (optional) - string default "radio"
* - 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 radio button
* - assign (optional) - assign the output as an array to this variable
* Examples:
* <pre>
* {html_radios values=$ids output=$names}
* {html_radios values=$ids name='box' separator='<br>' output=$names}
* {html_radios values=$ids checked=$checked separator='<br>' output=$names}
* </pre>
* @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
* (Smarty online manual)
* @author Christopher Kvarme <[email protected]>
* @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()
* @deprecated 2.18 2.17で残置していた {html_radios_ex} の互換用途。
* @see https://github.com/EC-CUBE/ec-cube2/issues/815
*/
function smarty_function_html_radios_ex($params, &$smarty)
{
if (!is_callable('smarty_function_escape_special_chars')) {
require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
}

$name = 'radio';
$values = null;
$options = null;
$selected = null;
$separator = '';
$labels = true;
$label_ids = true;
$output = null;
$extra = '';

foreach ($params as $_key => $_val) {
switch ($_key) {
case 'tags':
$$_key = explode("|", $_val);
break;
case 'name':
case 'separator':
$$_key = (string)$_val;
break;

case 'checked':
case 'selected':
if (is_array($_val)) {
$smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
} else {
$selected = (string)$_val;
}
break;

case 'labels':
case 'label_ids':
$$_key = (bool)$_val;
break;

case 'options':
$$_key = (array)$_val;
break;
case 'values':
case 'output':
$$_key = array_values((array)$_val);
break;

case 'radios':
$smarty->trigger_error('html_radios: the use of the "radios" 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_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
}
break;
}
}

if (!isset($options) && !isset($values))
return ''; /* raise error here? */

$_html_result = array();

if (isset($options)) {
foreach ($options as $_key=>$_val)
$_html_result[] = smarty_function_html_radios_output_ex($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $tags);
} else {
foreach ($values as $_i=>$_key) {
$_val = isset($output[$_i]) ? $output[$_i] : '';
$_html_result[] = smarty_function_html_radios_output_ex($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $tags);
}

}

if (!empty($params['assign'])) {
$smarty->assign($params['assign'], $_html_result);
} else {
return implode("\n",$_html_result);
}

return '';
}

/**
* @param string $name
* @param null|string $selected
* @param string $extra
* @param string $separator
* @param boolean $labels
* @param boolean $label_ids
*/
function smarty_function_html_radios_output_ex($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $tags)
{
$_output = '';

$_output .= '<input type="radio" name="'
. smarty_function_escape_special_chars($name) . '" value="'
. smarty_function_escape_special_chars($value) . '"';

if ($labels && $label_ids) {
$_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!', '_', $name . '_' . $value));
$_output .= ' id="' . $_id . '"';
}
if ((string)$value == $selected) {
$_output .= ' checked="checked"';
}

$_output .= $extra . ' />';

$_output .= $tags[0];

if ($labels) {
if ($label_ids) {
$_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!', '_', $name . '_' . $value));
$_output .= '<label for="' . $_id . '">';
} else {
$_output .= '<label>';
}
}

// 値を挿入
$_output .= $output;

$_output .= $tags[1];

if ($labels) $_output .= '</label>';
$_output .= $separator;

return $_output;
return smarty_function_html_radios($params, $smarty);
}
11 changes: 1 addition & 10 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ parameters:
level: 1
bootstrapFiles:
- tests/require.php
- data/vendor/smarty/smarty/libs/plugins/function.html_radios.php
excludePaths:
- data/Smarty/templates_c/*
- data/module/SOAP/*
Expand Down Expand Up @@ -36,16 +37,6 @@ parameters:
-
message: "#^Function smarty_function_escape_special_chars not found\\.$#"
path: data/smarty_extends/*
-
message: "#^Variable \\$values in isset\\(\\) always exists and is always null\\.$#"
paths:
- data/smarty_extends/function.html_radios_ex.php
- data/smarty_extends/function.html_checkboxes_ex.php
-
message: "#^Undefined variable\\: \\$tags$#"
paths:
- data/smarty_extends/function.html_radios_ex.php
- data/smarty_extends/function.html_checkboxes_ex.php
-
message: "#^Variable \\$SJIS_widths might not be defined\\.$#"
path: data/class/helper/SC_Helper_FPDI.php
Loading