Neu Eigene Funktion in NOVA schreiben

  • Temporäre Senkung der Mehrwertsteuer Hier findet ihr gesammelt alle Informationen, Videos und Fragen inkl. Antworten: https://forum.jtl-software.de/threads/mehrwertsteuer-senkung-vom-01-07-31-12-2020-offizieller-diskussionthread-video.129542/

wespread.online

Mitglied
29. September 2020
35
6
Also wenn ich laut der Dokumentation: https://docs.jtl-shop.de/de/latest/...cks.html#eigene-smarty-funktionen-integrieren

im Child-Template in Bootstrap.php folgende Funktion schreibe:

PHP:
class Bootstrap extends \Template\NOVA\Bootstrap
{
    public function getPI($precision)
    {
        $iterator = 1;
        $factor   = -1;
        $nenner   = 3;

        for ($i = 0; $i < $precision; $i++) {
            $iterator = $iterator + $factor / $nenner;
            $factor   *= -1;
            $nenner   += 2;
        }

        return $iterator * 4;
    }
}
und in Template nutze:
PHP:
{getPi(12)}
dann bekomme ich folgende Fehler:

"{getPi(12)}" unknown function 'getPi'
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
843
113
Halle (Saale)
Kann es sein, dass du den Artikel nicht ganz zu Ende gelesen hast? Der Teil mit
Code:
$this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getPI', [$this, 'getPI']);
fehlt in deinem Codebeispiel jedenfalls und die Fehlermeldung lässt darauf schließen, dass die Smarty-Funktion nicht registriert wurde.
 

wespread.online

Mitglied
29. September 2020
35
6
Ich bekomme trotzdem ein Fehler, genau bei dieser Zeile:

Fatal error: Uncaught Error: Class 'Template\NOVAChild\Smarty' not found in / shop/templates/NOVAChild/Bootstrap.php:14 Stack trace: #0 /shop/includes/src/Smarty/JTLSmarty.php(126): Template\NOVAChild\Bootstrap->boot() #1 /shop/includes/src/Smarty/JTLSmarty.php(76): JTL\Smarty\JTLSmarty->initTemplate() #2 /shop/includes/src/Smarty/JTLSmarty.php(203): JTL\Smarty\JTLSmarty->__construct(false, 'frontend') #3 /shop/includes/smartyInclude.php(2): JTL\Smarty\JTLSmarty::getInstance() #4 in /shop/templates/NOVAChild/Bootstrap.php on line 14
 

wespread.online

Mitglied
29. September 2020
35
6
Hallo,

danke erstmal für das schnelle Feedback. Aber ich bekomme dann wieder ein Fehler, dass z.B. {container} nicht kompiliert werden kann (Syntax Error). Könntet ihr mal das testen, ein eigenes Funktion in Child-Template zu erstellen?
 

wespread.online

Mitglied
29. September 2020
35
6
Wenn ich den boot() function deaktviere, dann funktioniert es wieder. Ich glaub nicht, dass es bei Namespace liegt.

PHP:
<?php declare(strict_types=1);

namespace Template\NOVAChild;

use Smarty;

/**
* Class Bootstrap
* @package Template\NOVAChild
*/

class Bootstrap extends \Template\NOVA\Bootstrap
{
    public function boot(): void
    {
        try {
            $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getPI', [$this, 'getPI']);
        } catch (\SmartyException $e) {
            throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
        }
    }
    public function getPI($precision)
    {
        $iterator = 1;
        $factor   = -1;
        $nenner   = 3;
        for ($i = 0; $i < $precision; $i++) {
            $iterator = $iterator + $factor / $nenner;
            $factor   *= -1;
            $nenner   += 2;
        }
        return $iterator * 4;
    }
}
 

wespread.online

Mitglied
29. September 2020
35
6
Code:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "templates/NOVA/layout/index.tpl" on line 19 "{container}" unknown tag 'container' <-- thrown in /includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 19
das hat aber nichts mit dem Namespace zu tun. wenn ich den boot() funktion hinzufüge kommt das.
 

wespread.online

