Neu Plugin kann nicht auf Datenbank zugreifen

Th3_J0k3

Neues Mitglied
13. Oktober 2020
19
1
Moin,
Ich versuche durch einen Ajax Call von einem PHP File eines Frontendlinks auf die Datenbank zuzugreifen, doch ich kriege ständig den Fehler: POST 500 (Internal Server Error). Wenn ich nur einen String o.Ä. rausgebe und die Datenbankabfrage lösche, funktioniert alles. Es muss also an dem Datenbankzugriff liegen.

PHP im Frontendlink:
PHP:
function getFromDatabase(){
    Shop::DB()->select('tartikel', 'kArtikel', $artikel_id); // $artikel_id ist vorher definiert.
}


if(!empty($_POST['action'])){
    if($_POST['action'] == 'get_price'){
        if(!empty($_POST['tType']) && !empty($_POST['tSurface']) && !empty($_POST['tLength']) && !empty($_POST['tWidth'])){
            echo getFromDatabase();
        }
    }
}

Ajax Call:
JavaScript:
    $.ajax({
        type: 'post',
        url: 'frontendlink_1.php',
        data: {
            'action': 'get_price',
            'tType': active_params.type,
            'tSurface': active_params.surface,
            'tLength': active_params.length,
            'tWidth': active_params.width
        },
        success: function(response) {
            document.getElementById("priceLabel").innerHTML = response;
        },
    });
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.092
204
Halle (Saale)
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.
 

Th3_J0k3

Neues Mitglied
13. Oktober 2020
19
1
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.

Danke für die Antwort! Sollte das in einem FrontendLink nicht eigentlich automatisch geschehen?
 

SamSoooM

Neues Mitglied
1. Februar 2021
10
0
Hallo Guten Tag,
Kann jemand mir helfen bitte.
ich habe die folgende Funktion in Javascript und versuche sie durch eine Ajax Call durch den HOOK HOOK_IO_HANDLE_REQUEST - 213 aufzurufen

habe versucht, wie im Kommentar erwähnt, an die index.php zu posten
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.


JavaScript:
$(document).on('change', selectorBrand, function (event) {
        let currentBrand = $(this).find('option:selected').data('brand');
        resetDisplacements();
        resetModels();
        resetYears();

        $.ajax({
                type: 'POST',
                url: 'index.php',
                data: {
                    'io': JSON.stringify(
                        {
                            'name': 'getDisplacements',
                            'params': [{'brand': currentBrand}]
                        }
                    ),
                }
            }
        ).done(function (data) {
            if (data.success) {
                setDisplacements(data.displacements);
            } else {
                console.log('couldn\'t, load displacements for ' + currentBrand);
            }
        });
    });


wir wollen unser Shop zu Shop 5 updaten und wollen zuerst unsere eigenen Plugins umzuschreiben und testen
bin noch neu hier im Shop 5 und mit dem dispatcher-> listener auch
ich will die Funktion getDisplacements() in IO registrieren wie kann ich das machen bitte?
im Bootstraper Klasse :

PHP:
namespace Plugin\getor_bike_filter;

use JTL\Events\Dispatcher;
use JTL\Plugin\Bootstrapper;
use JTL\Shop;
use JTL\Smarty\JTLSmarty;
use JTL\IO\IO;
use JTL\Helpers\Request;
use Plugin\getor_bike_filter\classes\BikeFilter;
use JTL\Plugin\BootstrapperInterface;

class Bootstrap extends Bootstrapper implements BootstrapperInterface{

public function boot(Dispatcher $dispatcher)
   {
       parent::boot($dispatcher);
       $plugin       = $this->getPlugin();

       $dispatcher->listen(
           'shop.hook.' . \HOOK_IO_HANDLE_REQUEST , function (array &$args){
             $args['io']->register('getDisplacements', getDisplacements );
             $args['io']->register('getModels', getModels);
             $args['io']->register('getYears', getYears);
             $args['io']->register('setActive', setActive);
             $args['io']->register('setInactive', setInactive);
       });



       $dispatcher->listen(
           'shop.hook.' . \HOOK_SMARTY_OUTPUTFILTER,
           function (array &$args){
             $this->hook140();
           }
       );

   }

 function getDisplacements($params)
     {
         if (!isset($params['brand'])) {
             return [
                 'success' => false,
             ];
         }
         $brand = $params['brand'];
         $displacements = BikeFilter::findDisplacementsByBrand($brand);
         return [
             'success' => true,
             'displacements' => $displacements,
         ];
     }

}


Dankeschön !
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.092
204
Halle (Saale)
Das was da steht ist jedenfalls kein gültiger PHP-Code?
In IO::register() musst du als zweiten Parameter schon einen Callback angeben - das soll scheinbar die Methode getDisplacements() in der Bootstrapper-Klasse sein?

Dann sähe ein Minimalbeispiel ungefähr so aus:
Code:
<?php

namespace Plugin\getor_bike_filter;

use JTL\Events\Dispatcher;
use Plugin\getor_bike_filter\classes\BikeFilter;
use JTL\Plugin\Bootstrapper;

class Bootstrap extends Bootstrapper
{
    public function boot(Dispatcher $dispatcher)
    {
        parent::boot($dispatcher);
        $dispatcher->listen(
            'shop.hook.' . \HOOK_IO_HANDLE_REQUEST , function (array &$args){
            $args['io']->register('getDisplacements', [$this, 'getDisplacements']);
        });
    }

    public function getDisplacements($params)
    {
        if (!isset($params['brand'])) {
            return [
                'success' => false,
            ];
        }
        $brand = $params['brand'];
        $displacements = BikeFilter::findDisplacementsByBrand($brand);
        return [
            'success' => true,
            'displacements' => $displacements,
        ];
    }

}
 
  • Gefällt mir
