Neu action im admin-tab?

krahni

Mitglied
7. Juli 2022
44
5

„adminmenu/“ Struktur​

Das Adminmenu befindet sich bei Onlineshops ab Version 5.x direkt in der Plugin-Root.
(Falls kein Adminmenu in der info.xml definiert wurde, können Sie diesen Ordner auch weglassen.)

Ein Plugin kann beliebig viele eigene Links (Custom-Links) im Adminbereich enthalten.
Falls Sie Custom Links in der info.xml angegeben haben, muss in jedem adminmenu/-Ordner für jeden Custom Link eine entsprechende PHP-Datei enthalten sein.

<Adminmenu>
<Customlink sort="1">
<Name>Statistik</Name>
<Filename>stats.php</Filename>
</Customlink>
</Adminmenu>

In diesem Beispiel wird im Backend von JTL- Shop ein Custom Link erstellt, der als Tab mit dem Namen „Statistik“ erscheint. Dieser Tab führt die Datei stats.php, im Ordner adminmenu/, aus. Diese Datei inkludiert die Smarty-Templateengine und lädt ein eigenes Template, das Sie in einem selbst definierten Ordner ablegen können.

plugins/[PluginName]/
├── adminmenu
│ ├── stats.php
│ ├── radiosource.php
│ └── selectsource.php
├── frontend
│ └── ...
├── info.xml
├── README.md
├── Bootstrap.php
└── ...

Weitere Verzeichnisse sind dem Pluginentwickler selbst überlassen.
Es ist natürlich auch möglich, das Adminmenü nur mit Einstellungen (Setting-Links) zu füllen.

Moin,
gibt's dazu irgendwo eine Beispiel-Datei? Das will bei mir nicht so richtig funktionieren ...

info.xml:
<Adminmenu>
<Customlink sort="1">
<Name>TEST</Name>
<Filename>/template/test.tpl</Filename>
</Customlink>

test.tpl:
<p><div class="test_cases">{lang key='lang_var_plugin_description' section='test_sec'}</div></p>
{$cssPath}
<br>
{* Test-Tabelle*}
<p><div class="test_cases">
{if !empty($output)} {* Table ausgeben *}
{$output}
{/if}
</div></p>
<br>
{* Button-Leiste *}
<table>
<tr>
<td>
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" class="jtl_token" name="jtl_token" value="{$smarty.session.jtl_token}">
<input type="hidden" name="action" value="2">
<button class="btn btn-primary" type="submit">DB-Tabelle Test1 leeren</button>
</form>
</td>
<td>
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" class="jtl_token" name="jtl_token" value="{$smarty.session.jtl_token}">
<input type="hidden" name="action" value="6">
<button class="btn btn-primary" type="submit">DB-Tabelle Test2 leeren</button>
</form>
</td>
</tr>
</table>
</div>
ergibt das:
Unbenannt.png
smarty wird schon nicht aufgelöst ...
Was mache ich falsch?
 
Zuletzt bearbeitet:

krahni

Mitglied
7. Juli 2022
44
5
So ...
Habe mir das aus dem JTL Test Plugin abgeguckt, mit dem tab2.tpl und der
public function renderAdminMenuTab(string $tabName, int $menuID, JTLSmarty $smarty): string
in Bootstrap.php ...
Hab dort auch mal im Ordner adminmenu eine tab2.php angelegt, die einer smarty-variable was übergibt (auch $posted) - die tab2.tpl bekommt aber nix zurück ...
Funktioniert das Template-System im Admin-Bereich nicht - oder ich mal wieder zu doof? ;)