Modify

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#1926 closed Neues Feature (wontfix)

Datei-Name in /admin/module_export.php variabel machen

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone:
Component: Admin Version: 2.0.5.1
Keywords: Cc:
Blocked By: Blocking:

Description

In /admin/module_export.php wird der Dateiname für Exporte hard-definiert nach dem was im Modul bei configuration[MODULE_BLABLA_FILE] bestimmt wird.
Zeile 109 in genannter Datei

              if (@strpos($key,'FILE') !== false) $file = $value;

Ich schlage vor den Dateinamen variabel zu machen. Entweder indem man dem bestimmten Dateinamen das aktuelle Datum mit Uhrzeit hinzufügt (DATEINAME_2020-12-06_16-00.csv)
oder indem man bestimmte Variablen wie z.B. {$date}, {$date_time} zulässt und sie im Skript auflöst.
So kann man leichter generierte Exporte identifizieren, bzw. verhindert, daß Dateien überschrieben werden weil ihre Namen immer gleich lauten.

Gruß,
noRiddle

Attachments (0)

Change History (4)

comment:1 by Torsten Riemer, 5 years ago

Für die allermeisten Export-Module ist es doch sinnvoll, dass die generierten Export immer über die selbe URL abgerufen werden können. Für die Export, die du individualisieren willst kannst du das doch über das Export-Modul selber steuern!?

comment:2 by noRiddle, 5 years ago

Ja, kann man über das Modul selbst steuern, ist aber aufwändiger bei häufig verwendeten Exporten jedesmal den Dateinamen zu ändern.
Wenn man jedoch meinen zweiten Vorschlag implementieren würde, also Benutzung von Variablen erlauben, wäre das Ganze flexibler. Wer die Vars dann nicht benutzt kann weiterhin immer denselben Dateinamen verwenden.

Ich hielt den Vorschlag für würdig in ein Ticket einzufließen weil er die Export-Funktion flexibler machen würde und weil er sehr leicht und schnell umzusetzen wäre.
In der /admin/module_export.php z.B. anstatt

if (@strpos($key,'FILE') !== false) $file = $value;

das

if (@strpos($key,'FILE') !== false) $file = str_replace(array('{$date}', '{$date_time}'), array(date('d-m-Y'), date('d-m-Y_H-i-s')), $value);

und fertig.

In den Export-Modulen muß man eigtl. nichts an den Sprach-Konstanten zur Erklärung ändern, die sind ja ohnehin fast alle veraltet.

Gruß,
noRiddle

comment:3 by Gerhard Waldemair, 5 years ago

Resolution: wontfix
Status: newclosed

Das kannst du doch im Exportmodul selber genau so lösen !

Diese 1 Zeile Code ist doch wirklich nicht aufwendig...

function process($file){

  $file = str_replace(array('{$date}', '{$date_time}'), array(date('d-m-Y'), date('d-m-Y_H-i-s')), $file);

....

comment:4 by noRiddle, 5 years ago

Äh, hab' ich nicht dran gedacht das so direkt im Modul zu machen. Fuktioniert erstaunlicherweise sogar ohne $file als Referenz zu übergeben, was mich sehr wundert...

Danke.

Gruß,
noRiddle

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.