diff --git a/sources/Application/TwigBase/Controller/Controller.php b/sources/Application/TwigBase/Controller/Controller.php index 84418378f..90c1549c8 100644 --- a/sources/Application/TwigBase/Controller/Controller.php +++ b/sources/Application/TwigBase/Controller/Controller.php @@ -110,6 +110,7 @@ abstract class Controller extends AbstractController $this->m_aBlockParams = []; $this->SetModuleName($sModuleName); $aAdditionalPaths[] = APPROOT.'lib/symfony/twig-bridge/Resources/views/Form'; + $aAdditionalPaths[] = APPROOT.'templates'; if (strlen($sViewPath) > 0) { $this->SetViewPath($sViewPath, $aAdditionalPaths); if ($sModuleName != 'core') { @@ -149,7 +150,7 @@ abstract class Controller extends AbstractController public function SetViewPath($sViewPath, $aAdditionalPaths = []) { $oTwig = TwigHelper::GetTwigEnvironment($sViewPath, $aAdditionalPaths); - $formEngine = new TwigRendererEngine(['bootstrap_5_layout.html.twig'], $oTwig); + $formEngine = new TwigRendererEngine(['application/form/itop_console_layout.twig'], $oTwig); $oTwig->addRuntimeLoader(new FactoryRuntimeLoader([ FormRenderer::class => function () use ($formEngine): FormRenderer { return new FormRenderer($formEngine, null); diff --git a/templates/application/form/itop_base_layout.html.twig b/templates/application/form/itop_base_layout.html.twig new file mode 100644 index 000000000..123de44ce --- /dev/null +++ b/templates/application/form/itop_base_layout.html.twig @@ -0,0 +1,4 @@ +{% use "form_div_layout.html.twig" %} + +{# Widgets #} + diff --git a/templates/application/form/itop_console_layout.twig b/templates/application/form/itop_console_layout.twig new file mode 100644 index 000000000..610fa26e3 --- /dev/null +++ b/templates/application/form/itop_console_layout.twig @@ -0,0 +1,23 @@ +{% use "application/form/itop_base_layout.html.twig" %} + +{# Widgets #} + +{%- block widget_attributes -%} + {% if type == 'text' %}{% set ibo_class='ibo-input-string' %}{% else %}{% set ibo_class='ibo-input-' ~ type %}{% endif %} + {% set attr = attr|merge({class: (attr.class|default('') ~ ' ibo-input ' ~ ibo_class)|trim}) %} + {{- parent() -}} +{%- endblock widget_attributes -%} + +{%- block form_label -%} + {%- if compound is defined and compound -%} + {%- set element = 'legend' -%} + {%- else -%} + {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ibo-field--label')|trim}) %} + {%- endif -%} + {{- parent() -}} +{%- endblock form_label -%} + +{%- block form_row -%} + {% set row_attr = row_attr|merge({class: (row_attr.class|default('') ~ ' ibo-field ibo-content-block ibo-block ibo-field-small')|trim}) %} + {{- parent() -}} +{%- endblock form_row -%}