Mitglied
29. September 2020
35
6
Also ich krieg das nicht hin, und ich glaube es auch nicht, dass ich der einzige bin, dass sowas nicht checken wird.
Wir schreiben jetzt seit 3 Tagen hin und her, und kommen nicht auf eine Lösung. Ihr habt auch nicht eine vernüftige Dokumentation, damit ein Entwickler was anfangen kann.

Ist es einfach so schwer, ein snippet in Dokumentation zu machen, oder ein Funktion in dem Child-Template von NOVA in gitlab hinzuzfügen.

Wie soll den diese Community wachsen? Ihr als JTL, müsst ein bisschen über den Tellerrand hinausschauen. Ihr entwickelt ein Software in Jahr 2020, sagt dass JTL internationalisiert wird, und es gibt immer noch deutsche-Begriffe im Quellcode. Wann soll denn sowas internationalisert werden in Shop6, im Jahr 2060?
 

wespread.online

Mitglied
29. September 2020
35
6
Code:
public function boot(): void
    {
        parent::boot();
        try {
            $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'getPI', [$this, 'getPI']);
        } catch (\SmartyException $e) {
            throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
        }
    }
nächste Fehler: "{getPi(12)}" unknown function 'getPi'
 

wespread.online

Mitglied
29. September 2020
35
6
Danke für die Hilfe.

Auf jedem fall beachtet ihr auch das gleiche Fehler von dem Template Dokumentation. Ich habs einfach von der Doku copy/paste genommen.
 

wespread.online

Mitglied
29. September 2020
35
6
Also ich sehe, dass ihr die Dokumentation auch aktualisiert habt... Aber ich kann immer noch kein eigene Funktion in Child-Template nutzen.
Ich bekomme folgende Fehler:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/templates/NOVAChild/page/index.tpl" on line 5 "{getPI(12)}" unknown function 'getPI' <-- thrown in /includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 5
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.393
327
Halle
Sorry und Danke für deine Geduld... :oops: Die Doku hat an der Stelle offensichtlich noch "Schwächen".

Die getPI-Funktion sollte besser so aussehen:
PHP:
public function getPI($args)
{
    $precision = $args['precision'];
    $iterator  = 1;
    $factor    = -1;
    $nenner    = 3;

    for ($i = 0; $i < $precision; $i++) {
        $iterator = $iterator + $factor / $nenner;
        $factor   *= -1;
        $nenner   += 2;
    }

    return $iterator * 4;
}
Und der Aufruf im Template sollte natürlich den Regeln für Smarty-Funktionen folgen...
PHP:
{getPI precision=12}
 
