Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 33f5f85

Browse filesBrowse files
mpiotnicolas-grekas
authored andcommitted
[Form][TwigBridge] Add help_html option
1 parent edc4a0f commit 33f5f85
Copy full SHA for 33f5f85

19 files changed

+464
-11
lines changed

‎src/Symfony/Bridge/Twig/CHANGELOG.md

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
4.3.0
5+
-----
6+
7+
* add `help_html` form option to display the `help` text as HTML
8+
49
4.2.0
510
-----
611

‎src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig
+10-2Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,17 @@
180180
{%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' help-block')|trim}) -%}
181181
<span id="{{ id }}_help"{% with { attr: help_attr } %}{{ block('attributes') }}{% endwith %}>
182182
{%- if translation_domain is same as(false) -%}
183-
{{- help -}}
183+
{%- if help_html is same as(false) -%}
184+
{{- help -}}
185+
{%- else -%}
186+
{{- help|raw -}}
187+
{%- endif -%}
184188
{%- else -%}
185-
{{- help|trans({}, translation_domain) -}}
189+
{%- if help_html is same as(false) -%}
190+
{{- help|trans({}, translation_domain) -}}
191+
{%- else -%}
192+
{{- help|trans({}, translation_domain)|raw -}}
193+
{%- endif -%}
186194
{%- endif -%}
187195
</span>
188196
{%- endif -%}

‎src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig
+10-2Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,9 +305,17 @@
305305
{%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' form-text text-muted')|trim}) -%}
306306
<small id="{{ id }}_help"{% with { attr: help_attr } %}{{ block('attributes') }}{% endwith %}>
307307
{%- if translation_domain is same as(false) -%}
308-
{{- help -}}
308+
{%- if help_html is same as(false) -%}
309+
{{- help -}}
310+
{%- else -%}
311+
{{- help|raw -}}
312+
{%- endif -%}
309313
{%- else -%}
310-
{{- help|trans({}, translation_domain) -}}
314+
{%- if help_html is same as(false) -%}
315+
{{- help|trans({}, translation_domain) -}}
316+
{%- else -%}
317+
{{- help|trans({}, translation_domain)|raw -}}
318+
{%- endif -%}
311319
{%- endif -%}
312320
</small>
313321
{%- endif -%}

‎src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
+10-2Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,17 @@
294294
{%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' help-text')|trim}) -%}
295295
<p id="{{ id }}_help"{% with { attr: help_attr } %}{{ block('attributes') }}{% endwith %}>
296296
{%- if translation_domain is same as(false) -%}
297-
{{- help -}}
297+
{%- if help_html is same as(false) -%}
298+
{{- help -}}
299+
{%- else -%}
300+
{{- help|raw -}}
301+
{%- endif -%}
298302
{%- else -%}
299-
{{- help|trans({}, translation_domain) -}}
303+
{%- if help_html is same as(false) -%}
304+
{{- help|trans({}, translation_domain) -}}
305+
{%- else -%}
306+
{{- help|trans({}, translation_domain)|raw -}}
307+
{%- endif -%}
300308
{%- endif -%}
301309
</p>
302310
{%- endif -%}

‎src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap3LayoutTest.php
+83Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,89 @@ public function testHelpAttr()
140140
);
141141
}
142142

143+
public function testHelpHtmlDefaultIsFalse()
144+
{
145+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
146+
'help' => 'Help <b>text</b> test!',
147+
]);
148+
149+
$view = $form->createView();
150+
$html = $this->renderHelp($view);
151+
152+
$this->assertMatchesXpath($html,
153+
'/span
154+
[@id="name_help"]
155+
[@class="help-block"]
156+
[.="[trans]Help <b>text</b> test![/trans]"]
157+
'
158+
);
159+
160+
$this->assertMatchesXpath($html,
161+
'/span
162+
[@id="name_help"]
163+
[@class="help-block"]
164+
/b
165+
[.="text"]
166+
', 0
167+
);
168+
}
169+
170+
public function testHelpHtmlIsFalse()
171+
{
172+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
173+
'help' => 'Help <b>text</b> test!',
174+
'help_html' => false,
175+
]);
176+
177+
$view = $form->createView();
178+
$html = $this->renderHelp($view);
179+
180+
$this->assertMatchesXpath($html,
181+
'/span
182+
[@id="name_help"]
183+
[@class="help-block"]
184+
[.="[trans]Help <b>text</b> test![/trans]"]
185+
'
186+
);
187+
188+
$this->assertMatchesXpath($html,
189+
'/span
190+
[@id="name_help"]
191+
[@class="help-block"]
192+
/b
193+
[.="text"]
194+
', 0
195+
);
196+
}
197+
198+
public function testHelpHtmlIsTrue()
199+
{
200+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
201+
'help' => 'Help <b>text</b> test!',
202+
'help_html' => true,
203+
]);
204+
205+
$view = $form->createView();
206+
$html = $this->renderHelp($view);
207+
208+
$this->assertMatchesXpath($html,
209+
'/span
210+
[@id="name_help"]
211+
[@class="help-block"]
212+
[.="[trans]Help <b>text</b> test![/trans]"]
213+
', 0
214+
);
215+
216+
$this->assertMatchesXpath($html,
217+
'/span
218+
[@id="name_help"]
219+
[@class="help-block"]
220+
/b
221+
[.="text"]
222+
'
223+
);
224+
}
225+
143226
public function testErrors()
144227
{
145228
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType');

‎src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTest.php
+83Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,89 @@ public function testHelpAttr()
197197
);
198198
}
199199

