Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 66

Thema: Mitglieder per CSV importieren

  1. #1
    Contao-Nutzer Avatar von LousyWeather
    Registriert seit
    30.06.2009.
    Ort
    Flensburg
    Beiträge
    59

    Standard Mitglieder per CSV importieren

    Hallo zusammen,

    ich suche nach einer Möglichkeit, Mitglieder (also Frontend-Nutzer) samt E-Mail-Adressen per CSV-Datei zu importieren. Die Erweiterung "frontenduserimport", auf die ich hier im Forum gestoßen bin, scheint für Contao 2.9.1 nicht kompatibel bzw. nicht mehr verfügbar zu sein. Wie kann ich das jetzt lösen? Hat jemand einen Tipp?

    Vielen Dank und beste Grüße von der Ostseeküste!

  2. #2
    Contao-Nutzer
    Registriert seit
    15.09.2010.
    Beiträge
    14

    Standard Mitglieder importieren

    Hallo Leute,

    ich habe erst vor kurzem Contao als CMS entdeckt und bin absolut begeistert.

    Nun habe ich auch das Problem, dass ich weit über 1000 Mitglieder importieren möchte.
    Da die Erweiterung "frontenduserimport" wohl bisher nur bis Typolight 2.6.7 funktioniert suche ich eben auch nach einer Lösung.

    Die Daten liegen mir in einer CSV-Datei vor, die Reihenfolge der Datensätze kann ich beliebig verändern...

    Ich dachte da zuerst an einen Import über phpMyAdmin und habe mir dazu ein Importscript in PHP geschrieben, welches die CSV-Datei ausliest, die Reihenfolge der Datenbank-Tabelle herstellt und in eine neue CSV-Datei schreibt. Diese möchte ich nun via phpMyAdmin in die Datenbank importieren. Der Import erfolgt auch, es wird die Meldung ausgegeben, dass der Import erfolgreich war und 20 Abfragen (20 Datensätze sind in der Test-CSV) durchgeführt wurden.
    Im Backend wird mir dann in der Mitgliederverwaltung aber nur der letzte Datensatz angezeigt (in der Tabelle der Datenbank ist auch nur der eine drin).
    Nun steh ich ein wenig auf dem Schlauch, da ich mir nicht sicher bin ob ich da noch irgendwas vergessen habe

    Welche Möglichkeiten gibt es denn sonst noch Mitglieder zu importieren?

    Es grüßt freundlich
    MarcusD
    Geändert von MarcusD (16.09.2010 um 21:45 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    15.09.2010.
    Beiträge
    14

    Standard

    Hallo Leute,

    ich habe mich nun noch ein wenig gespielt und mir ein kleines Importscript geschrieben, welches ich Euch nicht vorenthalten will:
    PHP-Code:
    <?php
    /* Importfile für die Mitgliederliste in die Tabelle tl_member (Contao)

    Reihenfolge der Spalten aus der Import-Datei:
    1 Name; 2. Vorname; 3 Passwort (im Klartext);
    _______________________________________
    Ausgabereihenfolgefür die ExportDatei:
    "firstname"; "lastname";  "email"; "language"; "groups"; "login"; "username"; "password";
    */

    // Einzulesenden Datei:
    $import 'mitgliederliste.csv';
    // Ausgabedatei:
    $export 'export.txt';
    // Einlesen der Datei, jede Zeile der Datei ist im Array mit Index vorhanden...
    $zeile file($import);
    // Das Contao-Passwort:
    $finalpw "";
    // Ausgabevariable
    $ausgabe    "";
    // Durchlaufe alle Zeilen der ausgelesenen Datei mit eine Schleife.
    // mit "count( $zeile )" wird ermittelt wie viele Zeilen wir denn haben...
    for ( $x 0$x count$zeile ); $x++ )
    {
        
    // Jede Zeile wird an Hand des Trennzeichens unterteilt in Spalten. Hier unser Semikolon...
        
    $spalte    explode";"$zeile[$x] );
            if( 
    count$spalte ) !== "3" )    //wenn die Spaltenanzahl nicht = 3 meckere rum
            
    {
            
    $passwort $spalte[2]; // Generierung des Passwortes mit bestem Dank an die Community
                
    $strSalt substr(md5(uniqid(mt_rand(), true)), 023);
                
    $strPassword sha1($strSalt $passwort);
                
    $finalpw $strPassword ':' $strSalt;
                
    // Ergänzen der Ausgabe mit den Daten: 
                
    {i:0;s:1:"2";}','1','spalte1','827ccb0eea8a706c4c34a16891f84e7b');
                $ausgabe    .= "INSERT INTO tl_member (firstname, lastname, email, language, groups, login, username, password) VALUES ('".
    $spalte[1]."','".$spalte[0]."','".$spalte[0]."@test.de','de','a:1:{i:0;s:1:\"2\";}','1','".$spalte[0]."','".$finalpw."');\n";
            }
                else
                {
                    echo 
    "<span style='color:red;'>Die Anzahl der Spalten/Semikolons in Zeile \"" $x "\" stimmt nicht!</span><br />";
                    die;

                    }

    }
                    
    // Öffne Datei, Schreibe in diese Datei Inhalt aus $ausgabe, schließe Datei, fertig... 

    // Sichergehen, dass die Datei existiert und beschreibbar ist
    if (is_writable($export))
    {
        
    // öffnen $export zum Schreiben.
        // Dateizeiger befindet sich am Anfang der Datei, und
        // dort wird $ausgabe später mit fwrite() geschrieben.
        
    if (!$fp fopen($export'w'))
        {
            print 
    "<span style='color:red;font-size:20px;'>Kann die Datei $export nicht &ouml;ffnen</span>";
            exit;
        }
        
    // Schreibe $ausgabe in die geöffnete Datei.
        
    if (!fwrite($fp$ausgabe))
        {
            print 
    "<span style='color:red;font-size:20px;'>Kann in die Datei $export nicht schreiben";
            exit;
        }
        print 
    "<span style='color:green;font-size:20px;'>Fertig, in Datei $export wurde geschrieben";
        
    // Schliessen der Datei
            
    fclose($fp);
    }
        else
        {
            print 
    "Die Datei $export ist nicht schreibbar";
        }
    ?>
    Voraussetzung ist dass im selben Verzeichnis wie dieses Script die Dateien "mitgliederliste.csv" und "export.txt" existieren. Da ich von den Mitgliedern keine Emailadressen bekommen habe und Contao aber eine Email-Adresse erwartet wird eine generiert aus dem Nachnamen und @test.de. Da das Passwort in der CSV an der dritten Stelle steht wird diese entsprechend umgewandelt. Nun haben wir eine Text-Datei, welche sich mit copy & paste in phpMyAdmin einfügen lässt und alle Mitglieder sind drin
    Wer nun mehr Daten hat kann auch entsprechend mehr Daten in die export.txt schreiben...

    Es grüßt freundlich
    MarcusD

  4. #4
    Contao-Nutzer
    Registriert seit
    28.03.2011.
    Beiträge
    44

    Standard

    Zitat Zitat von MarcusD Beitrag anzeigen
    ein kleines Importscript geschrieben, welches ich Euch nicht vorenthalten will:
    Hallo, danke und Gruß - damit hast Du mir Zeit erspart.

  5. #5
    Contao-Nutzer
    Registriert seit
    15.09.2010.
    Beiträge
    14

    Standard

    Bitte prüfe aber noch, ob die User sich auch wirklich am Frontend anmelden können, hatte letztes Mal damit Schwierigkeiten...

  6. #6
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard

    Hallo!
    Habe das Skript aus Beitrag #3 mal getestet. Bei mir waren nach dem Aufruf von explode noch diverse unerwünschte Anführungszeichen in den Strings. Als ich die entfernt hatte, funktionierte das Skript einwandfrei. Werde es bestimmt mal gebrauchen können!
    Vielen Dank.

    MfG, Ulrike

  7. #7
    Contao-Nutzer
    Registriert seit
    15.09.2010.
    Beiträge
    14

    Standard

    Hallo Ulrike,

    wo musstest Du Anführungszeichen entfernen? Vielleicht zeigst Du mir mal Deine korrigierte Version zum Vergleichen... Vielen Dank!

  8. #8
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard

    Hallo!

    Nach der Zeile
    PHP-Code:
    $spalte explode";"$zeile[$x] ); 
    erhalte ich im Array $spalte Werte wie "Hans", "Meier", jeweils mit (!) Anführungszeichen.

    Durch die Zeile
    PHP-Code:
    $ausgabe    .= "INSERT INTO tl_member (firstname, lastname, email, language, groups, login, username, password) VALUES ('".$spalte[1]."','".$spalte[0]."','".$spalte[0]."@test.de','de','a:1:{i:0;s:1:"2\";}','1','".$spalte[0]."','".$finalpw."');\n"
    wurden bei mir die obigen Anführungszeichen mit in die Datenbank-Felder eingetragen. Auch bei der Passwort-Erstellung waren die Anführungszeichen mit dabei, was sich störend ausgewirkt hat.

    Ich habe daher die Felder auf folgende Weise "bereinigt":
    PHP-Code:
    $arr_search= array('/^\s*"/','/"\s*$/');
    $arr_replace= array("",""); // leere Strings
    $spalte[$i] = preg_replace($arr_search,$arr_replace,$spalte[$i]); 
    Das muss natürlich noch für alle Werte des Arrays $spalte durch eine Schleife laufen...

    Dadurch werden die Anführungszeichen einschließlich eventueller Leerzeichen am Anfang und am Ende (kam bei mir auch vor) entfernt und die Werte können so sauber in die Datenbank eingetragen werden.

    Sollte kein größeres Problem, das in das Skript oben unter #3 zu integrieren.

    Hoffe, ich konnte helfen.

    MfG, Ulrike


    P.S.
    Meine mitglieder.csv habe ich mit OpenOffice erstellt, sie sieht beim Öffnen mit einem Editor ganz normal aus. Wo bei explode z.B. die Leerzeichen am Anfang und am Ende herkommen, ist mir nicht wirklich klar.

    P.P.S.
    Das von mir abgewandelte Skript hat inzwischen viele weitere spezifisch auf meine Bedürfnisse angepasste Erweiterungen bekommen, weshalb ich es nicht veröffentlichen möchte.

  9. #9
    Contao-Nutzer
    Registriert seit
    28.03.2011.
    Beiträge
    44

    Standard

    Zitat Zitat von MarcusD Beitrag anzeigen
    Bitte prüfe aber noch, ob die User sich auch wirklich am Frontend anmelden können, hatte letztes Mal damit Schwierigkeiten...
    Hallo Markus,

    ja, auch das Anmelden hat sofort geklappt.

    Vielleicht kamen Deine vereinzelten Login-Probleme daher, daß das Passwort nicht die erforderliche Mindestlänge hatte, aber nun beim Login die Prüfung zuschlägt.
    Oder aber ein Username ist nicht eindeutig, was ja beim Import auch nicht geprüft wird.
    Dem läßt sich aber vorbeugen.

    Gruß
    Inge

  10. #10
    Contao-Nutzer Avatar von mvenne
    Registriert seit
    07.07.2009.
    Ort
    48361 Beelen
    Beiträge
    30

    Standard

    Hallo in die Runde,

    ich habe diesen alten Thread mal wieder nach oben befördert, weil ich nicht sicher bin, ob das beschriebene Verfahren (speziell die Passwortverschlüsselung) auch mit Contao 2.9.5 noch funktioniert.

    Ich habe mir das Scprit aus Beitrag #3 nachgebaut und so an die 1000 Mitglieder importiert. Nur der Login will nicht gelingen. Wenn ich im Backend das Passwort eines importieren Mitglieds noch einmal manuell setzen, klappt der Login sofort.

    Evtl. wichtig zu wissen: Ich habe die Mindeslänge der Passwörter via $GLOBALS['TL_CONFIG']['minPasswordLength'] = 4; auf 4 festgelegt.

    Bin für jede Hilfe dankbar.

    Gruß
    Michael

  11. #11
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Ist die Verschlüsselung für das Passwort denn noch aktuell?
    Vielleicht hat sich da noch etwas geändert.

    Mal davon abgesehen, dass eine PW-Länge von 4 viel zu kurz ist. ^^
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  12. #12
    Contao-Nutzer Avatar von mvenne
    Registriert seit
    07.07.2009.
    Ort
    48361 Beelen
    Beiträge
    30

    Standard

    Das Verschlüsselung habe ich wie unten vorgeschlagen so gelöst:

    $strSalt = substr(md5(uniqid(mt_rand(), true)), 0, 23);
    $strPassword = sha1($strSalt . $passwort);
    $finalpw = $strPassword . ':' . $strSalt;

    Das steht auch in der user.php von contao noch so drin.

    Die Passwortlänge von nin. 4 Zeichen liegt an den vorliegenden Daten. Hier soll aus die Postleitzahl (hie gibt es auch noch 4-stellige) das Passwort bilden.

    Gruß
    Michael

  13. #13
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mvenne Beitrag anzeigen
    Das Verschlüsselung habe ich wie unten vorgeschlagen so gelöst:

    $strSalt = substr(md5(uniqid(mt_rand(), true)), 0, 23);
    $strPassword = sha1($strSalt . $passwort);
    $finalpw = $strPassword . ':' . $strSalt;
    Das ist soweit korrekt.

    Zitat Zitat von mvenne Beitrag anzeigen
    Das steht auch in der user.php von contao noch so drin.

    Die Passwortlänge von nin. 4 Zeichen liegt an den vorliegenden Daten. Hier soll aus die Postleitzahl (hie gibt es auch noch 4-stellige) das Passwort bilden.
    Da solltest du dann aber tunlichst noch was einarbeiten und die User dazu anhalten, das Passwort zu aendern.
    Sobald dieses Schema einmal bekannt ist, wird dann der ein oder andere User bei anderen "nachsehen" was die so auf der Seite treiben.

    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  14. #14
    Contao-Nutzer Avatar von mvenne
    Registriert seit
    07.07.2009.
    Ort
    48361 Beelen
    Beiträge
    30

    Standard

    Wenn die Verschlüsselungsmethode ok ist, warum bekomme ich dann kein Passwort, bei dem der Login funktioniert?

    Ich trickse hier schon seit Stunden rum - komme aber einfach auf keinen grünen Zweig :-(

    Kaum erzeuge ich im Backend das gleiche PSWD neu, klappt der Login.

    Das mit den 4 Zeichen sehe ich auch so - ist aber zunächst sekundär für mich.

    Gruß
    Michael

  15. #15
    Contao-Nutzer Avatar von mvenne
    Registriert seit
    07.07.2009.
    Ort
    48361 Beelen
    Beiträge
    30

    Standard

    So, ich bin ein Stück weiter gekommen.

    Es liegt wohl nicht an der eigentlichen Verschlüsselung, sondern am Format der Quelldatei. Wenn ich ein Passwort aus der Datei auslesen und in einen md5-Hash umwandle kommt etwas anderes raus, als wenn ich das Passwort aus einer Datenbank auslesen und wandle.

    Hier werde ich dann morgen wieder ansetzen.

    Gruß
    Michael

  16. #16
    Contao-Nutzer
    Registriert seit
    20.12.2011.
    Beiträge
    3

    Standard

    Hallo zusammen,

    aus aktuellem Anlass habe ich das Script für meine Zwecke überarbeitet. Die Angabe von Vor-, Nachname, Email und Passwort sind Pflicht. Die Reihenfolge der Spalten ist konfigurierbar. Optionale Spaltennamen in der ersten Spalte können übersprungen werden. Etc. Getestet mit 5000 Datensätzen auf Contao 2.11.0.

    PHP-Code:
    <?php

    /**
     * Contao Member Import Query Builder
     *
     * Generates an sql file to import contao members taken from a CSV file.
     *
     * Original Script
     * @date   2010-09-18
     * @author MarcusD (https://www.contao-community.de/member.php?4573-MarcusD)
     * @source https://www.contao-community.de/showthread.php?12413-Mitglieder-per-CSV-importieren&p=88187&viewfull=1#post88187
     *
     * Refactored
     * @date   2012-04-27
     * @author soenru (https://www.contao-community.de/member.php?8198-soenru)
     */

    /*
     * The CSV must contain four columns: First name, last name, email and password.
     * The order of the columns does not matter. You can specify the indices in the
     * configuration section.
     */


    /********************************************************************************
     *
     * Configuration
     *
     ********************************************************************************/

    /*
     * Error reporting
     */
    error_reporting(-1);
    ini_set('display_errors'1);

    /*
     * Set the CSV file
     * e.g. 'members.csv'
     */
    $strSourceFile '';

    /*
     * Set the export file
     * e.g. 'members.sql'
     */
    $strExportFile '';

    /*
     * If first line on CSV contains header information, set to true else false
     */
    $blnFirstLineHeaders false;

    /*
     * Set the field delimiter (one character only)
     * e.g. ','
     */
    $strCsvDelimiter '';

    /*
     * Set the member group assignment(s)
     * e.g. 'a:1:{i:0;s:1:"2";}'
     */
    $strGroups '';

    /*
     * Set the column index of first and last name as well as of the password. This
     * is an array index, so 0 (zero) is the first column, 1 the second and so forth.
     */
    $intFirstNameIndex 0;
    $intLastNameIndex 1;
    $intEmailIndex 2;
    $intPasswordIndex 3;


    /********************************************************************************
     *
     * Do not change anything below this line, unless you know what you are doing!
     *
     ********************************************************************************/

    /**
     * Builds password to store in database from raw password
     *
     * @param string $password
     * @return string
     */
    function buildPassword($password)
    {
        
    $strSalt substr(md5(uniqid(mt_rand(), true)), 023);
        return 
    sha1($strSalt $password) . ':' $strSalt;
    }

    $strInsertQuery 'INSERT INTO `tl_member` (`tstamp`, `firstname`, `lastname`, `email`, `language`, `groups`, `login`, `username`, `password`, `dateAdded`) VALUES (UNIX_TIMESTAMP(),\'%s\',\'%s\',\'%s\',\'de\',\'%s\',\'1\',\'%s\',\'%s\',UNIX_TIMESTAMP());' PHP_EOL;
    $intLineCounter 0;

    if ((
    $resSourceFile fopen($strSourceFile'r')) !== false)
    {
        
    file_put_contents($strExportFile'');
        while ((
    $arrMember fgetcsv($resSourceFile0$strCsvDelimiter)) !== false)
        {
            
    $intLineCounter++;
            if (
    $intLineCounter === && $blnFirstLineHeaders)
            {
                continue;
            }

            
    file_put_contents($strExportFilesprintf($strInsertQuery$arrMember[$intFirstNameIndex], $arrMember[$intLastNameIndex], $arrMember[$intEmailIndex], $strGroups$arrMember[$intFirstNameIndex] . '.' $arrMember[$intLastNameIndex], buildPassword($arrMember[$intPasswordIndex])), FILE_APPEND);
        }
        
    fclose($resSourceFile);
    }

  17. #17
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Moin Moin,

    ich steh jetzt auch vor der Aufgabe, 6000 Mitglieder zu importieren...

    Jetzt sollen aber statt des Benutzernamens eine Kundennummer und als Passwort die PLZ vorgegeben werden.
    Nach dem Login muss das Passwort geändert werden...

    Geht das so einfach?

    Das mit dem Script sieht super aus, wo muss ich installieren, damit es funktioniert?
    Kann ich da noch weitere Felder mit reinnehmen?

    Danke

    Grüße
    Matu
    Viele Grüße aus Köln
    Matu

  18. #18
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Guten morgen,

    ist zwar nicht im ER habe ich aber selber schon getestet und es funktioniert.

    der tabimporter ist eine universelle Lösung um Tabellen in Contao zu befüllen!

    https://github.com/delahaye/tabimporter

    Und das ganze übers Backend!

    Gruß Kirsten
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  19. #19
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Danke, ich schaus mir mal an !

    Wie kann ich denn die Passwörter für die 6.000 Mitglieder vorgeben?
    Kann ich einfach in der tl_member.csv die Passwörter jedes einzelnen Mitglieds eintragen?
    Aber dann wird der Wert nicht verschlüsselt übergeben beim Import, oder?

    Als Passwort soll die Postleitzahl des Mitglieds eingetragen sein.

    Wie kann ich es lösen?

    Danke
    Viele Grüße aus Köln
    Matu

  20. #20
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der DB steht das PW als md5, daher kannst du es einfach über die Spalte in der CSV importieren. Ausserdem das Flag, das der User beim ersten Login sein PW ändern muss. MD5-Summen lassen sich einfach in der Konsole erzeugen bei Linux.
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  21. #21
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Also wenn ich die csv-Datei in PHPmyAdmin importiere steht das Passwort normal in der Datenbank, also unverschlüsselt!

    Ich habe einen MAC, muss man die Passwörter vorher noch umrechnen?
    Wie gesagt, es sollen die Postleitzahlen der Kunden als Passwort gelten...

    Danke

    Grüße
    Matu
    Viele Grüße aus Köln
    Matu

  22. #22
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Wie habt ihr denn mehrere Mitglieder per CSV und Passwörtern importiert?

    Komme da nicht weiter...

    Grüße
    Matu
    Viele Grüße aus Köln
    Matu

  23. #23
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard

    Ich habe nun auch den Tabimporter für den Import von CSV Mitgliederdaten benutzt und im ersten Anlauf hat es auch wirklich Prima funktioniert.
    Mir ist nur noch nicht ganz klar, wie ich z.B. automatisch eine Mitgliedergruppe zuweisen kann. Hat jemand eine Idee?

    LG,
    Dirk

  24. #24
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du musst dieses in die Spalte group als serialisiertes Array eintragen ;-)

    Oder hast du noch eine zusätzliche Tabelle tl_member_to_group? Dann kommt das ganze hier in die Tabelle.
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  25. #25
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard

    Ich bin leider nich so bewandert im Anlegen von serialisiertes Arrays. :-(
    Ich trage also unter Groups als festen Wert dieses Array ein, oder?
    Wie würde dieses Array denn aussehen (z.B. bei 3 Mitgliedergruppen)?

    Lg,
    Dirk

  26. #26
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard

    Es funktioniert nun bei mir. Ich war mit dem Entwickler der Erweiterung in Kontakt und folgende Lösung angeboten:

    Man legt in der CSV-Datei ein Feld mit der ID der Mitgliedergruppen (kommagetrennt) an und dieses Feld wird dann mit dem Feld "groups" verknüpft. Aber nicht 1:1, sondern als serialisiertes Feld. Dann wird z.B. aus '2,5' 'a:2:{i:0;s:1:"2";i:1;s:1:"5";}' und dann funzt es auch.

    Großes Dankeschön nochmal an KATgirl und an Christian!

    LG,
    Dirk

  27. #27
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    @KATgirl u. matuweb

    Das Passwort steht nicht als md5, sondern wie hier beschrieben https://www.contao-community.de/show...l=1#post180495 in der DB

    @dirksche

    Wenn du nur so bis 100 Mitglieder hast, kannst du die Gruppe auch später im BE mit mehrere Bearbeiten und Überschreiben setzen.

    Ein serialisiertes Array erzeugst du dir mit PHP z.B. so, falls deine Gruppen-IDs so lauten 2, 5 u. 7
    PHP-Code:
    <?php

    $arrGroupIds 
    = array(257);

    echo 
    serialize($arrGroupIds);

    ?>
    ps Zurückwandeln in ein Array kannst du das mit unserialize(), alles nachzulesen bei php.net, jede Funktion hat ne schöne Seite.

    Hier nochmal kurz, was diese Schreibweise zu bedeuten hat 'a:2:{i:0;s:1:"2";i:1;s:1:"5";}' (steht nat. auch schon ausführlich auf php.net)

    a:2 -> a steht für Anzahl (wahrscheinlich amount) der Elemente des Arrays, also 2 (2 Mitglieder-Gruppen)
    i:0 -> i steht für Index - es kommt das erste Element mit dem Index 0 (die erste Mitglieder-Gruppe)
    s:1 -> s steht für String, die Zahl dahinter für die Anzahl der Zeichen des Strings. Der String "1" hat nunmal die Länge 1 und 5 auch.
    "5" -> In den Anführungszeichen steht schlussendlich der eigentliche Wert der Variablen, in diesem Beispiel die Gruppen-ID.

    Gemacht wird das Ganze, damit man ein PHP-Array als String (Textzeile) speichern und zwischen verschiedenen Programmiersprachen "transportieren" kann. Solange man sich in PHP bewegt ist array(1,5) natürlich einfacher als der serialisierte String.

    Eine zweite Variante ein PHP-Array in einen String umzuwandeln wäre json_enconde() und zurück mit json_decode().
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  28. #28
    Contao-Fan Avatar von jschma
    Registriert seit
    09.09.2010.
    Beiträge
    408

    Standard

    Zitat Zitat von dirksche Beitrag anzeigen
    Es funktioniert nun bei mir. Ich war mit dem Entwickler der Erweiterung in Kontakt und folgende Lösung angeboten:

    Man legt in der CSV-Datei ein Feld mit der ID der Mitgliedergruppen (kommagetrennt) an und dieses Feld wird dann mit dem Feld "groups" verknüpft. Aber nicht 1:1, sondern als serialisiertes Feld. Dann wird z.B. aus '2,5' 'a:2:{i:0;s:1:"2";i:1;s:1:"5";}' und dann funzt es auch.

    Großes Dankeschön nochmal an KATgirl und an Christian!

    LG,
    Dirk
    Hi Dirk,

    ich stehe genau vor dem gleichen Problem. Ich würde gerne 300 neue Mitglieder anlegen. BN sowie PW würde ich gerne durch eine CSV-Importieren und automatisch einer Gruppe zuordnen.

    Kannst Du evtl kurz zusammenfassen wie du genau vorgegangen bist? Den TabImporter habe ich bereits installiert.

    Danke und viele Grüße,
    jschma
    Geändert von jschma (12.07.2012 um 11:43 Uhr)

  29. #29
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard

    Hallöchen,

    also ich habe in meiner Excel Datei (oder CSV Datei) eine neue Spalte "Groups" angelegt und dort die ID der Gruppe eingetragen (im Backend unter Mitgliedergruppen einfach mit der Maus über den Info Button gehen um die ID zu sehen).
    Dann einfach beim Zieltabellen-Feld Groups das Datenfeld auswählen, den Modus auf Tags, Serialisierungen stellen, Tag-Typ mit Trennzeichen, Trennzeichen in der Datenquelle ein Komma und Tag Typ in der Zieltabelle auch auf serialisiertes Feld stellen. So hat es bei mir problemlos funktioniert.

    LG,
    Dirk

  30. #30
    Contao-Fan Avatar von gregor
    Registriert seit
    20.06.2009.
    Ort
    Frankfurt am Main
    Beiträge
    553

    Standard

    Hallo zusammen,

    leider habe ich mit dem Import von Mitgliederdaten über den TabImporter keinen Erfolg. Ich verwende Contao 2.11.4 und eine CSV-Datei (UTF8 ohne Bom) mit Spalten für groups, firstname, lastname und email mit insgesamt 20 unterschiedlichen Datensätzen. Die Spalten sind mit ; getrennt. Im Importjob sind nur die Felder, mit Modus "Wert 1:1 einfügen", zum Import aktiviert, die auch in der CSV-Datei vorhanden sind.

    Starte ich den Importjob im BE ist dieser nach einer Sekunde ohne Fehlermeldung beendet. Jedoch werden unter Benutzerverwaltung>Mitglieder keine neuen Mitglieder angezeigt. Ein Blick mit phpMyAdmin in die Tabelle tl_member zeigt auch keine Daten an.

    Nun bin ich zum Test mal den umgekehrten Weg gegangen. Habe im BE manuell 5 Mitglieder angelegt, mit phpMyAdmin die Tabelle tl_member als CSV exportiert, dann im BE die vorhandenen 5 Mitglieder gelöscht, einen neuen Importjob im TabImporter erstellt und die komplett exportiere CSV-Datei tl_member importiert. Der Job wird ohne Fehlermeldung ausgeführt, jedoch sind auch hier keine Mitglieder importiert worden.

    Sicherlich ist es nun schwer zu sagen, woran es liegen könnte das ich keine Datensätze mit TabImporter importieren kann. Würde mich über Tipps und Hinweise sehr freuen.

    LG
    Gregor

  31. #31
    Contao-Fan
    Registriert seit
    31.08.2009.
    Beiträge
    365

    Standard

    Hallo zusammen,
    ich würde ja auch gern den tabimporter benutzen. Leider habe ich keine Ahnung, wie ich den installiere. Die Zip-Datei habe ich in den root-Ordner kopiert. In der Erweiterungsverwaltung habe ich auf Erweierung installieren geklickt und den Dateinamen "delahaye-tabimporter-b9b7f64.zip" dort angegeben. Antwort "Erweiterung nicht gefunden"
    Bitte helft mir.

  32. #32
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    @rentier

    entpacke die zip-Datei und lege die beiden Ordner "tabimporter" und "tabimporter_hookexamples" in den Ordner "modules" (befindet sich im Ordner "system").
    Dann nochmals die Installationsroutine aufrufen -> www.deinedomain/contao/install.php und das Modul installieren.

  33. #33
    Contao-Fan
    Registriert seit
    31.08.2009.
    Beiträge
    365

    Standard

    Vielen Dank für den Hinweis!
    Nun muss ich nur noch lernen, die csv richtig vorzubereiten.
    Gruß vom Rentier

  34. #34
    Contao-Nutzer
    Registriert seit
    18.12.2010.
    Ort
    Mühltal
    Beiträge
    42

    Standard

    Hallo zusammen,

    mir geht es wie gregor. Die Installation und Konfiguration des Moduls hat wunderbar funktioniert. Allerdings werden immer nur leere Datensätze importiert. Ich habe verschiedene Versionen der Importdatei ausprobiert, leider ohne Erfolg.

    Wenn jemand mit dem Modul Erfolg hat würde mich interessieren was ich falsch gemacht habe. Danke!

    LG

    Eckhard

  35. #35
    Contao-Fan Avatar von gregor
    Registriert seit
    20.06.2009.
    Ort
    Frankfurt am Main
    Beiträge
    553

    Standard

    Hallo Eckhard,

    schwer zu sagen was Du falsch gemacht hast, wenn man nicht genau weiß was Du gemacht hast oder was Du nicht gemacht hast

    Hast Du, nachdem die zu importierenden Tabellen konfiguriert hast, auch unter dem Importjob einen neuen Importschritt angelegt?

    LG
    Gregor

  36. #36
    Contao-Nutzer
    Registriert seit
    18.12.2010.
    Ort
    Mühltal
    Beiträge
    42

    Standard

    Hallo Gregor,

    ja, das habe ich gemacht. Beim Testdurchlauf funktioniert alles ohne Fehler. Der Import wird auch als erfolgreich ausgegeben. Die Datensätze,
    die durch den Import angelegt werden, sind jedoch leer.

    LG Eckhard

  37. #37
    Contao-Nutzer
    Registriert seit
    18.12.2010.
    Ort
    Mühltal
    Beiträge
    42

    Standard

    Da es mit dem Modul nicht funktioniert hat, habe ich die Datensätze jetzt händisch über SQL script in die Tabelle geschrieben. Dabei sind die Blob Felder nicht sauber geschrieben worden. Die muss ich nun manuell nacharbeiten. Der funktionierende Import wäre schon eine riesige Hilfe.

  38. #38
    Contao-Fan
    Registriert seit
    31.08.2009.
    Beiträge
    365

    Standard

    Hallo zusammen.
    Hier leider ein erster Problembericht: Nach der Definition der Felder:
    Definition.jpg
    erhalte ich beim Ausführen folgende Meldung:
    Fatal error: Class 'ModuleTabimporter' not found in /customers/1/d/a/scse.de/httpd.www/system/modules/backend/Backend.php on line 229
    Da ist wohl etwas falsch zusammengesetzt. Was kann ich tun?
    Grüße von Rentier (5=n)

  39. #39
    Alter Contao-Hase Avatar von christian
    Registriert seit
    15.06.2009.
    Ort
    Viersen
    Beiträge
    1.038
    Partner-ID
    387

    Standard

    Nach Deinem Screenshot überschreibst Du ja auch ausschließlich das Ziel-Feld "id"...
    Contao-Partner am Niederrhein
    Templating - Komplettservice - Erweiterungen
    Infos: http://delahaye.de

  40. #40
    Contao-Fan
    Registriert seit
    31.08.2009.
    Beiträge
    365

    Standard

    Ok. das war dumm. Die Korrektur ändert aber nichts am Ergebnis.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Stylessheets importieren (erl.)
    Von Janis im Forum survey_ce
    Antworten: 0
    Letzter Beitrag: 05.11.2010, 04:05
  2. Datenbankinhalte von 2.6 in 2.7 importieren
    Von Coleman im Forum Installation / Update
    Antworten: 1
    Letzter Beitrag: 03.02.2010, 10:23
  3. rss.xml importieren
    Von chrisbirne im Forum Nachrichten/Events/FAQ
    Antworten: 6
    Letzter Beitrag: 26.11.2009, 10:49
  4. Vorlage importieren
    Von chr.flader im Forum Layout / Templates / Holy Grail
    Antworten: 4
    Letzter Beitrag: 09.09.2009, 09:10
  5. Benutzergruppe ex/importieren
    Von olli im Forum Geschützte Bereiche/Mitglieder
    Antworten: 1
    Letzter Beitrag: 06.08.2009, 13:31

Lesezeichen

Lesezeichen

Berechtigungen

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