Servus Forum,
ich sitze seit geraumer Zeit an einem Problem, an dem ich mir die Zähne ausbeisse. Es scheint auch etwas spezieller zu sein, da ich bislang keinen Ansatz für das Problem gefunden habe.
Mein Ziel ist folgendes: ich möchte ein Backend-Modul mit einer individuell gestalteten Seite erstellen und von dort auf eine tabellen-basierte DCA-Seite verweisen. Da es so etwas schon gibt, dachte ich, es müsste doch einfach nachzubauen sein. Und zwar verwendet das Avisota-Modul genau solch ein Backend-Modul. Wenn man bei Avisota auf den Menüpunkt "Analytics" klickt, erscheint eine individuell gestaltete Seite mit Grafiken. Oben rechts hat man die Möglichkeit, die Daten zu exportieren. Dieser Link verweist auf eine Seite, die DCA Tabellen verwendent.
Mein Gedanke: genau das benötige ich. Also habe ich folgendes festgelegt:
in der config.php
PHP-Code:
'first_page' => array (
'callback' => 'firstPage',
'tables' => array('tl_first_page_edit')
)
Dann habe ich auch eine firstPage.php angelegt, ein Template erstellt und im Verzeichnis dca die Datei tl_first_page_edit.php erstellt.
Inhalt der tl_first_page_edit.php
PHP-Code:
$GLOBALS['TL_DCA']['tl_first_page_edit'] = array
(
'config' => array
(
'dataContainer' => 'Memory',
'closed' => true,
'onload_callback' => array
(
array('tl_first_page_edit', 'onload_callback'),
),
'onsubmit_callback' => array
(
array('tl_first_page_edit', 'onsubmit_callback'),
)
),
'palettes' => array
(
'default' => '{legend},name'
),
'fields' => array
(
'name' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_first_page_edit']['name'],
'inputType' => 'text',
'search' => true,
'eval' => array('mandatory'=>true, 'maxlength'=>255, 'tl_class'=>'w50')
)
)
);
class tl_first_page_edit extends Backend
{
public function __construct()
{
parent::__construct();
$this->import('BackendUser', 'User');
}
public function onload_callback(DataContainer $dc)
{
$dc->setData('date', 'Wert');
}
public function onsubmit_callback(DataContainer $dc)
{
$arrData = $dc->getDataArray();
}
}
Also komplett analog zu Avisota.
Die erste, individuelle Seite wird angezeigt. Das funktioniert wunderbar. Jedoch der Link auf die zweite Seite funktioniert nicht. Diese wird mit der URL contao/main.php?do=first_page&table=tl_first_page_edit aufgerufen (analog zu Avisota). Doch es wird wieder die erste Seite geladen. Keine Fehlermeldung, kein sonstiger Hiweis, was falsch gelaufen ist.
Hat jemand eine Idee? Fehlt irgendwo noch eine Einstellung? Oder liege ich mit meiner Idee komplett falsch.
Ich freue mich auf Eure Rückmeldungen.
Viele Grüße
Dirk
Lesezeichen