Reaktionen: SamSoooM
Ähnliche Themen
Titel Forum Antworten Datum
Neu Mollie plugin - Beschreibung der zahlarten hinterlegen Plugins für JTL-Shop 0
Neu JTL Shop RMA Formular - Plugin JTL-Shop - Ideen, Lob und Kritik 2
Neu Neue Plugins erscheinen nicht im Plugin-Manager Plugins für JTL-Shop 8
Neu Plugin Migrations werden beim deinstallieren nicht zurück gesetzt JTL-Shop - Fehler und Bugs 0
Neu JTL-Vouchers für Shopware 5 Plugin Shopware-Connector 1
Neu paypal plugin auf entwicklungsstand Plugins für JTL-Shop 2
Neu Compilieren ohne Theme-Editor-Plugin per IDE Technische Fragen zu Plugins und Templates 3
Neu Gibt es ein GUTES und für Kunden INTUITIVES Plugin für DHL Packstation? Plugins für JTL-Shop 5
Neu Plugin Google Shopping - Kontosperrung wegen Wasserzeichen Plugins für JTL-Shop 1
Neu JTL Shop 4 - Plugin SQL Procedure Technische Fragen zu Plugins und Templates 4
Neu Plugin: "JTL Theme Editor" in Shop 5 - Fehler beim Speichern der Datei. Allgemeine Fragen zu JTL-Shop 5
Neu GELÖST Connector Plugin lässt sich nicht aktivieren. WooCommerce-Connector 0
Neu 📢 Plugin "Mail nach Newsletter Aktivierung" by NETZdinge.de Plugins für JTL-Shop 0
Neu JTL5.1.1 Weiße Seite im Plugin-Manager Allgemeine Fragen zu JTL-Shop 1
Neu Google Shopping Plugin - Energieeffizienzklasse Plugins für JTL-Shop 0
Beantwortet Plugin entfernen? SEO-Cleaner [35 Fehler: XML-Version entspricht nicht der Konvention.] Betrieb / Pflege von JTL-Shop 2
Neu In Chrome, Header lädt jedes mal sichtbar NEU, Nova Child mit JTL-Header Plugin JTL-Shop - Fehler und Bugs 2
Neu 📢 Plugin: Social Tool mit After Buy Share by NETZdinge.de Plugins für JTL-Shop 0
Neu Google Shopping Plugin - Exportdatei wird nicht erzeugt Plugins für JTL-Shop 0
Neu Plugin für DHL Wunschpaket Standort Fehler? Plugins für JTL-Shop 25
Neu Slider Plugin wie z.B. Slider Revolution für WP Plugins für JTL-Shop 0
Neu Mollie Webstollen Plugin Plugins für JTL-Shop 0
Neu Plugin: JTL Header Version: 1.0.0-beta.4 verursacht flackerndes Logo Plugins für JTL-Shop 7
Neu Plugin zum Ergänzen der ShopID PrestaShop-Connector 1
Plugin Suche FAQ Produkt Plugin Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu 💙 Neues Plugin: Warenkorb-Button Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 5
Neu 💙 Neues Plugin: Payment & Shipping Icons Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 0
Neu Mollie Plugin - Zahlungslink erneut erstellen Plugins für JTL-Shop 1
Neu Backup Plugin schon JTL-Shop 5 ready? Plugins für JTL-Shop 0
Neu Attribut "keine Preissuchmaschinen" bei Google Shopping Plugin Onlineshop-Anbindung 0
Neu Shopauskunft Plugin für Shop 4 Plugins für JTL-Shop 3
Neu Mehrsprachlichkeit im Shop - Problem mit Multi-Domain Plugin von [tech]Neo Plugins für JTL-Shop 1
Sprachwechsel in Plugin Shop 5 Hook 140 sprachvariable nicht aktuell Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu 💙 Neues Plugin: Energielabel (für JTL-Shop5) - empfohlen vom Händlerbund! Plugins für JTL-Shop 3
Neu AJAX Anfrage an Plugin senden Technische Fragen zu Plugins und Templates 2
Neu 💙 Neues Plugin: Messenger Kontaktlayer (für JTL-Shop5) Plugins für JTL-Shop 5
Neu 💙 Neues Plugin: Artikelsticker Plus (für JTL-Shop5) Plugins für JTL-Shop 3
Neu JTL Shop5 Plugin " Gefahrensymbol" Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Mixbox Plugin für JTL-Shop5 Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Shop5 Plugin " Pfand incl. Altteilesteuer für den KFZ Handel" Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Exit intent Popup Plugin für JTL 5 User helfen Usern - Fragen zu JTL-Wawi 3
Beantwortet Woocomerce Shop Ablgeich Fehler JTL-Plugin : CustomerTrait.php:68 WooCommerce-Connector 1
Neu 📢 Plugin "Geschenkartikel Plus" by NETZdinge.de Plugins für JTL-Shop 1
Neu 💙 Neues Plugin: FAQ mit strukturierten Daten (für JTL-Shop 5) Plugins für JTL-Shop 0
Neu Plugin für Datenblatt-Erstellung gesucht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Google Shopping (Plugin) Liste Plugins für JTL-Shop 1
Neu 💙 Neues Plugin: Kategorietext Anzeige Plus (für JTL-Shop4 und JTL-Shop5) Plugins für JTL-Shop 0
Neu Plugin Entwicklung: Smarty Variable in .tpl file anmelden Technische Fragen zu Plugins und Templates 1
Neu 💙 Neues Plugin: Lexikon/Glossar (für JTL-Shop5) Plugins für JTL-Shop 0
Neu Nach Relaunch haben Artikel andere Hauptkategorie - wie kann ich das steuern? Gambio-Connector 1

Ähnliche Themen