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

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

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
Neu Softwarelösung für Visagist inkl. Mini-Shop & Kassa User helfen Usern 16
Neu Dauerhaftes Banner oben am Shop möglich? Allgemeine Fragen zu JTL-Shop 11
Neu Exception bei core.connector.auth: Invalid shop url. https://XYZ.de does not point to a shopware 6 instance. Please check the Shop URL. Shopware-Connector 0
Neu Sortierung Varianten im Shop falsch ? Allgemeine Fragen zu JTL-Shop 0
Eine Artikelnummern pro Shop ? Und einen Hauptartikel ? JTL-Wawi 1.8 2
Neu Sortierung Artikel Wawi - JTL Shop Allgemeine Fragen zu JTL-Shop 1
Neu Fehlerhafter Abgleich nach Update auf Shop Version 5.5 Installation / Updates von JTL-Shop 4
Keine Datenübertragung zum Shop möglich / Kundenkonto migrieren Onlineshop-Anbindung 10
Neu Eigene Felder - Sortierung wird nicht in JTL Shop übernommen - Anzeige im Shop immer unterschiedlich User helfen Usern - Fragen zu JTL-Wawi 0
Neu Kündigen der Shop-Anbindung nicht möglich Onlineshop-Anbindung 1
Neu Shopify Lagerbestandsabgleich einrichten (bei neuem Shop) Shopify-Connector 3
Neu Kindartikel-Name wird im Shop nicht richtig angezeigt Allgemeine Fragen zu JTL-Shop 8
Neu JTL Shop (anderes Template) eigene Felder aus Wawi als TAB im Shop User helfen Usern - Fragen zu JTL-Wawi 12
Neu Mail Bestellbestätigung aus dem Shop Betrieb / Pflege von JTL-Shop 1
Neu Shop-Admin: Versandarten und Zahlungsarten nicht aufrufbar Allgemeine Fragen zu JTL-Shop 11
Neu JTL-Shop Lieferanten Artikelnummer und Suchbegiffe für Onlineshop werden im Shop nicht gefunden Allgemeine Fragen zu JTL-Shop 5
Neu Kunden im Shop Backend anzeigen Allgemeine Fragen zu JTL-Shop 5
Neu Shop zeigt nur Bilder der Kategorien an, nicht der eigentlichen Produkte WooCommerce-Connector 3
Neu Behandlung von JTL Shop Coupons und Retouren in JTL Wawi Arbeitsabläufe in JTL-Wawi 0
Neu Shop-Geschwindigkeit: nicht ausreichend Allgemeine Fragen zu JTL-Shop 10
Nach Update: Shop Lizenz gültig aber mit anderen Kundenkonto verknüpft JTL-Wawi 1.10 1
Neu Welche Alternativen zu JTL-Shop JTL-Shop - Ideen, Lob und Kritik 9
Neu JTL Shop 5.5.1 Lieferland kann bei abweichender Lieferadresse nicht ausgewählt werden JTL-Shop - Fehler und Bugs 9
Neu JTL Shop: Ausblenden von Unterkategorien (In der Mitte) möglich ? Allgemeine Fragen zu JTL-Shop 0
Neu 500er Probleme nach Shop Update Betrieb / Pflege von JTL-Shop 4
Neu JTL Shop 5.5 Tips für bessere Performance? Allgemeine Fragen zu JTL-Shop 5
Neu JTL Debug 2.0.4 und Shop 5.5.2 - Fehler 500 Plugins für JTL-Shop 3
Neu Sprechende URLs & Sprachlogik im JTL-Shop – Wer hat’s schon umgesetzt? Allgemeine Fragen zu JTL-Shop 1
Neu JTL Shop 5.5.2 Startseite Breite ändern Allgemeine Fragen zu JTL-Shop 1
Neu Kundendaten inkl Login Daten auf neuen Shop übertragen inkl Blowfish Key. Fehlerhafte Adressen etc mit Sonderzeichen etc Allgemeine Fragen zu JTL-Shop 1
Neu .php-cs-fixer.php - nicht identisch mit den Dateien der aktuellen Version von JTL-Shop JTL-Shop - Fehler und Bugs 3
Neu JTL-Shop: Anzeige der Artikel aus untergeordneten Kategorien Allgemeine Fragen zu JTL-Shop 2
Warnmeldung JTL-Shop Anbindung nach Update JTL-Wawi 1.10 5
Shop Anzeige Nicht lieferbare Artikel Einrichtung JTL-Shop5 0
Neu Erfahrungen gesucht: Custom Shop (Next.js/React) an JTL-Wawi anbinden Allgemeines zu den JTL-Connectoren 1
Barrierefreiheit mit Upgrade auf JTL-Shop 5.5 erledigt? Einrichtung JTL-Shop5 24
Neu Plugin - Kindartikel in der Artikelübersicht anzeigen - SHOP-475 Plugins für JTL-Shop 7
Neu Wawi-Shop updaten - Welche Version? Onlineshop-Anbindung 4
Beantwortet Kontaktformulare im JTL Shop Betrieb / Pflege von JTL-Shop 1
Neu Große Bilder im Shop (Slider, Blog, Galerie etc.) nachträglich optimieren – wie macht ihr das? Allgemeine Fragen zu JTL-Shop 2
Neu Gleiche Designvorlage für eBay und JTL-Shop mit globalen Textbausteinen nutzen Allgemeine Fragen zu JTL-Shop 0
Neu Dropdownliste Shop 5.5.1 öffnet sich nach oben Allgemeine Fragen zu JTL-Shop 7
Neu Fehlermeldung im Logbuch im Shop: Routing error: Invalid stream provided; must be a string stream identifier or stream resource JTL-Shop - Fehler und Bugs 1
Neu Deaktiviertung eines Var-Kindes löscht den ganzen Artikel im Shop PrestaShop-Connector 0
Neu Guthaben-Funktion in JTL Shop ohne MwSt. buchhalterisch nicht abbildbar JTL-Shop - Ideen, Lob und Kritik 17
Neu Shop 5.5.1: Lieferadresse - Lieferland - bei mir leer? JTL-Shop - Fehler und Bugs 4
Neu JTL Shop 5.5.1 : Lieferzeit wird mit "0 Werktagen" ausgegeben, obwohl Lieferzeiten bei Versandarten hinterlegt sind JTL-Shop - Fehler und Bugs 3
Kein Shop-Abgleich JTL-Wawi 1.10 2
Neu Einen Puffer, dass Artikel im Shop nicht auf "ausverkauft" gehen? JTL-Wawi - Ideen, Lob und Kritik 4
Neu Exportformate liefern nur netto Werte für Versandkosten seit JTL Shop 5.5.0 Betrieb / Pflege von JTL-Shop 6

Ähnliche Themen