Ergebnis 1 bis 3 von 3

Thema: [gelöst] Zeichenbegrenzung eines Backend-Textfelds ändern

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

    Frage [gelöst] Zeichenbegrenzung eines Backend-Textfelds ändern

    Ich lese über den Modul-Typ "Auflistung" verschiedenste Tabelleneinträge aus einer Datenbanktabelle aus.
    Dazu habe ich im Feld "Bedingung" zahlreiche Bedingungen angeben. Mein Problem ist, dass die Anzahl der Zeichen, die standardmäßig für dieses Feld eingegeben werden, auf 255 eingestellt ist.
    Siehe dazu in der Datei "tl_member" unter
    Code:
    system/modules/listing/dca
    :

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['fields']['list_where'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_module']['list_where'],
        
    'exclude'                 => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('preserveTags'=>true'maxlength'=>255'tl_class'=>'w50')
    ); 
    Ich habe die 'maxlength' in der "dcaconfig.php"-Datei auf 300 erhöht.
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_module']['fields']['list_where']['eval']['maxlength'] = 300
    Längerer Text lässt sich jetzt eintragen.

    Nach dem Speichern wird die Eingabe im Textfeld jedoch auf 255 Zeichen gekürzt.
    Hat wer von euch eine Lösungsidee, wie ich das ändern kann?
    Geändert von martinmv (29.09.2017 um 09:28 Uhr) Grund: gelöst

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    das liegt zu 99% am Spaltentyp der Datenbank. Woher ist das Feld? Hast du das angelegt?
    Da ich in deiner dca kein 'sql' => wert sehe wird das Feld 'list_where' irgendwo in der database.sql angelegt sein mit varchar(255) was auch dafür verantwortlich ist, dass nur max. 255 Zeichen abgespeichert werden.

    Demnach, ändere die Definition dieser Spalte von varchar(255) in text oder blob und dann sollte es auch mit >255 Zeichen klappen.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

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

    Daumen hoch [gelöst] Datenbank Feldtyp ändern sql

    Vielen Dank für die Hilfe the_scrat, du hast mich auf die richtige Idee gebracht.

    Das Feld "list_where" ist ein Feld, das von Contao im Modul Auflistung (standardmäßig in Contao enthalten) angelegt wird.
    Dieses Feld nutzt jedoch noch nicht die Möglichkeit, den entsprechenden Datenbank-Feldtyp direkt in der Felddefinition im DCA ( 'sql' => wert) anzugeben, sondern noch mit der "database.sql"-Datei:
    Code:
    config/database.sql
    Code:
    CREATE TABLE `tl_module` (
      `list_table` varchar(64) NOT NULL default '',
      `list_fields` varchar(255) NOT NULL default '',
      `list_where` varchar(255) NOT NULL default '',
      `list_sort` varchar(255) NOT NULL default '',
      `list_search` varchar(255) NOT NULL default '',
      `list_info` varchar(255) NOT NULL default '',
      `list_info_where` varchar(255) NOT NULL default '',
      `list_layout` varchar(32) NOT NULL default '',
      `list_info_layout` varchar(32) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Ich habe mir jetzt ein Modul (z_databaseconfig) erstellt, das nur die Datei "database.sql" enthält mit dem folgenden Code:
    Code:
    CREATE TABLE `tl_module` (
      `list_where` varchar(300) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    So funktioniert es jetzt und es ist update-Sicher.

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
  •