TYPO3 Plugin:
tw_importer
tollwerk Import Erweiterung
tbd
Registrieren Sie Ihre eigene Erweiterung
Anforderungen
-
Ordner mit lesbarer Importdatei (z.B.
.ods-Datei
) infileadmin/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
[DependciesAndConflicts]