Skip to content

Commit e65211a

Browse files
authored
[TASK] Suggest link to ViewHelper Reference (#656)
If you accidently stumbled on the Api page of a viewhelper (they are not very helpful) an info box with a link suggests you go to the reference instead: ![image](https://github.com/user-attachments/assets/e60d0521-cd23-4596-a0a9-ba8537c6aa9a)
1 parent f191010 commit e65211a

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<h2 class="phpdocumentor-content__title">
2+
{{ node.name }}
3+
4+
{% if node.parent %}
5+
<span class="phpdocumentor-element__extends">
6+
extends {{ node.parent|route('class:short') }}
7+
</span>
8+
{% endif %}
9+
10+
{% if usesPackages %}
11+
<div class="phpdocumentor-element__package">
12+
in package
13+
<ul class="phpdocumentor-breadcrumbs">
14+
{% for breadcrumb in packages(node) %}
15+
<li class="phpdocumentor-breadcrumb"><a href="{{ link(breadcrumb) }}">{{ breadcrumb.name }}</a></li>
16+
{% endfor %}
17+
</ul>
18+
</div>
19+
{% endif %}
20+
21+
{% if node.interfaces is not empty %}
22+
<span class="phpdocumentor-element__implements">
23+
implements
24+
{% for interface in node.interfaces %}
25+
{{ interface|route('class:short') }}{% if not loop.last %}, {% endif %}
26+
{% endfor %}
27+
</span>
28+
{% endif %}
29+
30+
{% if node.usedTraits is not empty %}
31+
<span class="phpdocumentor-element__extends">
32+
uses
33+
{% for trait in node.usedTraits %}
34+
{{ trait|route('class:short') }}{% if not loop.last %}, {% endif %}
35+
{% endfor %}
36+
</span>
37+
{% endif %}
38+
</h2>
39+
40+
{% set isViewHelper = false %}
41+
42+
{% if node.parent %}
43+
{% if node.parent.name == 'AbstractViewHelper' or node.parent.name == 'AbstractTagBasedViewHelper' or node.parent.name == 'FormViewHelper' %}
44+
45+
{% set isViewHelper = true %}
46+
{% set viewHelper = node|replace({'\\': '/'}) %}
47+
{% set viewHelper = viewHelper|replace({'/TYPO3/CMS/Fluid/ViewHelpers': '/Global'}) %}
48+
{% set viewHelper = viewHelper|replace({'/TYPO3/CMS/Core/ViewHelpers': '/Core'}) %}
49+
{% set viewHelper = viewHelper|replace({'/TYPO3/CMS/Backend/ViewHelpers': '/Backend'}) %}
50+
{% set viewHelper = viewHelper|replace({'/TYPO3/CMS/Form/ViewHelpers': '/Form'}) %}
51+
{% set viewHelper = viewHelper|replace({'ViewHelper': ''}) %}
52+
{% set viewHelperName = viewHelper|replace({'/Global/': 'f:'}) %}
53+
{% set viewHelperName = viewHelperName|replace({'/Core/': 'core:'}) %}
54+
{% set viewHelperName = viewHelperName|replace({'/Backend/': 'backend:'}) %}
55+
{% set viewHelperName = viewHelperName|replace({'/Form/': 'formvh:'}) %}
56+
{% set viewHelperName = viewHelperName|replace({'/': '.'})|lower %}
57+
<div class="phpdocumentor-admonition">
58+
<svg class="phpdocumentor-admonition__icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
59+
<article>
60+
<strong>Viewhelper</strong>
61+
<p>This class is the implementation of a Fluid ViewHelper.</p>
62+
<p>View this class in the TYPO3 ViewHelper reference:
63+
<a href="https://docs.typo3.org/other/typo3/view-helper-reference/{{ parameter.typo3_version }}/en-us{{ viewHelper }}.html"
64+
target="_blank"
65+
>
66+
&lt;{{ viewHelperName }}&gt;
67+
</a>
68+
</p>
69+
</article>
70+
</div>
71+
{% endif %}
72+
{% endif %}
73+
74+
<div class="phpdocumentor-label-line">
75+
{% if node.isReadOnly %}
76+
{{ include('components/label.html.twig', {name: 'Read only', value: 'Yes'}, with_context = false) }}
77+
{% endif %}
78+
79+
{% if node.isFinal %}
80+
{{ include('components/label.html.twig', {name: 'Final', value: 'Yes'}, with_context = false) }}
81+
{% endif %}
82+
83+
{% if node.isAbstract %}
84+
{{ include('components/label.html.twig', {name: 'Abstract', value: 'Yes'}, with_context = false) }}
85+
{% endif %}
86+
</div>

0 commit comments

Comments
 (0)