Shop 5 Ersatz für Hook 177 - HOOK_FILTER_INC_BAUEARTIKELANZAHL

SamSoooM

Neues Mitglied
1. Februar 2021
10
0
Hallo,
bin dabei ein Plugin für den Shop 5.x umzuschreiben und hänge beim Hook 177 - HOOK_FILTER_INC_BAUEARTIKELANZAHL
Er wird ab Shop 5 deprecated.
welchen Ersatz habe ich dafür?

ich möchte den für ein Filter-Plugin benutzen, das die Suchergebnisse anpasst, bevor man sie bekommen kann.

Danke schon
Sami
 

Anhänge

  • hook 177 .PNG
    hook 177 .PNG
    5,3 KB · Aufrufe: 10

SamSoooM

Neues Mitglied
1. Februar 2021
10
0
Dankeschön das hilft schon

ich habe auch noch diese Frage, bitte:

ich werde Hook 253 - HOOK_PRODUCTFILTER_GET_BASE_QUERY benutzen

Hier ist mein function-Code:
PHP:
public function adjustFilterSQL(&$filterSQL, $kid)
    {
        if($kid == 0){
        //edited von Sami kann alle gleichzeitig ausgeführt werden
          if ($filterSQL->oKategorieFilterSQL->cJoin != "" && $filterSQL->oMerkmalFilterSQL->cJoin != "") {
              $filterSQL->oKategorieFilterSQL->cJoin = " ";
              $filterSQL->oKategorieFilterSQL->cWhere = " ";
          }elseif($filterSQL->oKategorieFilterSQL->cJoin != "" && $filterSQL->oMerkmalFilterSQL->cJoin == ""){
              $filterSQL->oKategorieFilterSQL->cJoin .= " INNER JOIN " . self::BIKE_ARTICLE_TABLE_NAME . " as bikeCrossKat ON tartikel.kArtikel =  bikeCrossKat.kArtikel AND bikeCrossKat.vid = " . $this->activeModel->VID . " ";
          }
          if($filterSQL->oSuchFilterSQL->cJoin != ""){
            $filterSQL->oSuchFilterSQL->cJoin .= " INNER JOIN " . self::BIKE_ARTICLE_TABLE_NAME . " as bikeCross ON tartikel.kArtikel =  bikeCross.kArtikel AND bikeCross.vid = " . $this->activeModel->VID . " ";
          }elseif($filterSQL->oMerkmalFilterSQL->cJoin != ""){
            $filterSQL->oSuchFilterSQL->cJoin .= " INNER JOIN " . self::BIKE_ARTICLE_TABLE_NAME . " as bikeCross ON bikeCross.vid =" . $this->activeModel->VID . " AND tartikel.kArtikel = bikeCross.kArtikel  ";
          }
        }else{
          $filterSQL->oKategorieFilterSQL->cJoin .= " INNER JOIN " . self::BIKE_ARTICLE_TABLE_NAME . " as bikeCrossKat ON tartikel.kArtikel =  bikeCrossKat.kArtikel AND bikeCrossKat.vid = " . $this->activeModel->VID . " ";
          $filterSQL->oKategorieFilterSQL->cWhere = " AND tkategorieartikel.kKategorie = ".$kid." ";
        }

    }

Ich möchte das anhand des Hooks umschreiben
und so sieht das Hook dipatcher Listener :

PHP:
public function boot(Dispatcher $dispatcher)
   {
       parent::boot($dispatcher);

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

   }

public function hook253(array &$args): void
    {
       dd($args);
      //Do something... what to do? how to begin?
    }

kannst Du vielleicht oder jemand mir dabei helfen wie ich damit anfangen kann
oder ein Hinweis geben
(die dd($args) ist im Bild)

Danke schön
Sami
 

Anhänge

  • dd.PNG
    dd.PNG
    27,6 KB · Aufrufe: 7
  • dd2.PNG
    dd2.PNG
    51,3 KB · Aufrufe: 7

SamSoooM

Neues Mitglied
1. Februar 2021
10
0
ich habe folgendes gemacht

habe alles in Index [1] eingefügt
aber die Abfrage funktioniert leider nicht und es liefert Leere Ergebnisse zurück


