Shop 5 Ersatz für Hook 177 - HOOK_FILTER_INC_BAUEARTIKELANZAHL

SamSoooM

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: 17

SamSoooM

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: 22
  • dd2.PNG
    dd2.PNG
    51,3 KB · Aufrufe: 22

SamSoooM

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: 11

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
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
"Kassensysteme der Zukunft – wer hat schon mal mit Shop-Besitzern gequatscht, die eigentlich nur mal quatschen wollten?". Starten mit JTL: Projektabwicklung & Migration 0
HTML in Artikelbeschreibung , verschiebt dann im Shop die Ansicht? JTL-Wawi 1.11 1
„Wer hat Lust auf einen Erfahrungsaustausch bei Kaffee und Kuchen?“ – aber diesmal ohne Shop-Themen? Starten mit JTL: Projektabwicklung & Migration 1
Neu Störung Hosting Shop? JTL-Shop - Fehler und Bugs 0
Neu Email Versand vom Shop Allgemeine Fragen zu JTL-Shop 1
Update 5.3 auf 5.7.2 Shop funktioniert nicht mehr Upgrade JTL-Shop4 auf JTL-Shop5 3
Neu Plugin: Infinite Scroll / „Mehr laden“ für JTL-Shop 5 – einmalige Lizenz, kein Abo Plugins für JTL-Shop 0
Neu JTL-Shop 5.5 – „Rechnung nicht beilegen“ per Workflow anhand der Auftragsposition erkennen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Welche JTL-Shop Plugins oder Funktionen fehlen euch noch? – menuBuilder aktuell in Entwicklung Plugins für JTL-Shop 6
Neu Gutscheinartikel nur noch im Shop in der Datenbank Betrieb / Pflege von JTL-Shop 0
Neu Shop Mailversand geht nach Passwortänderung nicht mehr JTL-Shop - Fehler und Bugs 2
Neu Neuer JTL-Shop lässt sich nicht öffnen Installation / Updates von JTL-Shop 2
Neu 💚 Plugin: DZM Bonus Plus - das Treueprogramm für deinen JTL-Shop Plugins für JTL-Shop 12
Neu Shop rechnet Sa+So bei Lieferzeit mit ein Betrieb / Pflege von JTL-Shop 0
Neu Auslesen aus Shop ob als Gast bestellt wurde oder ein Kundenkonto besteht. Allgemeine Fragen zu JTL-Shop 7
Neu Stripe plugin mit JTL SHOP Error 500 Plugins für JTL-Shop 2
Neu 💚 Plugin: DZM Agentic Plus - dein Shop wird für KI-Agenten lesbar und abfragbar Plugins für JTL-Shop 0
Neu JTL-Shop 5.7.2: Zahlungsbetrag weicht vom Auftragswert ab JTL-Shop - Fehler und Bugs 4
Neu JTL-Shop 5.7.2: Unterschiedliche Standardsprachen in tsprache – widersprüchliche Canonical- und Hreflang-Ausgabe der Startseite Allgemeine Fragen zu JTL-Shop 4
Neu Versandetikett bei Aufträgen aus dem JTL Shop Arbeitsabläufe in JTL-Wawi 0
Neu Preise im Shop mit 4 Stellen hintern dem Komma Allgemeine Fragen zu JTL-Shop 5
Neu JTL Shop 5.7.2 NOVA - Akkordeon Überschriften herabstufen auf H3 Templates für JTL-Shop 3
Neu Shop und Worker synchronisieren nicht nach Wechsel zu Cloudflare Allgemeine Fragen zu JTL-Shop 0
Neu 🚨 Sicherheitswarnung für JTL-Shop-Betreiber: Manipulation des Checkout-Prozesses durch externes JavaScript (Magecart- / Payment-Skimmer) Betrieb / Pflege von JTL-Shop 11
Neu JTL-Shop Konfigurator - die Ausgewählten Konfigurator gruppen werden im Artikel nicht vollständig angezeigt User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Shop 5 Backup Professional Plugin Plugins für JTL-Shop 0
Neu Vorgehen nach Sicherheitslücke im Shop - Wechsel Blowfish-Key Betrieb / Pflege von JTL-Shop 6
Neu Shop 5.7.2. nach Update lahm und CPU Last geht hoch Installation / Updates von JTL-Shop 1
Neu Probleme beim Shop Update auf 5.7.2 Installation / Updates von JTL-Shop 4
Neu Plugin trotz Hinweis Kompatibel mit JTL-Shop bis 5.6.* auch unter 5.7.2 nutzen Plugins für JTL-Shop 2
Neu Wichtiger Sicherheitshinweis – jetzt Shop prüfen! Allgemeine Fragen zu JTL-Shop 0
Neu Aktuelle JTL Shop Sicherheitslücke - automatischer Patch im JTL Hosting ? Allgemeine Fragen zu JTL-Shop 15
Neu Suche 10–15 JTL-Shops für kostenlose JTL-Shop-Analyse (verschiedene Branchen) Dienstleistung, Jobs und Ähnliches 0
Neu JTL-Shop 5.7.2 Picture-Tag in mobilen Ansicht lädt beide Bilder JTL-Shop - Fehler und Bugs 0
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Neu Shop 5.7.2 - JTL PayPal Checkout legt alles lahm JTL-Shop - Fehler und Bugs 4
Neu IP Adresse einer Kontaktanfrage über den Shop herausfinden Allgemeine Fragen zu JTL-Shop 4
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu shop steht , brauche Hilfe Allgemeine Fragen zu JTL-Shop 6
Neu DSVGO konform 1000 Kunden in WaWi und Shop löschen! User helfen Usern - Fragen zu JTL-Wawi 4
Neu 500er Fehler im Shop nach aktivierung des Nova Child Templates für JTL-Shop 3
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Rechte-Fehler im J10n Modul und Auswirkung auf base.mo.php in div. Plugins (Shop 5.7.1) JTL-Shop - Fehler und Bugs 0
Neu Welche JTL Shop Plugins oder kleinen Hilfstools würden euch im Alltag wirklich helfen? Plugins für JTL-Shop 0
Beantwortet Shop Abgleich nach Update auf 5.7.2 nicht mehr möglich JTL-Shop - Fehler und Bugs 4
Neu Shop zeigt keine Artikel mehr Fehler 500 Betrieb / Pflege von JTL-Shop 9
Neu Shop 5.7.1 und Downloadmodul Allgemeine Fragen zu JTL-Shop 1
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Widerrufsbutton für JTL-Shop 4 Allgemeine Fragen zu JTL-Shop 17

Ähnliche Themen