Neu Aktueller Master enthält keinen PHP Ordner mehr im Template

Dull

Gut bekanntes Mitglied
14. Juli 2014
114
10
Passau
Hi,

im aktuellen Master erfolgt die Templateeinbindung scheinbar etwas anders. Es existiert ja kein PHP-Ordner mit der darin enthaltenen functions.php mehr. Stattdessen gibt es die Bootstrap.php und Plugins.php im Template-Root.

Wir haben nun versucht unser ChildTemplate aus der RC2 Version in den aktuellen Master zu überführen. Das funktioniert allerdings nicht. Es wird im Frontend lediglich ein Whitscreen mit folgender Smarty Fehler ausgegeben:
Code:
Fatal error:  Uncaught  --> Smarty Compiler: Syntax error in template "file:/var/www/xxx/html/xxx/templates/NOVA/layout/index.tpl"  on line 19 "{container}" unknown tag 'container' <--  
thrown in /var/www/xxx/html/xxx/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 19

Der Fehler tritt auch dann auf wenn das aktuelle Master ChildTemplate ohne jeglichen Inhalt versucht wird zu laden. Müssen die ChildTemplates mit dem NOVA-Template als Parent nun irgendwie anders geladen werden? In der Doku findet sich dazu verständlicherweise noch nichts.



Greetz
Dull
 

Dull

Gut bekanntes Mitglied
14. Juli 2014
114
10
Passau
Ja genau das haben wir verwendet. Bindet man nur die template.xml bzw. den novachild Inhalt (ohne eigenen custom inhalt) ein funktioniert das eben auch nicht ^^
Und bis 30.07. können wir leider nicht warten :D
 

fibergirl

Sehr aktives Mitglied
14. April 2016
828
253
Zeitnahe Doku ist ganz wichtig, der 30.7. ist viel zu lange hin, die Child Templates müssen ja auch rechtzeitig fertig werden 🙂
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.359
340
Halle (Saale)
Ja genau das haben wir verwendet. Bindet man nur die template.xml bzw. den novachild Inhalt (ohne eigenen custom inhalt) ein funktioniert das eben auch nicht ^^
Und bis 30.07. können wir leider nicht warten :D

Bist du ganz sicher, dass du das richtige Child hochgeladen und aktiviert hast? Das von mir verlinkte funktioniert im Master bei mir problemlos.
 

Dull

Gut bekanntes Mitglied
14. Juli 2014
114
10
Passau
Bist du ganz sicher, dass du das richtige Child hochgeladen und aktiviert hast? Das von mir verlinkte funktioniert im Master bei mir problemlos.
Jap, gerade zur Sicherheit nochmals alles gelöscht, neu hochgeladen und installiert... Aber leider mit dem selben Ergebnis. Nur ein Whitescreen mit dem oben genannten Fehler.

EDIT: Über das Supportsystem wurde mir der Tipp gegeben, das novachild nicht per FTP, sondern im Admin-Backend auf der Template Übersichtsseite hochzuladen. Dadurch funktioniert die NovaChild vorlage zumindest schon einmal :)
Mit dem eigenen Template (aus RC2) funktioniert das aber leider nocht nicht. Der Fehler (+die fehlende functions.php Warnung) erscheine immernoch.

Code:
Warning:  include(): Filename cannot be empty in /var/www/xxx/html/xxx/JTL-5-final/templates/NOVA-EIGEN/php/functions.php on line 11

Warning: include(): Failed opening '' for inclusion (include_path='.:/opt/php/7.4.3/share/pear') in /var/www/xxx/html/xxx/JTL-5-final/templates/NOVA-EIGEN/php/functions.php on line 11

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "file:/var/www/xxx/html/xxx/JTL-5-final/templates/NOVA-EIGEN/layout/index.tpl" on line 23 "{container class="eigene-seiten"}" unknown tag 'container' <-- thrown in /var/www/xxx/html/xxx/JTL-5-final/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 23
 
Zuletzt bearbeitet:

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.359
340
Halle (Saale)
Naja, was steht denn in Zeile 11 deiner functions.php? Wahrscheinlich versuchst du die functions.php des Parents zu includen - die aber nicht mehr existiert.
Es muss die exakt selbe Struktur wie das neue NOVAchild haben - also eine Bootstrap.php die die des Parents extended.
 

Dull

Gut bekanntes Mitglied
14. Juli 2014
114
10
Passau
Naja, was steht denn in Zeile 11 deiner functions.php? Wahrscheinlich versuchst du die functions.php des Parents zu includen - die aber nicht mehr existiert.
Es muss die exakt selbe Struktur wie das neue NOVAchild haben - also eine Bootstrap.php die die des Parents extended.
Danke für den Tipp mit der functions.php... Die Warnings sind damit auch weg :)

Der Fatal Error bleibt aber auch mit der eingefügten Bootstrap.php (und dem Upload via Admin-Backend)
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.359
340
Halle (Saale)
Hinweis für die Allgemeinheit: Es lag hier am falschen Namespace.

Die Bootstrap.php muss im Namespace "Name-des-Templates" liegen.
Heißt also der Ordner "MeinTollesTemplate" muss der Namespace der Bootstrap.php auch "Template\MeinTollesTemplate" sein (und nicht NOVA oder NOVAchild).

Da Namespaces in PHP keinen Bindestrich enthalten dürfen, darf der Templateordner dann auch nicht mehr z.B. "NOVA- child-template" o.ä. sein.
 
  • Gefällt mir
Reaktionen: nmueller und Dull

hotzeplotz

Aktives Mitglied
4. Februar 2019
65
3
Danke soweit nachvollziehbar. Wie verhält sich das mit eigenen Plugins?

Wenn ich es versuche löst das folgende Meldung aus.

Fatal error: Uncaught Error: Class 'Template\NOVAchild\Plugins' not found

PHP:
<?php declare(strict_types=1);
// templates/novachild/Plugins.php

namespace Template\NOVAchild;

class Plugins
{

}

PHP:
<?php declare(strict_types=1);
// templates/novachild/Bootstrap.php

namespace Template\NOVAchild;

class Bootstrap extends \Template\NOVA\Bootstrap
{
    public function boot(): void
    {
        parent::boot();
        new Plugins();
    }
}

Wie mache ich das richtig?

Danke und schönen Tag noch.
ciao, Stefan