Ergebnis 1 bis 3 von 3

Thema: Hooks für Isotope in Contao 4.13

  1. #1
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard Hooks für Isotope in Contao 4.13

    Hallo liebes Forum,

    bis jetzt habe ich Hooks für Isotope immer so gebaut, dass ich in system/modules die HookClass.php und den Ordner Config angelegt habe. Im /config war dann config.php und autoloader.php

    Wie ich nun verstanden habe, ist diese weise outdated und spätestens mit C5 nicht mehr nutzbar.

    Daher wollte ich mir gerade den Weg über src/EventListener/PostCheckoutListener.php ansehen. Habe also das Tutorial von der Dokuseite mit ParseArticlesListener.php genommen, umbenannt und folgenden Inhalt gefüllt:

    Code:
    <?php
    
    // src/EventListener/PostCheckoutListener.php
    namespace App\EventListener;
    
    use Contao\CoreBundle\Framework\Adapter;
    use Contao\CoreBundle\Framework\ContaoFramework;
    use Isotope\Model\Product\Standard;
    use Isotope\Model\ProductCollection\Order;
    use Isotope\ServiceAnnotation\IsotopeHook;
    
    /**
     * @Hook("postCheckout")
     */
    class PostCheckoutListener
    {
        public function __invoke($objOrder): void
        {
           \Contao\Database::getInstance()->prepare("INSERT INTO cc_course_member (`nutzer_id`) VALUES (99)")->execute();
        }
        
    }
    Die Funktion dabei natürlich erstmal nur ein Platzhalter.

    Ist diese Variante nicht für externe (in dem Fall Isotope) Hooks nutzbar?

    Und dann nur zum Verständnis: mit dem Autoloader damals konnte ich verstehen, wie Contao die Hooks zuordnet - schließlich habe die Hook direkt angesprochen. Beim ParseArticlesListener-Beispiel passiert das nicht. Wir die Zuordnung rein darüber vorgenommen, dass der Klassenname mit ParseArticles beginnt?

    VIELEN Dank für einen Fingerzeig - bin gerade etwas ratlos mit der Isotope-Hook.

    Moderation: Beitrag verschoben.
    Geändert von mlweb (24.02.2024 um 16:32 Uhr)

  2. #2
    Contao-Nutzer Avatar von cwe
    Registriert seit
    30.12.2020.
    Ort
    Münster (Westf)
    Beiträge
    33

    Standard

    Habe es nun erstmal realisiert über:

    contao/config/config.php
    Code:
    <?php
    // contao/config/config.php 
    use App\EventListener\CreateUserData; 
    $GLOBALS['ISO_HOOKS']['postCheckout'][] = [CreateUserData::class, 'CreateUserDataFunc'];
    src/EventListener/CreateUserData.php
    Code:
    <?php
    
    // src/EventListener/UpdateStock.php
    namespace App\EventListener;
    
    use Isotope\Interfaces\IsotopeProduct;
    use Isotope\Isotope;
    use Isotope\Model\Config;
    use Isotope\Model\Product;
    use Isotope\Model\ProductCollection\Order;
    use Isotope\Model\ProductCollectionItem;
    use Isotope\Model\ProductType;
    
    class CreateUserData {
        /**
         * @Hook("postCheckout")
         */
        public function CreateUserDataFunc(Order $order): void
        {
    
            \Contao\Database::getInstance()->prepare("INSERT INTO cc_course_member (`nutzer_id`) VALUES (99)")->execute();
            
        }
    }
    Nicht sicher, ob das nun der saubere Weg ist.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Isotope Hooks können (noch) nicht über Service Tagging hinzugefügt werden, man braucht nach wie vor den ISO_HOOKS Eintrag.
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Gäste: 2)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •