Ergebnis 1 bis 3 von 3

Thema: Upgrade von 3.5 auf 4.4.1 und eigene Module

  1. #1
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Mannheim
    Beiträge
    139

    Standard Upgrade von 3.5 auf 4.4.1 und eigene Module

    Hallo zusammen,

    ich habe eine Website übernommen, die mit Contao 3.5 gemacht war. Ich habe das Upgrade auf 4.4.1 gemacht und konnte feststellen, dass eigene Module nicht mehr funktionieren.
    Z.B., es gibt ein Modul, dass das Contao-Modul news um einige Felder und Funktionalitäten erweitert. Das DCA sieht so aus:

    PHP-Code:
    <?php 

    //get current news' parent id
    $pid = \Database::getInstance()->prepare('SELECT pid FROM tl_news WHERE id =?')->execute(\Input::get('id'));

    switch (
    $pid->pid) {
        case 
    3:
            
    //additional fields for news archive id 3
            
    array_insert($GLOBALS['TL_DCA']['tl_news']['palettes']['__selector__'],4,array(0=>'addHeaderImage',1=>'addTeaserImage'));
            
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('author;','author,author_blog_entry;'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);
            
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('time;','time;{event_legend},event_date,event_title,event_organiser,event_organiser_url;'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);
            
    $GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('{image_legend},addImage;','{image_header_legend},addHeaderImage;{image_teaser_legend},addTeaserImage;'$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);
            
    $GLOBALS['TL_DCA']['tl_news']['subpalettes']['addHeaderImage'] = 'singleSRCheader,alt_header';
            
    $GLOBALS['TL_DCA']['tl_news']['subpalettes']['addTeaserImage'] = 'singleSRCteaser';
            break;
    }

    $GLOBALS['TL_DCA']['tl_news']['fields']['author_blog_entry'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['author_blog_entry'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['event_date'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['event_date'],
        
    'default'                 => time(),
        
    'exclude'                 => true,
        
    'filter'                  => true,
        
    'sorting'                 => true,
        
    'flag'                    => 8,
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'date''doNotCopy'=>true'datepicker'=>true'tl_class'=>'long wizard'),
        
    'sql'                     => "int(10) unsigned NOT NULL default '0'"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['event_title'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['event_title'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['event_organiser'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['event_organiser'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>''),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['event_organiser_url'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['event_organiser_url'],
        
    'inputType'               => 'text',
        
    'eval'                    => array('rgxp'=>'url''tl_class'=>'long clr'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['addHeaderImage'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['addHeaderImage'],
        
    'exclude'                 => true,
        
    'inputType'               => 'checkbox',
        
    'eval'                    => array('submitOnChange'=>true),
        
    'sql'                     => "char(1) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['singleSRCheader'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['singleSRCheader'],
        
    'exclude'                 => true,
        
    'inputType'               => 'fileTree',
        
    'eval'                    => array('filesOnly'=>true'extensions'=>Config::get('validImageTypes'), 'fieldType'=>'radio''mandatory'=>true),
        
    'save_callback' => array
        (
            array(
    'tl_news''storeFileMetaInformation')
        ),
        
    'sql'                     => "binary(16) NULL"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['alt_header'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['alt_header'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
        
    'sql'                     => "varchar(255) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['addTeaserImage'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['addTeaserImage'],
        
    'exclude'                 => true,
        
    'inputType'               => 'checkbox',
        
    'eval'                    => array('submitOnChange'=>true),
        
    'sql'                     => "char(1) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_news']['fields']['singleSRCteaser'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_news']['singleSRCteaser'],
        
    'exclude'                 => true,
        
    'inputType'               => 'fileTree',
        
    'eval'                    => array('filesOnly'=>true'extensions'=>Config::get('validImageTypes'), 'fieldType'=>'radio''mandatory'=>true),
        
    'save_callback' => array
        (
            array(
    'tl_news''storeFileMetaInformation')
        ),
        
    'sql'                     => "binary(16) NULL"
    );
    hier wird die Methode storeFileMetaInformation aufgerufen, die es in 4.4.1 nicht mehr gibt.
    Die Inhalte der neuen Felder werden nicht im FE und BE angezeigt, und man kann die Einträge nicht speichern. Es wird eine Fehlermeldung angezeigt

    Was kann man an dieser Stelle tun?
    Geändert von olek07 (18.07.2017 um 08:40 Uhr)

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Du könntest als erstes mal diesen Abschnitt komplett entfernen
    Code:
    'save_callback' => array
        (
            array('tl_news', 'storeFileMetaInformation')
        ),
    Eventell musst du nun noch den Cache löschen, weiß grad nicht ob DCA Dateien in Contao 4 noch im Cache landen.

    Die Methode gibt es nicht mehr in Contao 4.4, da die Metadaten Verarbeitung anders geregelt wird, auch was die übernahme betrifft. Wobei es da wohl Tickets zu gibt, keine Ahnung ob das auch die News betrifft.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Mannheim
    Beiträge
    139

    Standard

    Danke, das hat funktioniert.
    Geändert von olek07 (18.07.2017 um 12:08 Uhr)

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
  •