TYPO3 Plugin:

tw_importer

tollwerk Import Erweiterung

tbd

Registrieren Sie Ihre eigene Erweiterung

Anforderungen

  • Ordner mit lesbarer Importdatei (z.B..ods-Datei) in fileadmin/user_upload/import/. Beispiel: fileadmin/user_upload/import/yourextensionkey/import_me.ods

  • ext_localconf.php in Ihrem Erweiterungsverzeichnis, um die Erweiterung über $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['import']['registeredImports']['yourextensionkey'] zu registrieren

  • Gültiges Array für den Haken'registeredImports', siehe Hooks > registerImports

  • Für jedes Modell, das Sie importieren möchten, muss es in der entsprechenden Datenbanktabelle eine Spalte namens "tx_twimporter_id" geben. Ändern Sie also Ihre ext_tables.sql entsprechend. Alternativ können Sie das Mapping in Ihrer ext_typoscript_setup.txt ändern. Beispiel:

    config.tx_extbase.persistence.classes {
        Tollwerk\TwRws\Domain\Modell\Produkt {
            mapping {
                tableName = tx_twrws_domain_model_model_product
                spalten {
    
                    # SKU ist der Spaltenname in Ihrer Datenbank, also ändern Sie ihn
                    sku.mapOnProperty = txTwimporterId
    
                    # Alle diese anderen Spalten sind standardmäßig vorhanden, wenn Ihre Modelle als translateble definiert sind 
                    sys_language_uid.mapOnProperty = ÜbersetzungSprache
                    l10n_parent.mapOnProperty = ÜbersetzungParent
                    hidden.mapOnProperty = versteckt
                    deleted.mapOnProperty = gelöscht
                }
            }
        }
  • Alle entsprechenden Modelle müssen \Tollwerk\TwImporter\Domain\Model\AbstractImportable implementieren

  • Alle Modelle, die \Tollwerk\TwImporter\Domain\Model\AbstractImportable erweitern, müssen die geschützte Eigenschaft $translationParent mit "@var \yourvendor\yournamespace\domain\model\yourmodel" überschreiben (voll qualifizierter Namensraum ist obligatorisch!)

  • Alle entsprechenden Repositorien müssen \Tollwerk\TwImporter\Domain\Repository\AbstractImportableRepository implementieren

  • Füge eine ext_typoscript_setup.txt in dein Erweiterungsverzeichnis ein. Jede importierbare Klasse muss einige Felder zuordnen (tx_twimporter_id, sys_language_uid, l10n_parent, hidden, deleted).

  • Alle Ihre importierbaren Klassen müssen die Übersetzung aktiviert haben, müssen deaktivierbar und löschbar sein. Daher müssen in jeder entsprechenden Tabelle folgende Spalten vorhanden sein: sys_language_uid, l10n_parent, hidden, deleted, hidden

  • Ihre Repositorys, die sich über \Tollwerk\TwImporter\Domain\Repository\AbstractImportableRepository erstrecken, müssen eine geschützte Eigenschaft namens "_tablename" haben, die den entsprechenden Tabellennamen speichert, z.B. " tx_yourextensionkey_domain_domain_model_yourmodelclassname".

  • Für verschachtelte Importe ("Kinder" innerhalb der Hierarchie innerhalb Ihrer ext_localconf.php) müssen Sie die in \Tollwerk\TwImporter\Domain\Model\AbstractImportable definierte "addImportChild($object,$objectConf) überschreiben. Alternativ versucht der Import, die Methode "add[YourChildModelClassname]" im übergeordneten Objekt aufzurufen

  • Sie können den geschützten _prepareImport() von Modellen überschreiben, um die Datenbank usw. vor dem eigentlichen Import des aktuellen Objekts zu bereinigen. Wird für jede Importreihe / Modell aufgerufen.

Checkliste

  • Ordner und Datei importieren
  • ext_localconf.php mit gültigem Haken / Mapping / Hierarchie
  • ext_typoscript_setup.txt mit gültiger Zuordnung
  • Modelle müssen AbstractImportable implementieren
  • Modelle müssen $translationParent geschützt haben
  • Repositories müssen AbstractImportableRepository implementieren
  • Repositories müssen den $_tablename geschützt haben

Sonderfall: Anderes Import-ID-Feld als'tx_twimporter_id'

  • Repositories müssen geschützt sein $field_sku wird auf den Namen der Tabellenspalte gesetzt
  • Setzen Sie'importIdField' in der Hierarchie

Sonderfall: Inline / IRRE Kinder, Wertgegenstände wie Kinder etc.

  • Definieren Sie den Wert für parentAddImportChild innerhalb der Kinderhierarchie.
  • Implementieren Sie dann innerhalb des Parenet-Modells die addImportChild(...) Funktion wie folgt

    /**
     * @param \Tollwerk\TwImporter\Domain\Model\AbstractImportable $Child
     * @param array $childConf
     * @param int $sysLanguage
     */
    öffentliche Funktion addImportChild($child, $childConf, $sysLanguage)
    {
    
        // Mitarbeiter' ist der Wert, den Sie für "parentAddImportChild" innerhalb der Kinderhierarchie definiert haben
        if($childConf['parentAddImportChild'] =='Mitarbeiter'){
            $GLOBALS['TYPO3_DB']->exec_UPDATEquery((
                tx_twimportertest_domain_model_employee',
                uid = '.$child->getUid(),
                array(
                    Firma' => $this->uid
                )
            );
        }
    }

Fehlerquellen

  • SQL Fehlermeldung im TYPO3 Backend oder leere Importtabelle Mapping. Spaltennamen in import.ods-Dateien mit Leerzeichen oder Sonderzeichen? (Z.B."ä,ö,?,?,!" etc.)

Wichtig: Vergiss nicht, alle Caches über das Installationsprogramm zu löschen, nachdem du Dinge in deiner ext_localconf.php hinzugefügt oder geändert hast!

Haken

Registrieren Sie sich für tw_importer-Hooks innerhalb des folgenden globalen Arrays. Die letzte "[ ]" kann leer sein oder muss je nach Haken mit einem Arrayschlüssel / Index Ihrer Wahl gefüllt werden.

  $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tw_importer']['HOOK NAME'][] = DEINE WERTE ODER KLASSEN

Wichtig: Vergiss nicht, nach der Registrierung oder Änderung von Hooks alle Caches über das Install-Tool zu löschen!

registeredImports

Verwenden Sie diesen Haken, um Ihre eigene Erweiterung für den Import zu registrieren. Sie müssen den Erweiterungsschlüssel Ihrer Erweiterung als Index für das Array festlegen. Beispiel:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tw_importer']['registeredImports']['tx_news'] = array(
    'title' => 'News Extensios, Baby!',
    mapping' => array((
        // siehe "Mapping" in diesem Handbuch....
    )
);

