Ensure that all widget variables always exist #2564

This commit is contained in:
Kijin Sung 2025-06-17 21:15:37 +09:00
parent 34840508f7
commit 69a27d7835

View file

@ -382,7 +382,7 @@ class WidgetController extends Widget
} }
$args->widget_sequence = $args->widget_sequence ?? 0; $args->widget_sequence = $args->widget_sequence ?? 0;
$args->colorset = $args->colorset ?? null; $args->colorset = $args->colorset ?? '';
foreach ($lang_list as $lang_type => $val) foreach ($lang_list as $lang_type => $val)
{ {
@ -430,6 +430,14 @@ class WidgetController extends Widget
return; return;
} }
foreach (WidgetModel::getWidgetInfo($widget)->extra_var ?? [] as $key => $val)
{
if (!isset($args->{$key}))
{
$args->{$key} = $val->default;
}
}
$widget_content = $oWidget->proc($args); $widget_content = $oWidget->proc($args);
return Context::replaceUserLang($widget_content); return Context::replaceUserLang($widget_content);
} }
@ -453,6 +461,14 @@ class WidgetController extends Widget
return; return;
} }
foreach (WidgetModel::getWidgetInfo($widget)->extra_var ?? [] as $key => $val)
{
if (!isset($args->{$key}))
{
$args->{$key} = $val->default;
}
}
$oFrontEndFileHandler = FrontEndFileHandler::getInstance(); $oFrontEndFileHandler = FrontEndFileHandler::getInstance();
$oFrontEndFileHandler->startLog(); $oFrontEndFileHandler->startLog();
@ -498,7 +514,7 @@ class WidgetController extends Widget
// Set default // Set default
$args->widget_sequence = $args->widget_sequence ?? 0; $args->widget_sequence = $args->widget_sequence ?? 0;
$args->widget_cache = $args->widget_cache ?? 0; $args->widget_cache = $args->widget_cache ?? 0;
$args->colorset = $args->colorset ?? null; $args->colorset = $args->colorset ?? '';
/** /**
* Widgets widgetContent/widgetBox Wanted If you are not content * Widgets widgetContent/widgetBox Wanted If you are not content
@ -854,25 +870,20 @@ class WidgetController extends Widget
$vars->widget_padding_bottom = trim($request_vars->widget_padding_bottom); $vars->widget_padding_bottom = trim($request_vars->widget_padding_bottom);
$vars->document_srl= trim($request_vars->document_srl); $vars->document_srl= trim($request_vars->document_srl);
if(countobj($widget_info->extra_var)) foreach ($widget_info->extra_var ?? [] as $key => $val)
{ {
foreach($widget_info->extra_var as $key=>$val) $vars->{$key} = trim($request_vars->{$key} ?? '');
{
$vars->{$key} = trim($request_vars->{$key} ?? '');
}
} }
// If the widget style
// Additional configuration for widget styles
if($request_vars->widgetstyle) if($request_vars->widgetstyle)
{ {
$widgetStyle_info = WidgetModel::getWidgetStyleInfo($request_vars->widgetstyle); $widgetStyle_info = WidgetModel::getWidgetStyleInfo($request_vars->widgetstyle);
if(countobj($widgetStyle_info->extra_var)) foreach ($widgetStyle_info->extra_var ?? [] as $key => $val)
{ {
foreach($widgetStyle_info->extra_var as $key=>$val) if (in_array($val->type, ['color', 'text', 'select', 'filebox', 'textarea']))
{ {
if($val->type =='color' || $val->type =='text' || $val->type =='select' || $val->type =='filebox' || $val->type == 'textarea') $vars->{$key} = trim($request_vars->{$key} ?? '');
{
$vars->{$key} = trim($request_vars->{$key} ?? '');
}
} }
} }
} }