jDownloads Support Forum

Older Versions => jDownloads 3.2 (Support ended) => Bugs => Topic started by: woso on 12.09.2017 11:14:02

Title: Kein Dateidatum beim automatischen Upload
Post by: woso on 12.09.2017 11:14:02
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]
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: Arno on 12.09.2017 18:03:36
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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 12.09.2017 18:21:57
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]
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: Arno on 13.09.2017 12:02:18
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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 13.09.2017 17:04:15
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]
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: 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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 14.09.2017 14:21:41
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
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: Arno on 14.09.2017 20:12:21
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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 16.09.2017 13:46:25
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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 01.10.2017 17:08:57
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.
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: Arno on 02.10.2017 14:38:04
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.  >:(
Title: Re: Kein Dateidatum beim automatischen Upload
Post by: woso on 03.10.2017 11:23:40
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.