Zitat:
Zitat von tobias Nunja, trotz der konstruktiven weiteren Vorschläge habe ich eine für mich akzeptable Lösung gefunden, die aber nicht wirklich die Lösung des oben genannten Problems ist. |
Anbei ein Auszug aus einer meiner BE-Module:
PHP-Code:
/**
* Generates the module content
*
* @return void
*/
function moduleContent() {
switch((string)$this->MOD_SETTINGS["function"]) {
case 1:
if($this->PidToImportProducts) {
$content.=$this->DB_import_form();
$this->content.=$this->DB_message();
$this->content.=$this->doc->section("Import einer CSV-Datei:",$content,0,1);
}else{
$this->content .= '<font color="red"><b>PidToImportProducts ist nicht gesetzt!</b></font>';
}
break;
}
}
function DB_message() {
$content="<strong>Wartung der Datenbank</strong><br />";
return $content;
}
function DB_import_form() {
global $TYPO3_CONF_VARS;
if($_POST['cmd']=='import_db') {
$filename = $_FILES['import_file']['tmp_name'];
$overwrite = FALSE;
if($_POST['delete_old']) {
$overwrite = TRUE;
}
// called when form is send, execute import
$content .= $this->function_import_DB($filename, $overwrite);
}else{
// print Form for file selection
$content = 'Hier können Sie eine Produktdatenbank in die entsprechende '.
'Datenbank des TYPO3-Systems einlesen.'.
'<p>'.
'<b>ACHTUNG:</b> Die CSV-Datei muss Semikolon als Trennzeichen benutzen und darf in der ersten Zeile <b>KEINE</b> Spaltenüberschriften haben!<br/><p>';
$content .= 'Wählen Sie eine Datenbank aus:<p>
<form action="" enctype="multipart/form-data" method="POST">
<input type="file" name="import_file" value="" size="50" /><br />
<input type="hidden" name="cmd" value="import_db" />
<input type="checkbox" name="delete_old">Bestehende Daten vorher löschen?<p>
<input type="submit" name="submit" value="Importieren" /></form><p>
';
$content.= 'ID der Seite in der die Einträge gespeichert werden: '.$this->PidToImportProducts;
}
return $content;
}