Hallo zusammen, ich habe eine
Website auf der einige hundert Dateien zum Download angeboten werden. Bei den Dateien handelt es sich um gepackte Seekarten für einen Seekartenplotter. Für den Nutzer ist das Erstellungsdatum der Datei - in diesem Fall der Zipdatei von Interesse das damit die Aktualität festgestellt werden kann.
Die Größe der Zipdatei iist in der Datenbank vorhanden und kann angezeigt werden. Das Dateidatum / Erstellungsdatum der hochgeladen ZIPdatei aber nicht.
jDownloads Version 3.2.55
[gelöscht durch Administrator]
Hallo,
du musst in den jeweils aktivierten jD Layouts (vom Typ Download Details und/oder Files) die folgenden Platzhalter einfügen: {file_date_title} {file_date}.
Beachte aber bitte, dass es für die Uploadfunktion nicht möglich ist das Dateidatum korrekt zu übernehmen. Hier ist immer das Datum des Uploads drin und nicht das Erstelldatum der Datei auf deinem PC. Wird dies benötigt, musst du es manuell eintragen.
Erst mal Danke für die schnelle Antwort.
<p>{files_title_begin}</p>
<div class="jd_files_title">{files_title_text}</div>
<p>{files_title_end}</p>
<div class="{featured_class} jd_download_title">
<div class="jd_left">{file_pic} {file_title} - ({hits_title} {hits_value})</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_tags">{tags}</div>
<div class="jd_download_wrapper">
<div class="{featured_detail_class} jd_clear">
<div class="jd_words_wrapper">
<div class="jd_words_left" style="padding-left: 5px;"><span style="font-weight: 600;">{created_date_title}: </span>{created_date_value}</div>
<div class="jd_words_left" style="padding-left: 5px;">{file_date_title} {file_date}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{release_title}: </span>{release}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{license_title}: </span>{license_text}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{filesize_title}: </span>{filesize_value}</div>
<div class="jd_words_right">{url_download}</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_description_wrapper">
<div class="jd_image_right">{screenshot_begin}<a href="{screenshot}" rel="lightbox"> <img src="{thumbnail}" /></a>{screenshot_end}</div>
<div class="jd_clear_left"> </div>
<div class="jd_download_description">{description}</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_readmore">{link_to_details}</div>
</div>
</div>
Das ist mein Layout Stil. Mein Problem ist das in der DB das Feld "file_date" auf "0000-00-00 00:00:00" steht (siehe Anhang). Die einzigste Datei mit Datum darin habe ich manuell hochgeladen.
[gelöscht durch Administrator]
Hi,
hier ist die Anpassung für dein Files Layout:
<p>{files_title_begin}</p>
<div class="jd_files_title">{files_title_text}</div>
<p>{files_title_end}</p>
<div class="{featured_class} jd_download_title">
<div class="jd_left">{file_pic} {file_title} - ({hits_title} {hits_value})</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_tags">{tags}</div>
<div class="jd_download_wrapper">
<div class="{featured_detail_class} jd_clear">
<div class="jd_words_wrapper">
<div class="jd_words_left" style="padding-left: 5px;"><span style="font-weight: 600;">{created_date_title}: </span>{created_date_value}</div>
<div class="jd_words_left" style="padding-left: 5px;">{file_date_title} {file_date}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{release_title}: </span>{release}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{license_title}: </span>{license_text}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{filesize_title}: </span>{filesize_value}</div>
<div class="jd_words_left"><span style="font-weight: 600;">{file_date_title}: </span>{file_date}</div>
<div class="jd_words_right">{url_download}</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_description_wrapper">
<div class="jd_image_right">{screenshot_begin}<a href="{screenshot}" rel="lightbox"> <img src="{thumbnail}" /></a>{screenshot_end}</div>
<div class="jd_clear_left"> </div>
<div class="jd_download_description">{description}</div>
</div>
<div class="jd_clear"> </div>
<div class="jd_readmore">{link_to_details}</div>
</div>
</div>
Bitte verwende das nächste mal die Layout Import/Export Funktion, da nur dann alle Felder des Layouts beim Empfänger vorhanden sind.
Bei deinem Datum Problem kann ich dir aber auch nicht weiterhelfen. Ich habe dir ja schon das Problem oben erläutert. Wie erstellst du denn normalerweise die Downloads in jDownloads?
Vielleicht kannst du ja auch die Versionsnummern jeweils erhöhen, oder die "als Update markieren" Funktion nutzen.
Hallo Arno,
ich erstelle die Zipdateien auf einem lokalen Rechner und lade diese via rsync in das jeweilige Verzeichnis hoch.
Mich wunderte es nur das die Dateigröße vermerkt wird. Die Überwachung ist aktiviert s.u.
[gelöscht durch Administrator]
Wie ich schon zweimal schrieb, ich kann dir da auch nicht weiterhelfen. Das Datum musst du schon selbst eintragen, wenn du es brauchst. Du kannst aber doch auch das Datum der Erstellung nehmen, denn das ist ja der Zeitpunkt an dem die Datei hochgeladen wurde.
Quote from: Arno on 13.09.2017 20:02:48
Wie ich schon zweimal schrieb, ich kann dir da auch nicht weiterhelfen. Das Datum musst du schon selbst eintragen, wenn du es brauchst. Du kannst aber doch auch das Datum der Erstellung nehmen, denn das ist ja der Zeitpunkt an dem die Datei hochgeladen wurde.
Das Datum der Erstellung ist das erste Hochladen, die Updates der Dateien werden nicht vermerkt daher das "Dateidatum". Dann muss ich mal sehen ob die das mit einem Script und Cronjob lösen kann.
Erst einmal Danke
Quote...die Updates der Dateien werden nicht vermerkt...
Vielleicht ist die Art wie du die Dateien aktualisierst das Problem. Denn wenn du einen Download bearbeitest (z.B. um die Datei zu erneuern), wird selbstverständlich das Datum der Bearbeitung gespeichert. Außerdem hättest du dann die Möglichkeit solche Downloads als 'Updated' zu markieren, woduch sie beispielsweise auch in einem speziellen Modul angezeigt werden können. Willst du dir diese Arbeit aber sparen und alles über einen simplen Cronjob und die scan.php von jD lösen, hast du diese Möglichkeiten natürlich nicht. Vielleicht müsste man für solche Vorhaben die entsprechende Funktion auch erweitern und auch zusätzliche Erstellungs-Optionen erstellen. Geplant ist so etwas zur Zeit aber leider nicht.
Der ganze Erstellungsprozess der Karten und der Datein bis zum Upload auf den Server ist ein automatischer Prozess. Ein Updatelauf vom Download der Openstreetmap Worldfile bis zum hochladen der fertigen Karten geht schon über 4 Wochen. Da habe ich kein Interesse dann den Upload zu jD manuell zu machen.
Ich habe zur Lösung meines Problem der einfach halt halber folgende Zeilen in die scan.php eingefügt
//--- Insert: Update file_date -------------------------
$filedatum = date ("Y-m-d H:i:s", filectime($file_path));
$qu = "UPDATE #__jdownloads_files SET file_date = '$filedatum' WHERE file_id = '$file->file_id'";
$db->setQuery($qu);
$db->execute();
//--- Insert: End of Update file_date ------------------
Hier habe ich den Code eingefügt
// ****************************************************
// Check whether the assigned files from all published downloads exists
// - otherwise unpublish this downloads
// ****************************************************
...
foreach($files as $file){
// we checked only intern stored files
if ($file->url_download <> ''){
// get the category path only, when we have not an 'uncategorised' Download
if ($file->cat_id > 1){
$db->setQuery("SELECT cat_dir, cat_dir_parent FROM #__jdownloads_categories WHERE id = '$file->cat_id'");
$cat = $db->loadObject();
if ($cat->cat_dir_parent != ''){
$cat_dir_path = $cat->cat_dir_parent.'/'.$cat->cat_dir;
} else {
$cat_dir_path = $cat->cat_dir;
}
$file_path = $jd_root.$cat_dir_path.'/'.$file->url_download;
$cat_dir = $cat->cat_dir.'/'.$file->url_download;
//--- Insert: Update file_date -------------------------
$filedatum = date ("Y-m-d H:i:s", filectime($file_path));
$qu = "UPDATE #__jdownloads_files SET file_date = '$filedatum' WHERE file_id = '$file->file_id'";
$db->setQuery($qu);
$db->execute();
//--- Insert: End of Update file_date ------------------
} else {
// file in 'uncategorised' folder
$file_path = $uncat_dir.$file->url_download;
$cat_dir = $file_path;
}
if(!file_exists($file_path)){
$db->setQuery("UPDATE #__jdownloads_files SET published = 0 WHERE file_id = '$file->file_id'");
$db->execute();
$mis_files++;
$log_array[] = '<font color="red">'.JText::_('COM_JDOWNLOADS_AUTO_FILE_CHECK_DISABLED').' <b>'.$cat_dir.'</b></font><br />';
}
}
$bar->increase(); // calls the bar with every processed element
}
Ich wollte das für mich so einfach wie möglich machen - es geht.
Hi,
anscheinend haben wir da irgendwie aneinander vorbei geredet. Sorry. Hatte dich da wohl falsch verstanden. Wenn ich das jetzt richtig interpretiere, wird beim Erstellen von neuen Downloads über die scan.php (Auto Überwachung) also kein Datei Datum eingetragen. Also ein Bug. Das werde ich dann natürlich schnellstens beheben. ::) :-\
Sorry nochmal. Manchmal hat man echt ein Brett vorm Kopf. >:(
Quote from: Arno on 02.10.2017 14:38:04
...
wird beim Erstellen von neuen Downloads über die scan.php (Auto Überwachung) also kein Datei Datum eingetragen.
...(
Hallo,
genau das war mein Problem.