Neu Template des Adminmenus im Plugin zeigt keine Variablen an

crossover

Neues Mitglied
15. April 2024
7
0
Hallo,

ich bin gerade dabei testweise ein plugin zu entwickeln und komme nicht weiter. Ich habe jetzt die grundlegende Struktur des Plugins erstellt und versuche ganz simpel erst einmal in der .tpl-datei des plugins, für das Adminmenu, eine variable auszugeben die in der .php definiert wurde. Nur bekomme ich entweder ein weißen tab zurück oder undefined Array-key. foglendes steht in den Dateien:

info.xml

XML:
<Install>
    <FlushTags>CACHING_GROUP_CATEGORY, CACHING_GROUP_ARTICLE</FlushTags>
    <Adminmenu>
        <Customlink sort="1">
            <Name>Info</Name>
            <Filename>info.php</Filename>
        </Customlink>
    </Adminmenu>
</Install>

info.php

PHP:
<?php


$test = 'Hallo Welt!';

$smarty = new Smarty;
$smarty->assign('test', $test);

info.tpl
Code:
{* Zugriff auf die Variable aus der PHP-Datei *}
<pre>
{$test}
</pre>

Bootstrap.php
PHP:
public function renderAdminMenuTab(string $tabName, int $menuID, JTLSmarty $smarty): string
    {     
    
        $plugin     = $this->getPlugin();

        $backendURL = \method_exists($plugin->getPaths(), 'getBackendURL')
            ? $plugin->getPaths()->getBackendURL()
            : Shop::getAdminURL() . '/plugin.php?kPlugin=' . $plugin->getID();

        $smarty->assign('menuID', $menuID)
            ->assign('posted', null);*/

        $template = 'info.tpl';     
      
        return $smarty->assign('backendURL', $backendURL)->fetch($this->getPlugin()->getPaths()->getAdminPath() . '/templates/' . $template);
    }

folgendes ist meine Struktur des Plugins
  • adminmenu
    • templates
      • info.tpl
    • info.php
  • frontend
  • local
  • Migrations
  • src
  • Bootstrap.php
  • info.xml
  • README.md

Vielen Dank für eure Hilfe
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.430
2.569
Berlin
Firma
css-umsetzung
Probier es mal so:

Code:
global $plugin;
$test = 'Hallo Welt!';
$smarty->assign('test', $test);
$smarty->display($plugin->getPaths()->getAdminPath() . 'templates/info.tpl');
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Der Sinn der renderAdminMenuTab()-Methode in der Bootstrap.php ist eigentlich, dass du eben KEINE extra PHP-Datei mehr brauchst.
Du kannst also den <Filename>-Tag in der info.xml weglassen und direkt in der renderAdminMenuTab() ein assign() machen.
 

Ähnliche Themen