Datenbankabfrage zerschießt das Template - Anfängerfrage

opflaum

Aktives Mitglied
4. Februar 2016
14
0
Hallo zusammen!

Ich versuche mich gerade in der Templateentwicklung beim JTL- Shop. Dazu möchte ich gerne zufällig eine Kundenbewertung auf der Startseite ausgeben. Das Ganze versuche ich folgendermaßen:

In der functions.php habe ich folgende Funktion erstellt:
PHP:
/* Bewertungen für Startseite auslesen */
function get_bewertungen_home($params, &$smarty)
{
    $bewertung = new BewertungZufall();
    $smarty->assign($params['assign'], $bewertung->getBewertungZufall());
}
Dazu habe ich eine Datei namens: class.JTL-Shop.BewertungZufall.php erstellt mit folgendem Inhalt:
PHP:
<?php

class BewertungZufall
{
    public function getBewertungZufall()
    {
            $sqlselect = "SELECT cName FROM tbewertung WHERE nAktiv = '1' ORDER BY rand() LIMIT 0,1";
            
            $dbarray = Shop::DB()->query($sqlselect, 1);
            
            return $dbarray;
    }    
}

?>
Das Ganze versuche ich nun in meiner footer.tpl folgendermaßen auszugeben:
HTML:
{get_bewertungen_home assign='bewertung'}
Name: {$bewertung->cName}
Wenn ich die Seite nun aufrufe, wird nur noch ein weißer Bildschirm angezeigt... :( Kann mir jemand sagen was ich falsch mache?????
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.362
340
Halle (Saale)
AW: Datenbankabfrage zerschießt das Template - Anfängerfrage

Du musst in der functions.php die Funktion auch entsprechend registrieren.
In Shop4 wäre das dann
Code:
$smarty->registerPlugin('function', '[COLOR=#333333]get_bewertungen_home[/COLOR]', '[COLOR=#333333]get_bewertungen_home[/COLOR]');
Und die Klasse sollte auch irgendwie included werden..

Und ganz generell sollte die Fehleranzeige via

Code:
define('SHOP_LOG_LEVEL', E_ALL);
define('SMARTY_LOG_LEVEL', E_ALL);
ini_set('display_errors', 1);

aktiviert werden, das sollte dann aufschlussreicher als eine weiße Seite sein.
 

opflaum

Aktives Mitglied
4. Februar 2016
14
0
AW: Datenbankabfrage zerschießt das Template - Anfängerfrage

Oh nein... ich hatte nur vergessen die Funktion zu registrieren :) VIELEN DANK!
 

SportNet

Sehr aktives Mitglied
16. Oktober 2014
168
43
AW: Datenbankabfrage zerschießt das Template - Anfängerfrage

Du musst in der functions.php die Funktion auch entsprechend registrieren.
In Shop4 wäre das dann
Code:
$smarty->registerPlugin('function', '[COLOR=#333333]get_bewertungen_home[/COLOR]', '[COLOR=#333333]get_bewertungen_home[/COLOR]');
Und die Klasse sollte auch irgendwie included werden..

Hallo Felix,

im Falle eines Plugins (in diesem Fall eine alternativ Anzeige des Kategoriefilters) soll die Function ja nicht in der der functions.php definiert werden, sondern "extern" im Pluginverzeichnis.

Ich habe es dann mit Hook 22 probiert, aber dies funktioniert nur so lange die Filter "seoartige" Urls erzeugen (www.shopname.de/Herstellername:Kategorie__Merkmal1__Merkmal2). Sobald aber unter Umständen die "echten" Urls ("navi.php?h=450&suche=&Sortierung=0&af=0&kf=97") entstehen, wird ein PHP-Fehler geworden:

PHP:
Fatal error:  Call to undefined function name_der_funktion() in .....

Welchen hook wähle ich dann für die php Datei in der auch die registrierung stattfindet, so dass die Registrierung der Funktion in dem Fall funktioniert?

Danke und Gruß
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.362
340
Halle (Saale)
AW: Datenbankabfrage zerschießt das Template - Anfängerfrage

Am besten Hook 133 (HOOK_SMARTY_INC). Sobald der läuft, wurde das Smarty-Objekt erstellt und es können Funktionen registriert werden.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL Shop 5 Daten - In "leere" JTL Wawi Datenbank importieren - Ist das möglich? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Das Akkordeon im OnPage Composer lässt nicht nicht bearbeiten Allgemeine Fragen zu JTL-Shop 0
Neu Auftrag verpacken druckt auf 2 Drucker RE aus / wo kann das eingestellt werden? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Wird jetzt das Widerrufsrecht aufgehoben? Gelöste Themen in diesem Bereich 3
Neu Nach Update auf 5.3 funktioniert das Video-Portlet für lokale Videos nicht Gelöste Themen in diesem Bereich 9
Wo befindet sich das Feld mit der Information für "Zustandsbeschreibung" auf Ebay? JTL-Wawi 1.8 9
Neu Und ewig grüsst das Murmeltier. "The EntityManager is closed" Shopware-Connector 0
Neu Wie erstelle ich das richtige Layout für handy, Desktop etc Allgemeine Fragen zu JTL-Shop 0
Auftragssplitt nimmt das aktuelle Datum JTL-Wawi 1.8 13
Neu Lieferanten Preis sollte das Datum erkenntlich sein (gültig ab/seit...) JTL-Wawi - Ideen, Lob und Kritik 0
Neu Das leidige Thema Kategorien Shopify-Connector 3
Neu ist das Hinzufügen eines zusätzlichen Hinweis bei Artikeln, mit bestimmtem Merkmal, die auf die Einkaufsliste wandern möglich ? User helfen Usern - Fragen zu JTL-Wawi 0
Rechnung drucken/mailen, ist das wirklich euer Ernst?? JTL-Wawi 1.8 4
Neu Amazon Lister übergibt nur das Hauptbild an Amazon, weiter Bilder werden nicht übertragen Amazon-Lister - Fehler und Bugs 0
Neu Versandarten Spedition Stückgut (gestaffelt nach Gewicht und PLZ) - Geht das auch anders? User helfen Usern - Fragen zu JTL-Wawi 0
V1.8.11: "Versand" / "Lieferscheine versendet" - Wo ist das Suchfeld für Sendungsnummer geblieben? JTL-Wawi 1.8 2
Neu Kategoriebilder werden immer mit großem leeren Platz (wie für das 2.Bild) angezeigt Allgemeine Fragen zu JTL-Shop 6

Ähnliche Themen