TODO

  • Propper l10n_mode und Sprachverarbeitung. Derzeit wird alles wie l10n_mode = "exclude" behandelt.

  • Inline- / IRRE-Objekte vs. propper relation handling....

  • FlashMessage:NOTICE-Meldungen mit Schrittzähler oder etwas zur besseren Fehlersuche mit Hilfe dieses Handbuchs (z.B. "Fehler nach Schritt 4? Könnte falsches Mapping sein")

  • Schnellere Handhabung von Wertobjekten

  • Mehrfache Kinder der gleichen Klasse / des gleichen Modells auf der gleichen Ebene. Z.B. Universität->Professoren (Modell: Person) UND Universitätsstudent (Modell: Person) ! ! !

  • Auswahl der gewünschten Import-Datei

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:TW_IMPORTER ist auf

0.01 % aller TYPO3 installiert.

  • 0.04 % aller TYPO3 8.7.x Installationen installiert
  • 16.67 % aller TYPO3 7.5.x Installationen installiert
  • 5.88 % aller TYPO3 7.1.x Installationen installiert

Aktualität:TW_IMPORTER ist auf dem neusten Stand (v.unknown) bei

100 % aller TYPO3 Installationen

  • 0 % aller TYPO3 9.5.x Installationen
  • 0 % aller TYPO3 9.3.x Installationen
  • 0 % aller TYPO3 9.2.x Installationen
  • 0.04 % aller TYPO3 8.7.x Installationen
  • 0 % aller TYPO3 7.6.x Installationen
  • 16.67 % aller TYPO3 7.5.x Installationen
  • 0 % aller TYPO3 7.4.x Installationen
  • 0 % aller TYPO3 7.3.x Installationen
  • 0 % aller TYPO3 7.2.x Installationen
  • 5.88 % aller TYPO3 7.1.x Installationen
  • 0 % aller TYPO3 7.0.x Installationen
  • 0 % aller TYPO3 6.2.x Installationen
  • 0 % aller TYPO3 6.1.x Installationen
  • 0 % aller TYPO3 6.0.x Installationen
  • 0 % aller TYPO3 5.0.x Installationen
  • 0 % aller TYPO3 4.7.x Installationen
  • 0 % aller TYPO3 4.6.x Installationen
  • 0 % aller TYPO3 4.5.x Installationen
  • 0 % aller TYPO3 4.4.x Installationen
  • 0 % aller TYPO3 4.3.x Installationen
  • 0 % aller TYPO3 4.2.x Installationen
  • 0 % aller TYPO3 4.1.x Installationen
  • 0 % aller TYPO3 4.0.x Installationen
  • 0 % aller TYPO3 3.5.x Installationen

Gosign-Responsive Index: TYPO3 Installationen nutzen TW_IMPORTER zu

  • 40 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 60 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen TW_IMPORTER zu

  • 20 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 80 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 0 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 0 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=36901 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>