Preloader
Auf dieser Website werden Daten wie z.B. Cookies gespeichert, um wichtige Funktionen der Website, einschließlich Analysen, Marketingfunktionen und Personalisierung zu ermöglichen. Sie können Ihre Einstellungen jederzeit ändern oder die Standardeinstellungen akzeptieren.
Cookie Hinweise
Datenschutzregelung
26.06.2024

Gambio

Dokumentation

Hilfe findet ihr hier

Debugging in Gambio

Developer Mode

Um den Developer Mode in Gambio zu aktivieren, muss im Root-Verzeichnis des Shops eine Datei mit dem Namen .dev-environment erstellt werden. Sobald dieser Modus aktiviert ist, können Entwickler im Browser-Inspektor mithilfe neu eingefügter Kommentare sehen, in welcher Datei und in welchem Block sich der inspizierte Code befindet. Zudem steht unten im Browserfenster ein PHP Debug Bar Plugin zur Verfügung, das zusätzliche Debugging-Informationen liefert.

Debugging mit Smarty

Smarty bietet verschiedene Methoden, um den Inhalt und die Struktur von Template-Variablen zu überprüfen. Hier sind einige nützliche Funktionen und Techniken:

Debugging-Popup aktivieren

Das Einfügen des {debug}-Tags in dein Template öffnet beim Laden der Seite ein Popup-Fenster, das alle verfügbaren Variablen und deren Werte anzeigt.

Beispiel:

{debug}

Platziere diesen Tag an einer beliebigen Stelle in deinem Template, vorzugsweise am Anfang oder an einer Stelle, an der du die aktuellen Variablen überprüfen möchtest.

Variable Dumping in Smarty

Um den Inhalt von Smarty-Variablen direkt im Template zu überprüfen, kannst du die @dump Funktion verwenden. Diese Methode gibt den Inhalt der Variable in einer lesbaren Formatierung aus.

Beispiel:

{$p_imgs|@dump}

Durch das Einfügen dieses Codes in dein Template wird der Inhalt der Variable $p_imgs direkt auf der Seite ausgegeben, was das Debugging von Template-Daten vereinfacht.

Variable Ausgeben mit debug_print_var

Die Funktion debug_print_var in Smarty bietet eine detaillierte und formatierte Ausgabe der Variablen, die sich von den Standard-Debugging-Methoden unterscheidet.

Beispiel:

{debug_print_var variable=$myVariable}

Unterschiede zu @dump:

  • Detaillierte Ausgabe: debug_print_var gibt detaillierte Informationen über den Typ und die Struktur der Variable aus.
  • Formatierte Darstellung: Die Ausgabe ist sauber formatiert und leichter zu lesen als die rohe Ausgabe von print_r oder var_dump.

Variable Ausgeben mit print_r und var_dump

Neben @dump und debug_print_var kannst du auch print_r und var_dump verwenden, um detaillierte Informationen über die Struktur und den Inhalt von Variablen zu erhalten.

Beispiel mit print_r:

<pre>
    {$variable|@print_r}
</pre>

Beispiel mit var_dump:

<pre>
    {$variable|@var_dump}
</pre>

Diese Methoden sind besonders nützlich, wenn du komplexe Arrays oder Objekte debuggen musst.

Standard Gambio Widgets überschreiben

Wenn du Änderungen an den Einstellungen der Gambio-Widgets vornehmen möchtest, musst du die betreffende Widget-Datei in den Ordner themes\Agentur77\javascripts\system\widgets kopieren und dort bearbeiten bzw. überschreiben.

Beispiel: Um ein Widget namens WIDGET_NAME zu ändern, kopiere die Datei in den Ordner:

themes\Agentur77\javascripts\system\widgets\WIDGET_NAME.js

Bearbeite dann diese Datei nach deinen Anforderungen.

Widget deaktivieren

Um ein Widget zu deaktivieren, erstelle eine Datei mit demselben Namen im gleichen Verzeichnis und füge den folgenden Code ein:

Beispiel: Erstelle die Datei themes\Agentur77\javascripts\system\widgets\WIDGET_NAME.js und füge diesen Code ein:

gambio.widgets.module("WIDGET_NAME", [], function () {
  return {
    init(done) {
      done();
    },
  };
});

Dieser Code überschreibt das bestehende Widget und sorgt dafür, dass es keine Funktionalität mehr hat, indem die init-Methode sofort abgeschlossen wird, ohne etwas zu tun.

“Weitere” aus dem Menü entfernen

Wenn zu wenig Platz ist für ein Menüpunkt, landet dieser im “Weitere” Dropdown. So kannst du es entfernen

  1. Kopiere “menu.js” aus themes/malibu/javascripts/system/widgets/menu.js
  2. Setze es in themes/agentur77/javascripts/system/widgets/menu.js ein
  3. Setze die Variable switchElementPosition auf false
  4. Cache löschen

Tipps

Falls dir das auf die Nerven geht, immer wieder bei .html Dateien im themes/**/html/ Ordner die Sprache in VS Code auf Smarty umzustellen, kannst du folgenden Snippet in der VS Code➜ settings.json Datei einsetzen:

"files.associations": {
    "**/themes/**/html/**/*.*": "smarty"
},

Nützliche Tipps für die Entwicklung in Gambio

1. Nutzung von Gambio-Hooks

Gambio-Hooks sind ein leistungsstarkes Werkzeug, um den Code an spezifischen Stellen zu erweitern, ohne den Kerncode zu ändern. Sie ermöglichen es, Funktionalitäten an vordefinierten Stellen im Code einzufügen.

Beispiel:

class MyCustomModule
{
    public function proceed()
    {
        // Custom code here
    }
}

// Registrierung des Hooks
MainFactory::create('MyCustomModule');

2. Smarty Plugins nutzen

Smarty Plugins erweitern die Funktionalität von Smarty Templates. Du kannst eigene Plugins schreiben, um wiederverwendbare Template-Logik zu implementieren.

Beispiel für ein Smarty Plugin:

// Datei: GXModules/MyModule/SmartyPlugins/my_custom_plugin.php
function smarty_function_my_custom_plugin($params, $smarty)
{
    // Custom logic here
    return 'Custom Output';
}

Verwendung im Template:

{my_custom_plugin param1="value1"}

3. Effiziente Nutzung der Datenbank

Verwende die Gambio-Datenbankklasse, um sicher und effizient auf die Datenbank zuzugreifen. Vermeide direkte SQL-Abfragen in deinen Templates.

Beispiel für eine Datenbankabfrage:

// Erstellen einer Abfrage
$query = 'SELECT * FROM products WHERE products_id = :products_id';
$params = array(':products_id' => (int)$productId);

// Ausführen der Abfrage
$result = xtc_db_query($query, $params);

// Verarbeiten der Ergebnisse
while ($row = xtc_db_fetch_array($result)) {
    // Deine Logik hier
}