Hallo Community,
ich bin gerade dabei, mich in die Entwicklung von contao-Extensions reinzuarbeiten und stehe grad mächtig auf dem Schlauch. Ich schreibe ein kleines Modul zur Darstellung von Youtube-Videos. Das Modul soll über Themes -> Module verwaltbar sein und dann per Inhaltselement innerhalb eines Artikels im Frontend angezeigt werden.
Problem: Die Felder für die Konfiguration des Moduls werden im Backend nicht angezeigt. Ich bekomme nur Titel und Modultyp angezeigt, die auch funktionieren. Das Systemlog zeigt keine Fehler an.
Hier mal ein Bild: mod_youtube_problem.jpg
Ich habe bereits in unterschiedlichen Quellen nach Anregungen zur Behebung meines Problems gesucht, bin aber leider der Lösung keinen Schritt näher. Entwickler-Handbuch, andere Module und dieses wunderbare Tut. Erfolglos
Folgende Dateistruktur existiert:
config/
config.php
database.sql
dca/
tl_youtube.php
languages/
de/
en/
templates/
mod_youtube.html5
mod_youtube.xhtml
ModuleYoutube.php
Folgende Auflist zeigt den Quellcode der Dateien:
database.sql:
Code:
CREATE TABLE `tl_youtube` (
`id` int(10) unsigned NOT NULL auto_increment,
`tstamp` int(10) unsigned NOT NULL default '0',
`yt_id` varchar(20) NOT NULL default '',
`yt_autohide` tinyint(1) unsigned NOT NULL default '2',
`yt_autoplay` tinyint(1) unsigned NOT NULL default '0',
`yt_color` varchar(5) NOT NULL default 'red',
`yt_controls` tinyint(1) unsigned NOT NULL default '1',
`yt_loop` tinyint(1) unsigned NOT NULL default '0',
`yt_modestbranding` tinyint(1) unsigned NOT NULL default '0',
`yt_rel` tinyint(1) unsigned NOT NULL default '1',
`yt_showinfo` tinyint(1) unsigned NOT NULL default '1',
`yt_theme` varchar(5) NOT NULL default 'dark',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Anmerkung: Die Tabelle wird korrekt angelegt
config.php
PHP-Code:
$GLOBALS['FE_MOD']['miscellaneous']['youtube'] = 'ModuleYoutube';
dca/tl_youtube.php
PHP-Code:
$GLOBALS['TL_DCA']['tl_youtube'] = array
(
'config' => array
(
// dca config settings go here
'dataContainer' => 'Table',
'enableVersioning' => true
),
'list' => array
(
// all settings that are applied to records listing
// we can define here: sorting, panel layout (filter, search, limit fields), label format, global operations, operations on each record
),
'palettes' => array
(
// palettes settings
'__selector__' => array(),
'default' => '{yt_video_legend},yt_id'
//'default' => '{title_legend},name,headline,type;{yt_video_legend},yt_id;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'
),
'fields' => array
(
// fields that are visible in back end form
'yt_id' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_youtube']['yt_id'],
'inputType' => 'text',
'search' => true,
'eval' => array('mandatory'=>true, 'maxlength'=>15, 'rgxp' => 'alnum')
)
)
);
languages/de/tl_youtube.php
PHP-Code:
/**
* Fields
*/
$GLOBALS['TL_LANG']['tl_youtube']['yt_id'] = array('Video-ID', 'Die ID des Youtube-Videos');
/**
* Legends
*/
$GLOBALS['TL_LANG']['tl_youtube']['yt_video_legend'] = 'Video-Daten';
ModuleYoutube.php
PHP-Code:
class ModuleYoutube extends Module
{
/**
* Template
* @var string
*/
protected $strTemplate = 'mod_youtube';
/**
* Generate module
*/
protected function compile()
{
}
}
Nun meine Frage: was mache ich falsch? Der Fehler kann ja (eigentlich) nur in der DCA-Konfiguration liegen. Ich hoffe, ihr könnt mir helfen.
Vielen Dank im Voraus schon mal dafür.
Viele Grüße
MacGyver
Lesezeichen