Ähnliche Themen Forum Antworten Erstelldatum des Themas
Neu Eigene Übersichten - Kunden - Kundenumsatz pro Jahr anzeigen Individuelle Listenansichten in der JTL-Wawi 0
Neu Eigene Kundenfelder - komisches Verhalten JTL-Shop - Fehler und Bugs 2
Neu eigene CSV für Kampagne erstellen Plugins für JTL-Shop 0
Neu Startseite unter "Eigene Inhalte" oder Textbaustein aus Composer? Betrieb / Pflege von JTL-Shop 2
Neu JTL5 - NOVA: Eigene Seite über Artikelattribute im Tab einbinden Templates für JTL-Shop 3
Neu Wawi Sql-Abfrage des globalen Artikelnamens Deutsch in eigene Übersicht Individuelle Listenansichten in der JTL-Wawi 2
Neu Eigene Seiten wird mehrfach dargestellt Einrichtung von JTL-Shop4 1
Neu Eigene Felder aus dem Shop entfernen WooCommerce-Connector 1
Neu Bug "eigene Felder" in Pickliste für Packtisch behoben ? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Eigene Felder exportieren JTL-Ameise - Fehler und Bugs 2
Gelöst Eigene Felder in Artikeln als Bedingte Formatierung in Angebotsvorlage nutzen Gelöste Themen in diesem Bereich 1
Neu Eigene Übersicht: Verkauf > Aufträge > Artikel und Bestände pro Lager Individuelle Listenansichten in der JTL-Wawi 5
In Bearbeitung Amazon Custom - Eigene Übersichten Ansicht - Mehr als eine Bestellpositionen Einrichtung und Installation von JTL-eazyAuction 1
Neu Eigene Felder mit default-Werten belegen Arbeitsabläufe in JTL-Wawi 2
Beantwortet Eigene Felder in dot liquid Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 5
Neu Eigene Übersicht Versand>Aufträge Artikelmenge über alle Einträge Individuelle Listenansichten in der JTL-Wawi 2
Neu Eigene Felder: Werteliste in Dateityp nicht wählbar User helfen Usern - Fragen zu JTL-Wawi 12
Gelöst Eigene felder Gelöste Themen in diesem Bereich 1
Neu Eigene Felder aus WooCommerce synchronisieren WooCommerce-Connector 0
Neu eigene tpl. in Nova Child JTL-Shop - BETA - Feedback und Bugmeldungen 3
Neu Eigene Felder abfragen Individuelle Listenansichten in der JTL-Wawi 0
In Bearbeitung Eigene Ansichten unter Markplätze "Zu Aktualisierende" (ebay) Individuelle Listenansichten in der JTL-Wawi 4
Issue angelegt Eigene Ticketnummern erstellen auserhalb des Nummernkreises Servicedesk (Beta) 2
Beantwortet Upload Modul ohne Funktion Allgemeine Fragen zu JTL-Shop 3
Neu Artikel zu Warenkorb hinzufügen Funktion Allgemeine Fragen zu JTL-Shop 8
Neu Menüpunkt im Forum "Deine Inhalte" ohne Funktion? Smalltalk 0
Neu Funktion Bei Umlagerung nach selbst bestimmten Positionen splitten. JTL-Wawi - Ideen, Lob und Kritik 1
Gelöst NOVA Bildsticker ohne Funktion JTL-Shop - BETA - Feedback und Bugmeldungen 5
Neu EC-Beleg über Kassendruck ohne Funktion JTL-POS - Fehler und Bugs 0
Neu Artikelmenge verändern - Staffelpreis ohne Funktion JTL-POS - Fehler und Bugs 1
Neu "Ausnahme für Firma hinzufügen" ohne Funktion JTL-ShippingLabels - Fehler und Bugs 2
Neu Merkmal Farbe Template Nova Allgemeine Fragen zu JTL-Shop 0
Neu Mitlaufendes Header Menü in JTL Shop 5 (NOVA) Templates für JTL-Shop 2
Neu SASS in NOVA Child-Template überschreiben Templates für JTL-Shop 1
Neu Artikeldetailseite zerschossen - kein Ablegen der Artikel in warenkorb mehr möglich Shop5 / Nova template Allgemeine Fragen zu JTL-Shop 2
Neu Nova Template / JTL Header Plugin / Check-Out Templates für JTL-Shop 2
Neu Nova Child-Template führt zu einem defekten Shop Templates für JTL-Shop 2
Neu NOVA Template Hintergrundfarbe (main) ändern Templates für JTL-Shop 9
Neu Shop Logo Größe im Nova / JTL 5 Templates für JTL-Shop 10
Neu Themes für Nova Template Templates für JTL-Shop 2
Neu Bilderoverlay/Sticker Shop5 Nova Einrichtung von JTL-Shop4 16
In Bearbeitung Wird es ein eBay NOVA-Template geben? eBay-Designvorlagen - Ideen, Lob und Kritik 2
Neu JTL Standardtext bzw. Werbung auf NOVA Startseite entfernen Allgemeine Fragen zu JTL-Shop 2
Neu NOVA: falsche Anzeige der Versandkosten Einrichtung von JTL-Shop4 6
Neu NOVA: Namen der Unterkategorien werden abgeschnitten Einrichtung von JTL-Shop4 1
Neu Sammelthread: NOVA-Template - Wünsche und Verbesserungen Templates für JTL-Shop 2
Neu NOVA Template zeigt Footer nicht an nach Update auf Shop 5. Installation / Updates von JTL-Shop 15
Neu JTL5 - NOVA - Artikelübersicht Pricerange width einstellen JTL-Shop - Fehler und Bugs 2
Neu NOVA Shoplogo Größe anpassen Templates für JTL-Shop 17
Neu NOVA Überschriften mit Theme Editor ändern Templates für JTL-Shop 2
Ähnliche Themen