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?