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.369
347
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
237
56
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.369
347
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 Einkauf organisieren, wenn Lager ohne Lagerbestand - wie macht Ihr das? Arbeitsabläufe in JTL-Wawi 0
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Bestand anderer Kinderartikel wird in Artikelstammdaten mit angezeigt – wie kann man das deaktivieren? JTL-Wawi 1.11 2
Neu Staffelpreise wird mit Sternchen angezeigt - wie ändere ich das Allgemeine Fragen zu JTL-Shop 0
Stückzahl teilbar rückgängig machen, geht das? JTL-Wawi 1.10 4
Sammelbuchung bei Zahlungsausgang über das Zahlungsmodul JTL-Wawi 1.10 0
Neu FBA-Lagerbestand wird nicht mehr eingelesen - Fehler beim Verarbeiten von Amazon Events - FbaInventoryImported: Das angegebene Argument liegt außerha Amazon-Anbindung - Fehler und Bugs 13
Neu Attribut bei bestimmten Artikel steuert das Erscheinen einer Checkbox vor Bestellabschluss Allgemeine Fragen zu JTL-Shop 1
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu DPD und das Gewicht auf dem Label JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Feature Requests für das News System Refactoring JTL-Shop - Ideen, Lob und Kritik 7
Neu Gutscheine an JTL POS ohne Voucher - wie macht Ihr das? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Zusatzverpackung pro Artikel berechnen. Geht das? Allgemeine Fragen zu JTL-Shop 5
Neu Eine Rechnungsposition auf zwei Teilrechnungen berechnen - Wie löst ihr das? Arbeitsabläufe in JTL-Wawi 7
Geschenke erstellen - geht das überhaupt? Rabatt? JTL-Wawi 1.10 2
Neu Zahlungsmodul und das VoP ab dem 5.10. Arbeitsabläufe in JTL-Wawi 43
Bei der Länderverwaltung fehlt das Bearbeiten-Symbol Einrichtung JTL-Shop5 1
Neu Was bedeutet das genau: Anzahl nötiger Bestellungen (Zahlungsart im Shop Backend) Allgemeine Fragen zu JTL-Shop 1

Ähnliche Themen