Backend-Modul: Eigenes BE Template aufrufen
Hallo zusammen,
ich habe folgende Problemstellung:
In meiner Datenbank befinden sich in einer selbst erstellten Tabelle Einträge. Diese Einträge sind einzeln gesehen nicht relevant, da sie eher zusammengefasst werden müssen.
Daher möchte ich jetzt ein Modul erstellen und mir ein eigenes Template bauen, welches im Backend aufgerufen/angezeigt wird.
Wie kann ich entscheiden, was aus der Datenbank gelesen wird?
Wie stelle ich es ein, dass das Backend-Template aufgerufen wird?
Ich habe schon Module entwickelt, in denen die Dateien "normal" als Liste dargestellt sind und im FE dann angezeigt werden, doch ist es überhaupt möglich, dass so zu machen, wie ich es brauche?
Vielen Dank
Dako314
Eigenes Template für Backend-Modul
Hallo!
Ich stehe gerade vor der gleichen Aufgabe.
Ich benötige ein Backend-Modul welches die Daten alles Bestellungen im Isotope-Shop als XML-Datei exportiert.
Also ein Formular mit der Auswahl des Zeitraums und einen Absende-Button. Nach dem Anklicken soll die XML-Datei zum Download bereitgestellt werden.
Benötige ich dafür ein eigenes Template im Backup?
Wie muss ich davor gehen?
Danke Euch!
XML-Export mit DOMDocument
Hallo Frank!
Vielen Dank für deine Hilfe.
Ich möchte das erstmal testen, dazu habe ich mit deiner Videoanleitung das Modul mit der Adressen-Datenbank installiert.
Der Button für den Export funktioniert auch, ebenso der Aufruf der Klasse welche den Export realisieren soll.
Nun möchte ich zum Export die PHP-Klasse DOMDocument verwenden.
Wenn ich zum Test auf dem Server eine PHP-Datei mit einem DOMDocument-Textscript aufrufe funktioniert der Export einwandfrei.
Wenn ich nun das gleiche Testscript in die Adressen-Klasse einfüge wird zwar eine Datei zum Download angeboten, diese enthält allerdings den gesamten Quelltext des Contao-Backends inklusive des XML-Exports.
Woran kann das liegen?
Ich verwende in Testscript:
Code:
$name = strftime('backup_%m_%d_%Y.xml');
header('Content-Disposition: attachment;filename=' . $name);
header('Content-Type: text/xml');
Der Export-Aufruf:
Code:
print $xml->saveXML();
Vielen Dank!
Export funktioniert jetzt
Hallo Frank!
Danke für deine Antwort, ich habe das inzwischen hinbekommen.
Ich habe als Grundlage den Export eines Stylesheets genommen und angepasst.
PHP-Code:
$objFile = new \File('system/tmp/' . md5(uniqid(mt_rand(), true)), true);
$objFile->write('');
$objFile->append($export);
$objFile->close();
$objFile->sendToBrowser('export.xml');
$objFile->delete();
Es wird alles in eine temporäre Datei geschrieben und dann an den Browser gesendet.
Jetzt muss ich "nur" noch die Daten der Bestellungen auslesen und in die XML-Datei integrieren.
Ein andere Frage noch:
In der Original-Export-Funktion steht:
PHP-Code:
/**
* Export a style sheet
*
* @param \DataContainer $dc
*
* @throws \Exception
*/
public function exportStyleSheet(\DataContainer $dc)
{
Was bedeutet der Parameter \DataContainer $dc ?
Leider konnte ich dazu nirgendwo etwas finden.
Vielen Dank!
Rüdiger