200+
public function testHelpHtmlDefaultIsFalse()
201+
{
202+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
203+
'help' => 'Help <b>text</b> test!',
204+
]);
205+
206+
$view = $form->createView();
207+
$html = $this->renderHelp($view);
208+
209+
$this->assertMatchesXpath($html,
210+
'/small
211+
[@id="name_help"]
212+
[@class="form-text text-muted"]
213+
[.="[trans]Help <b>text</b> test![/trans]"]
214+
'
215+
);
216+
217+
$this->assertMatchesXpath($html,
218+
'/small
219+
[@id="name_help"]
220+
[@class="form-text text-muted"]
221+
/b
222+
[.="text"]
223+
', 0
224+
);
225+
}
226+
227+
public function testHelpHtmlIsFalse()
228+
{
229+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
230+
'help' => 'Help <b>text</b> test!',
231+
'help_html' => false,
232+
]);
233+
234+
$view = $form->createView();
235+
$html = $this->renderHelp($view);
236+
237+
$this->assertMatchesXpath($html,
238+
'/small
239+
[@id="name_help"]
240+
[@class="form-text text-muted"]
241+
[.="[trans]Help <b>text</b> test![/trans]"]
242+
'
243+
);
244+
245+
$this->assertMatchesXpath($html,
246+
'/small
247+
[@id="name_help"]
248+
[@class="form-text text-muted"]
249+
/b
250+
[.="text"]
251+
', 0
252+
);
253+
}
254+
255+
public function testHelpHtmlIsTrue()
256+
{
257+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
258+
'help' => 'Help <b>text</b> test!',
259+
'help_html' => true,
260+
]);
261+
262+
$view = $form->createView();
263+
$html = $this->renderHelp($view);
264+
265+
$this->assertMatchesXpath($html,
266+
'/small
267+
[@id="name_help"]
268+
[@class="form-text text-muted"]
269+
[.="[trans]Help <b>text</b> test![/trans]"]
270+
', 0
271+
);
272+
273+
$this->assertMatchesXpath($html,
274+
'/small
275+
[@id="name_help"]
276+
[@class="form-text text-muted"]
277+
/b
278+
[.="text"]
279+
'
280+
);
281+
}
282+
200283
public function testErrors()
201284
{
202285
$form = $this->factory->createNamed('name', TextType::class);

‎src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php
+83Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,89 @@ public function testHelpAttr()
210210
);
211211
}
212212

213+
public function testHelpHtmlDefaultIsFalse()
214+
{
215+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
216+
'help' => 'Help <b>text</b> test!',
217+
]);
218+
219+
$view = $form->createView();
220+
$html = $this->renderHelp($view);
221+
222+
$this->assertMatchesXpath($html,
223+
'/p
224+
[@id="name_help"]
225+
[@class="help-text"]
226+
[.="[trans]Help <b>text</b> test![/trans]"]
227+
'
228+
);
229+
230+
$this->assertMatchesXpath($html,
231+
'/p
232+
[@id="name_help"]
233+
[@class="help-text"]
234+
/b
235+
[.="text"]
236+
', 0
237+
);
238+
}
239+
240+
public function testHelpHtmlIsFalse()
241+
{
242+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
243+
'help' => 'Help <b>text</b> test!',
244+
'help_html' => false,
245+
]);
246+
247+
$view = $form->createView();
248+
$html = $this->renderHelp($view);
249+
250+
$this->assertMatchesXpath($html,
251+
'/p
252+
[@id="name_help"]
253+
[@class="help-text"]
254+
[.="[trans]Help <b>text</b> test![/trans]"]
255+
'
256+
);
257+
258+
$this->assertMatchesXpath($html,
259+
'/p
260+
[@id="name_help"]
261+
[@class="help-text"]
262+
/b
263+
[.="text"]
264+
', 0
265+
);
266+
}
267+
268+
public function testHelpHtmlIsTrue()
269+
{
270+
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', null, [
271+
'help' => 'Help <b>text</b> test!',
272+
'help_html' => true,
273+
]);
274+
275+
$view = $form->createView();
276+
$html = $this->renderHelp($view);
277+
278+
$this->assertMatchesXpath($html,
279+
'/p
280+
[@id="name_help"]
281+
[@class="help-text"]
282+
[.="[trans]Help <b>text</b> test![/trans]"]
283+
', 0
284+
);
285+
286+
$this->assertMatchesXpath($html,
287+
'/p
288+
[@id="name_help"]
289+
[@class="help-text"]
290+
/b
291+
[.="text"]
292+
'
293+
);
294+
}
295+
213296
protected function renderForm(FormView $view, array $vars = [])
214297
{
215298
return (string) $this->renderer->renderBlock($view, 'form', $vars);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.