Shop 5 Ersatz für Hook 177 - HOOK_FILTER_INC_BAUEARTIKELANZAHL

SamSoooM

Neues Mitglied
1. Februar 2021
8
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: 9

SamSoooM

Neues Mitglied
1. Februar 2021
8
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: 6
  • dd2.PNG
    dd2.PNG
    51,3 KB · Aufrufe: 6

SamSoooM

Neues Mitglied
1. Februar 2021
8
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: 5

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.065
188
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
Shop 5.x Ersatz für $args_arr['objResponse']->script('meine-js-function()') Upgrade JTL-Shop4 auf JTL-Shop5 2
Neu JTL-Shop Entwickler als Freelancer Dienstleistung, Jobs und Ähnliches 0
Neu Shop 5 Performance im Front- und Backend sehr schlecht Betrieb / Pflege von JTL-Shop 0
Neu Einstellung JTL Shop für google bei verkauften Artikeln Allgemeine Fragen zu JTL-Shop 5
Neu Kein Zugriff auf Shop-Backend JTL-Shop - Fehler und Bugs 4
Gelöst Artikelbilder in Großansicht ohne Navigationsbuttons im JTL-Shop JTL-Wawi - Fehler und Bugs 2
Gelöst Netzwerkfehler bei Neu-Installation Shop 5.1 Installation / Updates von JTL-Shop 2
Neu Nach Update von 1.15.13.0 -> 1.5.50.1 in Gambio Shop Lieferzeit 0 Tage + Artikel inaktiv Gambio-Connector 3
Neu komplette Variablenliste für Exportformate in JTL Shop 5 Betrieb / Pflege von JTL-Shop 1
Neu JTL Shop 5 - Anpassung Nova Child Theme - Benachrichtigungsfunktion Dienstleistung, Jobs und Ähnliches 0
Neu Shop 5.1.1 Artikel werden nach Wawi Wareneingang von allen Shop Wunschlisten gelöscht JTL-Shop - Fehler und Bugs 1
Neu Shopware 6 Connector - Über die JTL-Wawi Funktionsattribute die Shop-Funktionen steuern Shopware-Connector 0
Neu JTL-Shop-Attribute bei Gambio-Artikeln Gambio-Connector 2
Neu Shop 5 extrem langsam - Back- und Frontend Allgemeine Fragen zu JTL-Shop 3
Neu Shop Connector Update, feature bzw features.json Datei Fehler Shopware-Connector 4
Neu JTL Shop 5 Systemvoraussetzung Wawi 1.6 Installation / Updates von JTL-Shop 2
Neu [Shopware 6] Erstelltes Menu im JTL-Wawi kann im Shop keinem Layout zugewiesen und gespeichert werden Shopware-Connector 1
Neu JTL SHOP 5 Newsletter versenden scheitert Allgemeine Fragen zu JTL-Shop 5
Neu Habt ihr schon mal einen kompletten Shop eingerichtet und dann umgezogen? Installation / Updates von JTL-Shop 10
Neu Shop zerschossen - wird nur fehlerhaft angezeigt JTL-Shop - Fehler und Bugs 0
Neu Kleiner Bestellworkflow im Shop Allgemeine Fragen zu JTL-Shop 0
Neu nova update nach Shop Update 5.1.1 Templates für JTL-Shop 1
Neu [Shop 5] Error executing query: INSERT INTO tbesucherarchiv JTL-Shop - Fehler und Bugs 6
Neu Einbindung Icecat in Shop 5 Allgemeine Fragen zu JTL-Shop 0
Neu ungewollte Anzeige von css auf Vergleichsseite im Shop JTL-Shop - Fehler und Bugs 2
Neu Update von Shop 5.0.3 auf 5.1 Installation / Updates von JTL-Shop 2
Neu Plötzlich Cache-Fehler und kein Zugang mehr zum Shop-Backend JTL-Shop - Fehler und Bugs 0
Neu 💙 Neues Plugin: Warenkorb-Button Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 2
Neu 💙 Neues Plugin: Payment & Shipping Icons Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 0
Neu Shop 5.1.1 - Warenkorb und Login im Header ausblenden / entfernen Templates für JTL-Shop 2
Neu JTL Shop 5 Kritik! Konfigurator immer noch nicht überarbeitet! JTL-Shop - Ideen, Lob und Kritik 7
Neu Neuinstallation meines Shop, nach 3 downloads aus dem Kundencenter und 4 Installationsversuche Allgemeine Fragen zu JTL-Shop 2
Neu Backup Plugin schon JTL-Shop 5 ready? Plugins für JTL-Shop 0
Neu seit JTL Shop 5 sind die Seitenladezeiten zu lang JTL-Shop - Fehler und Bugs 2
Neu Shop 4: Bilder werden nicht automatisch generiert Einrichtung von JTL-Shop4 2
Neu Metadaten werden nicht an Gambio-Shop übermittelt Gambio-Connector 3
Neu Connector hat mal wieder den Shopware Shop zerschosssen - Kotzanfall! JTL-Wawi - Fehler und Bugs 0
Neu Gibt es die Möglichkeit die Lieferzeit im JTL Shop 5 auszublenden? Betrieb / Pflege von JTL-Shop 4
Neu OSS Erfahrungen - Preise Shop/Ebay/Amazon Smalltalk 2
Neu Download JTL Shop 5.1 als Community Free Version noch nicht möglich? Installation / Updates von JTL-Shop 8
Neu Pflege der Versandkosten im Shop umständlich Betrieb / Pflege von JTL-Shop 0
Neu Verbindung Shop 5.1 mit WAWI hat bei Umlauten Probleme JTL-Wawi - Fehler und Bugs 1
Neu Shop 5.1.1 kann nicht installiert werden Installation / Updates von JTL-Shop 15
Neu AUsgezeichnet.org und JTL Shop 5 Allgemeine Fragen zu JTL-Shop 0
Neu Shop 5.1.1 - Wunschzettel funktioniert überhaupt nicht JTL-Shop - Fehler und Bugs 2
Neu Shopauskunft Plugin für Shop 4 Plugins für JTL-Shop 3
Neu Nach einem Domainumzug und anschließendem Update auf Shop 5.1 werden die deutschen Umlaute nicht richtig dargestellt Installation / Updates von JTL-Shop 2
Neu Shop 5.1.1 / Umstellung auf 64 Bit, MariaDB, PHP 8: "max_execution_time" Wert zu gering Installation / Updates von JTL-Shop 4
Neu Shop Bestellnummer als Wawi Auftragsnummer User helfen Usern - Fragen zu JTL-Wawi 2
Neu Adressen - JTL Shop 5 JTL-Shop - Ideen, Lob und Kritik 2

Ähnliche Themen