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

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

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.359
340
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 Ausgabe Kundengruppenattribute JTL-Shop 5.3 Allgemeine Fragen zu JTL-Shop 0
Neu Badges / Artikelsticker bei JTL Shop 5.3.0 Templates für JTL-Shop 0
Neu - Lieferzeit in Wochen / Monaten statt Tagen SHOP-4080 - wo finde ich diese Möglichlichkeit im Admin Bereich Installation / Updates von JTL-Shop 1
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 1
Neu Gravierender Fehler in der Shop Software Betrieb / Pflege von JTL-Shop 3
Gelöst Shop 5.3.1 Fatal Error Gelöste Themen in diesem Bereich 2
Neu Händlerbund Plugin lässt sich nicht installieren Shop ver. 5.3.0 Plugins für JTL-Shop 1
Neu Shop extrem langsam Betrieb / Pflege von JTL-Shop 8
Neu Shop mehrsprachig machen Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3 - Aktuell 5.3.1 Releaseforum 1
Neu JTL 1.8.12.0 - Artikelattribut für Shop importieren - Format CSV-Datei / Hilfe bei Import von individuellen Attributen für JTL-Shop (googlekat) JTL-Ameise - Ideen, Lob und Kritik 1
Neu Merkmalübersetzung wird im Shop nicht angezeigt JTL-Shop - Fehler und Bugs 2
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 1
Neu Hilfe - Performanceproblem mit Shop durch Worker JTL-Shop - Fehler und Bugs 27
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 0
Neu Shop Suchfunktion Probleme mit (HTML-)Sonderzeichen JTL-Shop - Fehler und Bugs 0
Kundenattribute aus Shop übernehmen und aus Wawi zurück an Shop übermitteln Einrichtung JTL-Shop5 1
Neu Produktdaten aus Shop zur Wawi WooCommerce-Connector 9
Neu Unterstützung bei JTL5-Shop-Überarbeitung gesucht - Template/Plugin uvm. Dienstleistung, Jobs und Ähnliches 1
Neu Shop in Unterverzeichnis führt dazu, dass Inhalte aus dem übergeordneten Verzeichnis im Shop gezeigt werden JTL-Shop - Fehler und Bugs 3
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu Weiße Seite nach Update Shop 5.1.5. auf 5.2.4 Installation / Updates von JTL-Shop 24
Neu E-Commerce-Effizienz steigern: Welche Programmiersprache verbessert die JTL-Shop-Entwicklung? Technische Fragen zu Plugins und Templates 1
Neu Kompatibilitätsliste JTL Shop & JTL Wawi Installation / Updates von JTL-Shop 2
Neu JTL-Shop 5 Paypal Zahlung 30 Tage Zahlungsziel Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3.0 RC3 Fehler nach Update Portlet Banner, fehlendes Produkt JTL-Shop - Fehler und Bugs 0
Neu Funktionsattribut unverkäuflich wird nicht an den Shop übertragen Allgemeine Fragen zu JTL-Shop 1
Neu Umstieg von Shopware 5 zu JTL Shop 5 - Ranking behalten Allgemeine Fragen zu JTL-Shop 2
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
Neu Lizenz zu verkaufen für JTL-Shop Standard Edition Allgemeine Fragen zu JTL-Shop 4
Neu Suchbegriff hängt Shop auf?! Allgemeine Fragen zu JTL-Shop 2
JTL Shop : automatisch setzen: Verfügbar ab: 28.04.2024 (Vorbestellung möglich) JTL-Wawi 1.8 0
Neu Programmierung eines Tools zur Verwaltung einer Datentabelle (JTL Shop 5) Technische Fragen zu Plugins und Templates 6
I have faced an issue while the JTL Shop order has synchronized to the JTL WAWI 1.8 version. JTL-Wawi 1.8 0
Neu JTL Shop 5 Umfrage!? Allgemeine Fragen zu JTL-Shop 0
Neu Woocommerce mit JTL Connector "Die Shop-URL verweist nicht auf einen gültigen Shop" WooCommerce-Connector 4
Hosting JTL- Shop unter https://...12358.jtl-shop.de/ Einrichtung JTL-Shop5 0
Neu Issue SHOP-1348: Sortierung nach Preis unter Umständen fehlerhaft Allgemeine Fragen zu JTL-Shop 0
Neu JTL-Shop Standard Edition Lizenz zu verkaufen Umstieg auf JTL-Shop 7
Neu WAWI Kategorien werden im Shop nicht angezeigt Gelöste Themen in diesem Bereich 3
Neu Bilder werden Falsch im Shop angezeigt. WooCommerce-Connector 0
Neu Shop nicht mehr erreichbar HTTP 500 Error Betrieb / Pflege von JTL-Shop 1
Neu Wie kann ich im JTL-Shop einen Abwesenheitshinweis einstellen? Allgemeine Fragen zu JTL-Shop 1
Neu JTL Shop 5.30? Allgemeine Fragen zu JTL-Shop 9
Neu Anzeige von Neuheiten und Topsellern im JTL Shop 5 Allgemeine Fragen zu JTL-Shop 2
Neu Variationen im Shop Auswahl zurücksetzen (Plugin?) Betrieb / Pflege von JTL-Shop 3
Neu NEU ✔️ PDF-Angebots-Plugin für den JTL-Shop 5 - PDF Angebote von der Produktseite oder aus dem Warenkorb heraus generieren B2C / B2B Plugins für JTL-Shop 5
Neu JTL Shop funktioniert nicht mehr Allgemeine Fragen zu JTL-Shop 2
Neu Shop im Urlaub offline stellen/oder Benachrichten Allgemeine Fragen zu JTL-Shop 8
Neu JTL Shop Template Domain lösen? Allgemeine Fragen zu JTL-Shop 0

Ähnliche Themen