Ergebnis 1 bis 22 von 22

Thema: Ein eigenes Feld hinzufügen

  1. #1
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Frage Ein eigenes Feld hinzufügen

    Hallo zusammen,

    zunächst eine kurze Vorstellung. Mein Name ist Detlef, ich bin 62 Jahre alt und beschäftige mich seit 25 Jahren mit Computern, u.a. Programmierung in AutoLisp, VB, VBA, Javascript - das alles auf gehobenem Amateur-Niveau (bisher habe ich alles lösen können, und wenn es von hinten durch die Brust ins Auge war ). In php habe ich Grundkenntnisse, ebenso in SQL - mehr aber auch nicht. Meine Webseiten habe ich bisher in reinem HTML und CSS erstellt, für ein neues Projekt will ich jetzt Contao (3.3.5) zu nutzen. Da tue ich mich aber noch etwas schwer.

    Ich versuche, bei der Mitgliederverwaltung ein zusätzliches Feld zu erstellen. Da es eine Kundennummer sein soll, müsste ich ja nur gemäß Anleitung https://contao.org/de/manual/3.0/cus...tion-erweitern vorgehen. Leider erscheint aber kein Feld und ich denke, in der DB sollte es dann in der tl_member ein Feld namens 'customer_number' geben - gibt es aber nicht. Wenn ich das Installtool aufrufe, dauert es etwas, dann wird mir "alles prima" angezeigt - eigentlich würde ich erwarten, dass dort eine Aufforderung zur DB-Aktualisierung kommt.

    Also: Ratlosigkeit! Kann mir jemand auf's Pferd helfen?

  2. #2
    Contao-Nutzer
    Registriert seit
    30.10.2010.
    Beiträge
    93

    HTML

    Als Alternative zur direkten Definition des 'sgl' im Feld kannst du im Modulordner einen Ordner config erstellen.
    In diesem ordner erstellst du die Datei database.sql und gibst folgendes in die Datei ein:
    Code:
    -- 
    -- Table `tl_member`
    -- 
    
    CREATE TABLE `tl_member` (
    	   `customer_number` varchar(8) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Müsste eigentlich auch mit 'sql' im Feld bei neuen Contao-Versionen funktionen.
    Die obige ist eine Alternative und wurde bei älteren Contao-Versionen verwendet.
    Welche Contao-Version hast du?

    Einfach im Backend dann unter "Erweiterungen bearbeiten"/"Datenbank aktualisieren" die Datenbank aktualisieren. bei mir funktionierts so auf Anhieb.
    Geändert von martinmv (16.10.2014 um 09:56 Uhr)

  3. #3
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Zitat Zitat von martinmv Beitrag anzeigen
    Die obige ist eine Alternative und wurde bei
    älteren Contao-Versionen verwendet.
    Welche Contao-Version hast du?
    @martinmv. Version steht doch im ersten Thread 3.3.5 und da sollte man eher Fehlersuche betreiben als mit Workaround aus vergangen Tagen das Problem zu umschippern.

    Herzlich Willkommen Detlef,

    kannst Du uns vielleicht noch zeigen wie Deine DCA Datei aussieht, dann kann mann nach Fehlern suchen.
    Geändert von magicsepp (16.10.2014 um 10:47 Uhr)

  4. #4
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Danke schon mal für Eure Antworten!

    Naja, ich habe einfach den Inhalt aus dem verlinkten Artikel 1:1 reinkopiert, also:
    Code:
    // Anpassung der Palette
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace(
        'company',
        'customer_number,company',
        $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );
    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_member']['fields']['customer_number'] = array(
        'label'     => &$GLOBALS['TL_LANG']['tl_member']['customer_number'],
        'exclude'   => true,
        'inputType' => 'text',
        'eval'      => array('mandatory'=>true, 'rgxp'=>'digit', 'maxlength'=>8),
        'sql'       => "varchar(8) NOT NULL default ''"
    );
    Also alles 100%ig so gemacht wie dort beschrieben incl. Pfad- und Dateinamen (naja, dann sollte es ja eigentlich funktionieren). Und auch die Sprachdatei habe ich so angelegt.
    Es kommt auch nirgendwo eine Fehlermeldung oder so.

  5. #5
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der Systemwartung den internen Cache leeren!
    Warst Du im Autoload-Creator und hast dort für Deine Erweiterung die autoload.php erstellt?
    Warst Du in der Erweiterungsverwaltung und hast die Datenbank aktualisiert?

  6. #6
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Willkommen im contao-Forum

  7. #7
    Contao-Fan
    Registriert seit
    21.08.2012.
    Beiträge
    280
    User beschenken
    Wunschliste

    Standard

    Huhu,


    nur zur Sicherheit: du hast die DCA-Anpassung auch in der korrekten Datei vorgenommen?
    Dies gehört system/config/dcaconfig.php
    Grüße vom Gyer

  8. #8
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von MacGyer Beitrag anzeigen
    Dies gehört system/config/dcaconfig.php
    Nicht zwingend. Wenn man diese Änderung als kleines eigenes Modul versteht könnte man es auch in die
    Code:
    system/modules/meinmodul/dca/tl_member.php
    packen.

  9. #9
    Contao-Fan
    Registriert seit
    21.08.2012.
    Beiträge
    280
    User beschenken
    Wunschliste

    Standard

    Hey fiedsch,


    das ist wohl wahr.
    Ich denke, vielleicht liege ich falsch, dass der Detlef sich nicht grad ins Abenteuer einer eigenen Extension stürzt. Aber super wäre das
    Grüße vom Gyer

  10. #10
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Ihr verwirrt mich!

    Ich habe doch geschrieben, dass ich es genau nach Anleitung gemacht habe (ok, zumindest nach bestem Wissen).

    Also:
    Angelegt: system/modules/dca/tl_member.php, Codebox aus dem Artikel einkopiert
    Angelegt: system/modules/languages/de/tl_member.php, Codebox aus dem Artikel einkopiert

    Da von "Autoload-Creator" nichts im Artikel steht, habe ich da nichts gemacht.

    Dann sowohl versucht, die DB über das Install-Tool zu aktualisieren, danach über die Erweiterungsverwaltung. Meldung jeweils: Die DB ist aktuell.

    Wenn ich so Eure Beiträge studiere, könnte es am Pfad liegen, also system/modules/dca/tl_member.php statt system/modules/meinmodul/dca/tl_member.php? (vor heute Abend kann ich es nicht ausprobieren).
    Geändert von DetlefT (17.10.2014 um 08:00 Uhr)

  11. #11
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    mit meinmodul im Pfad sollte ein Erfolgserlebnis eintreten...

  12. #12
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von magicsepp Beitrag anzeigen
    mit meinmodul im Pfad sollte ein Erfolgserlebnis eintreten...
    und Du nennst es so, daß es für Dich einen sinnvollen Namen ergibt :-)

  13. #13
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Hallo zusammen,

    zumindest ein Teilerfolg . Nach Anlegen des Modulverzeichnissses und Ausführen des Install-Tools bzw. der DB-Aktualisierung kommt folgende Fehlermeldung, das Feld wird bei "Neuer Benutzer" bereits angezeigt.

    Code:
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace ( 'company', 'customer_number,company', $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] ); $GLOBALS['TL_DCA']['tl_member']['fields']['customer_number'] = array ( 'label' => &$GLOBALS['TL_LANG']['tl_member']['customer_number'], 'exclude' => true, 'inputType' => 'text', 'eval' => array('mandatory'=>true, 'rgxp'=>'digit', 'maxlength'=>8), 'sql' => "varchar(8) NOT NULL default ''" );
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web93/html/xxxxxxxx/system/modules/z_memberplus/dca/tl_member.php:14) in system/modules/core/library/Contao/Template.php on line 261
    
    #0 [internal function]: __error(2, 'Cannot modify h...', '/var/www/web93/...', 261, Array)
    #1 system/modules/core/library/Contao/Template.php(261): header('Vary: User-Agen...', false)
    #2 system/modules/core/classes/BackendTemplate.php(121): Contao\Template->output()
    #3 contao/main.php(284): Contao\BackendTemplate->output()
    #4 contao/main.php(146): Main->output()
    #5 contao/main.php(293): Main->run()
    #6 {main}
    
    
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web93/html/xxxxxxxx/system/modules/z_memberplus/dca/tl_member.php:14) in system/modules/core/library/Contao/Template.php on line 262
    
    #0 [internal function]: __error(2, 'Cannot modify h...', '/var/www/web93/...', 262, Array)
    #1 system/modules/core/library/Contao/Template.php(262): header('Content-Type: t...')
    #2 system/modules/core/classes/BackendTemplate.php(121): Contao\Template->output()
    #3 contao/main.php(284): Contao\BackendTemplate->output()
    #4 contao/main.php(146): Main->output()
    #5 contao/main.php(293): Main->run()
    #6 {main}
    Ein Leerzeichen ist nicht am Anfang enthalten, die Datei ist ohne BOM im UTF8-Format abgespeichert (diese Ursachen kenne ich für die Meldung "Headers already sent ...".
    Und direkt die Zusatzfrage: Im Registrierungsformular muss ich offensichtlich das Feld selbst einbauen, oder?
    Geändert von DetlefT (17.10.2014 um 15:30 Uhr)

  14. #14
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Die Fehlermeldung, in der ein Teil der DCA-Konfiguration angezeigt wird schaut mir danach aus, als ob das "öffnende" <?php fehlt.

    Zu Feld im Registrierungsformular könnte vielleicht feEditable => true im eval dazu führen, daß Du das Feld in der Formulardefinition auswählen kannst. Da bin ich mir aber nicht sicher. Ich würde dazu mal in die DCA Definition der anderen tl_member Felder schauen, die wie gewünscht funktionieren.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  15. #15
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Die Fehlermeldung, in der ein Teil der DCA-Konfiguration angezeigt wird schaut mir danach aus, als ob das "öffnende" <?php fehlt.
    Hallo fiedsch,

    Bingo, das war der Grund.

    Also, wenn man den Code aus dem Wiki-Beitrag statt in ein eigenes Modul in die system/config/dcaconfig.php packt, wird es wohl funktionieren, da steht das <?php ja am Dateianfang. Bei einem eigenen Modul muss es noch davor gestellt werden. Schade, würde dem Anfänger die Sache enorm erleichtern, wenn das in dem Wiki-Beitrag stehen würde.

    Die Ausgabe im Frontend steht auf einem ganz anderen Blatt, da werde ich wohl noch etwas probieren müssen. Bis hierhin erstmal Danke an alle Helfer!

    Grüße, Detlef

  16. #16
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Zitat Zitat von DetlefT Beitrag anzeigen
    ... Schade, würde dem Anfänger die Sache enorm erleichtern, wenn das in dem Wiki-Beitrag stehen würde.
    Da du das entdeckt hast, solltest du den Wiki-Beitrag entsprechend abändern!

  17. #17
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Hallo Karl,

    merke gerade, dass ich völlig falsche Infos geliefert habe: die Quelle für die Erweiterung ist nicht das ContaoWiki, sondern das Handbuch https://contao.org/de/manual/3.3/cus...er-hinzufuegen. Müsste mich also jetzt bei GitHub anmelden und da dann durchblicken ... Puhhh!
    Viele Grüße, DetlefT

  18. #18
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo Detlef,

    danke für die Info!

    Ich muss aber gestehen, ich hab' im Wiki nicht nachgeschaut.

  19. #19
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Naja, es wird einfach ein gewisses Grundverständnis von PHP vorausgesetzt. Und dazu zählt dann nun mal auch das wissen, wie man eine PHP-Datei anlegt... Genau so wie zu einer HTML-Datei die HTML-Tags gehören. Das Contao Handbuch ist eben kein PHP für Anfänger Handbuch ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  20. #20
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Naja, es wird einfach ein gewisses Grundverständnis von PHP vorausgesetzt. Und dazu zählt dann nun mal auch das wissen, wie man eine PHP-Datei anlegt
    Jein!

    Wenn es nur um das PHP-Verständnis geht, hast Du sicher Recht. Aber zu einer PHP-Datei gehört dann auch das schließende "?>" - und das muss hier eben nicht eingefügt werden. Man muss also wissen, wie Contao tickt. Wenn ich so lange dabei bin wie Du, werde ich mir über solche "Peanuts" sicher auch keine Gedanken mehr machen müssen ...
    Viele Grüße, DetlefT

  21. #21
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von DetlefT Beitrag anzeigen
    Jein!

    Wenn es nur um das PHP-Verständnis geht, hast Du sicher Recht. Aber zu einer PHP-Datei gehört dann auch das schließende "?>" - und das muss hier eben nicht eingefügt werden. Man muss also wissen, wie Contao tickt. Wenn ich so lange dabei bin wie Du, werde ich mir über solche "Peanuts" sicher auch keine Gedanken mehr machen müssen ...
    Das man das schließende ?> weg lässt ist keine Contao Eigenheit, sondern auch von PHP.
    Contao erfindet die Scriptsprache PHP nicht neu! PHP ist Grundlage und wird so benutzt wie es benutzt werden sollte.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  22. #22
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Uups!

    zum Glück habe ich in meiner Vorstellung geschrieben, dass ich in PHP nur Grundkenntnisse habe. Dass man das ?> weglassen kann, habe ich bisher nicht gewusst. Danke für die Erkenntnis, MacKP!
    Viele Grüße, DetlefT

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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