Loading...
Navigation überspringen

Immobilien nach dem Import manipulieren

Um Immobilien nach dem Import bzw. nach dem Erstellen manipulieren zu können, bietet die Openimmo-Erweiterung einen Signal/Slot bzw. ein Event an. Dieser wird immer ausgeführt, wenn bspw. der ImportCommand eine Immobilie erstellt bzw. ändert.

Um diese Funktion nutzen zu können, müssen Sie Ihren eigenen Slot bzw. Event Listener in einer Erweiterung registrieren.

via Event Listener

Ab Version 6.0.9 steht hierfür ein PSR-14 event zur Verfügung. Ein Beispiel finden Sie in Classes/EventListener/AfterCreationExample.php, die Registrierung des Event Listeners wird in Configuration/Services.yaml durchgeführt.

via Signal/Slot

Einen Slot erstellen

Als erstes müssen Sie den Slot erstellen. Dieser könnte in einer Datei mit dem folgenden Namen erstellt werden EXT:your_extension/Classes/Slot/ImmobilieSlot.php. In dieser Datei definieren Sie eine Methode die dann entsprechend ausgeführt wird:

<?php

namespace YourVendor\YourExtension\Slot;

/**
 * Signal/Slot for immobilie objects
 *
 * This is just an example slot.
 *
 * @package openimmo
 *
 * @author Thomas Deuling <typo3(at)coding(dot)ms>
 */
class ImmobilieSlot
{

    /**
     * Executed after immobilie creation
     *
     * @param int $immobilieUid
     * @param int $immobilieUid
     * @throws \TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException
     * @throws \TYPO3\CMS\Extbase\Persistence\Exception\UnknownObjectException
     */
    public function afterCreation(int $immobilieUid): void
    {
        // ...
    }

}

Eine Beispieldatei finden in unserer Erweiterung unter EXT:openimmo/Classes/Slot/ImmobilieSlot.php.

Einen Slot registrieren

Damit das TYPO3 nun Ihrem neuen Slot kennt müssen Sie diesen registrieren. Dies geschieht ebenfalls in Ihrer Erweiterung in der Datei EXT:your_extension/ext_localconf.php. In dieser Datei benötigen Sie dann den folgenden Code:

//
// Example Slot for manipulating immobilie after creation/modification
/** @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher */
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(
    \CodingMs\Openimmo\Command\ImportCommandController::class, 'afterCreation',
    \YourVendor\YourExtension\Slot\ImmobilieSlot::class, 'afterCreation'
);

Nach dem Hinzufügen müssen Sie nur noch den System-Cache lehren, danach sollte diese Methode bei jeder Erstellung oder Anpassung von Immobilien über den Importer ausgeführt werden, so dass Sie in der Lage sind diese zu manipulieren.

Kontaktanfrage

Sie können uns jederzeit kontaktieren

Contact request
Screenreader label
Security question
EC8_________PM1______
8_R____4______L___ASB
6C2___KXX___8OC______
__C____5____K_____5T6
368_________G8Z______