PHP:
public function hook253(array &$args): void
    {
      $bikeFilter = BikeFilter::initialize($this->getPlugin() , $this->getDB());
      $activeModel = $bikeFilter->getActiveModel();

      if($activeModel){

        $kid = 0;
        if(isset($_GET['katid'])){
          if (preg_match('/[0-9]+$/', $_GET['katid'])) {
            $kid = $_GET['katid'];
          }
        }
        if($kid == 0){
          if($args['joins'][0]->getTable() == 'tkategorieartikel' && $args['joins'][1]->getTable() == 'tartikelmerkmal') {
            // Do nothing
          }else if ($args['joins'][0]->getTable() == 'tkategorieartikel' && $args['joins'][1]->getTable() == ''){
            
            $jkat = new Join();
            $jkat->setTable(BikeFilter::BIKE_ARTICLE_TABLE_NAME . " as bikeCrossKat ");
            $jkat->setOn("tartikel.kArtikel =  bikeCrossKat.kArtikel AND bikeCrossKat.vid = " . $activeModel->VID)  ;
            $jkat->setOrigin("JTL\Filter\ProductFilterSQL");
            $args['joins'][1] = $jkat;
              
            dd($args['joins']); //im Bild
          }
          if($args['joins'][0]->getOn() == "jSuche.kArtikel = tartikel.kArtikel" && $args['joins'][1]->getTable() == ""){
            $args['joins'][1]->setTable(BikeFilter::BIKE_ARTICLE_TABLE_NAME . " as bikeCross")  ;
            $args['joins'][1]->setOn("tartikel.kArtikel =  bikeCross.kArtikel AND bikeCross.vid = " . $this->activeModel->VID)  ;
          }
        }
      }
 
    }
was habe ich falsch gemacht bitte?
oder wohin soll ich meine Joins schreiben auf welche Index und welche Informationen wichtig sind z.B Origin und Komment ??

Dankeschön
Sami
 

Anhänge

  • dd3.PNG
    dd3.PNG
    23,1 KB · Aufrufe: 6

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.092
204
Halle (Saale)
Als Origin bietet sich der Name deiner Klasse an. Am einfachsten also einfach
Code:
$jkat->setOrigin(__CLASS__);
und als Kommentar halt ein aussagekräfter Kommentar wie "Join von meinem tollen Fahrrad-Plugin".
Beides dient nur dem Debugging, wenn eine Query mal fehlschlägt.

Und wenn du nicht gerade einen bestehenden Join ersetzen willst, wäre es natürlich am sinnvollsten, ihn einfach nur an die bestehenden dranzuhängen.

Wenn die Query nicht das Ergebnis erzeugt, was du dir vorstellst, wirst du wohl ein wenig debuggen müssen.
Z.B. in JTL\Filter\Productfilter::getProductKeys() die Ausgabe von
Code:
$this->getFilterSQL()->getBaseQuery($sql, 'listing')
mal genauer ansehen.

Und um ggf. von dir erzeugt SQL-Fehler abzufangen, kannst du in deiner includes/config.JTL-Shop.ini.php diese beiden Konstanten definieren:

Code:
define('NICEDB_EXCEPTION_BACKTRACE', true);
define('NICEDB_EXCEPTION_ECHO', true);
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Preise von Shop 5 in Wawi sind anders JTL-Workflows - Fehler und Bugs 3
Verwiesen an Support 3400 Fehler im Logbuch vom Shop 5 JTL-Shop - Fehler und Bugs 1
Neu JTL Shop 5 - Vorausgewählte Versandart ändern - Kunde soll aktiv entscheiden Allgemeine Fragen zu JTL-Shop 0
Neu Shop 5 Artikel ohne Bestand ausblenden Allgemeine Fragen zu JTL-Shop 2
Neu Youtube Videos im Shop sind nicht verfügbar Allgemeine Fragen zu JTL-Shop 0
Neu Kunde im Shop unbekannt Allgemeine Fragen zu JTL-Shop 1
Neu Keine Verbindung zum Lizenzserver möglich. Kein Datenabgleich mit dem Shop !! JTL-Wawi - Fehler und Bugs 17
Neu JTL Shop RMA Formular - Plugin JTL-Shop - Ideen, Lob und Kritik 1
Neu JTL Shop 5 Kategorien in weitere Zeile anzeigen Allgemeine Fragen zu JTL-Shop 1
Neu ERLEDIGT (Shop. 5.1.1 | Template NOVA 1.1.0 | Wer passt mir die Farben an?) Dienstleistung, Jobs und Ähnliches 0
Neu Speditionsversand mit Zuschläge usw. & JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu Artikel im JTL Shop ohne Verknüpfung in der JTL Wawi ? JTL-Wawi - Fehler und Bugs 5
Neu URL Weiterleitung im Shop 5.0 Allgemeine Fragen zu JTL-Shop 1
Neu Linux System Administration JTL SHOP Dienstleistung, Jobs und Ähnliches 0
Neu Kategorieleiste im JTL 5 Shop Templates für JTL-Shop 2
JTL Shop 5: Listenansicht ohne Bilder möglich? Einrichtung JTL-Shop5 0
Neu Shop nicht erreichbar, Kein Abgleich SQLSTATE[HY000] [2002] Connection refused JTL-Shop - Fehler und Bugs 0
Neu Im Gambio Shop sind viele Artikel im Backend doppelt auch in der Datenbank und Klarna Problem Gambio-Connector 3
In Bearbeitung Online Shop und Kasse Allgemeine Fragen zu JTL-POS 5
Neu JTL Shop 4 - Plugin SQL Procedure Technische Fragen zu Plugins und Templates 4
Neu Filter auf Artikelübersichtsseiten in JTL-Shop 5 (NOVA Template) neu gestalten? Technische Fragen zu Plugins und Templates 0
Neu Plugin: "JTL Theme Editor" in Shop 5 - Fehler beim Speichern der Datei. Allgemeine Fragen zu JTL-Shop 5
Neu Seitenränder/Shop Container auf eigene Seiten beim Composer Allgemeine Fragen zu JTL-Shop 1
Neu Richtige Domain für JTL Shop mit Hetzner Übergangsdomain Installation / Updates von JTL-Shop 9
Neu JTL-Shop 5 Streichpreise / Gutscheincode Allgemeine Fragen zu JTL-Shop 2
Neu Kundendaten im Shop löschen Shopbetrieb / -pflege JTL-Shop3 0
Neu JTL Shop 4 auf Shopify umziehen Shopify-Connector 5
Neu JTL Shop 5 Mega Menu Kategorien Templates für JTL-Shop 0
Neu Artikel erscheinen nicht im Shop, merkwürdiges Verhalten bei Klick auf Rubriknamen Allgemeine Fragen zu JTL-Shop 2
Neu JTL Shop 5 Filter werden im Inhaltsbereich nicht angezeigt Allgemeine Fragen zu JTL-Shop 2
Neu Wechsel von Shopware Cloud zu JTL Shop 5 Onlineshop-Anbindung 2
Beantwortet JTL-Shop 5: Solange Page Reload bis Consent Manager bestätigt wurde JTL-Shop - Fehler und Bugs 3
JTL SHOP 5 Auf Strato Einrichtung JTL-Shop5 0
Neu Update auf Shop 4.06 Build 17 Einrichtung von JTL-Shop4 3
Neu JTL Shop 5 - Artikel / Sonstiges / Onlineshop-Suchbegriffe JTL-Shop - Fehler und Bugs 4
Neu WAWI Update 1.5.50.2 + JTL Shop 5.1.1 Server down - Too many Connections SQL JTL-Wawi - Fehler und Bugs 3
Neu Standard Mwst im Shop Betrieb / Pflege von JTL-Shop 8
Neu Online mit "Offline" verknüpfen - JTL Shop und JTL POS JTL-POS - Ideen, Lob und Kritik 0
Neu URL Name Shop ändern User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wo kann ich die genaue Shop-4 Version einsehen? Allgemeine Fragen zu JTL-Shop 4
Neu Sicherheitslücke in JTL-Shop 4 auch eine Sicherheitslücke in JTL Shop 3.20 (Build 8) ? Allgemeine Fragen zu JTL-Shop 6
Neu E-Mail / WICHTIG: Sicherheitslücke in JTL-Shop 4 - Dringender Handlungsbedarf JTL-Shop - Fehler und Bugs 161
Neu JTL SHOP 5 unter Mobile IOS Safari verschwindet das Menü beim Scrollen JTL-Shop - Fehler und Bugs 6
Neu Artikel vom Shop auf meiner Webseite anteasern Allgemeine Fragen zu JTL-Shop 3
Neu Fehlende RSS.xml im Installationspaket shop v5-1-1 und shop v5-0-3 Installation / Updates von JTL-Shop 6
Neu Verfallsdatum im Gambio Shop Gambio-Connector 8
Neu Kategorieseite trotz Löschung in der Wawi immer noch im Shop vorhanden (JTL Shop 4) Betrieb / Pflege von JTL-Shop 0
Neu JTL Shop Artikel mit Konfigurationen und Variation (Konfigurations-Option mit Zusatz-Text) User helfen Usern - Fragen zu JTL-Wawi 0
Neu Rechnung im Shop hinterlegen Allgemeine Fragen zu JTL-Shop 2
Neu Kundengruppen werden nicht an JTL Shop übermittelt JTL-Wawi - Fehler und Bugs 0

Ähnliche Themen