pragmaMx Support Forum

pragmaMx => integrierte Module => Thema gestartet von: Nancy am 24 September 2005, 16:10:58

Titel: Download Modul, MB anstatt KB
Beitrag von: Nancy am 24 September 2005, 16:10:58
Hallo

bei dem "Download Modul" kann doch die jeweilige Dateigrösse angegeben werden. Ich hätte die Angabe gerne in MB. Wie kann ich denn das abändern?? Einfach nur KB in MB umändern??

Bis bald
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 24 September 2005, 16:48:34
Hi,

Du sprichst von der Anzeige bei den einzelnen DLs aus "User"-Sicht?
Die Anzeige wird in Abhängigkeit der Dateigröße in Byte, Kilobyte oder Megabyte angezeigt.
Der Code dazu befindet sich in modules/Downloads/index.php:

function CoolSize($size) {
   $mb = 1024*1024;
   if ( $size > $mb ) {
       $mysize = sprintf ("%01.2f",$size/$mb) . " MB";
   } elseif ( $size >= 1024 ) {
       $mysize = sprintf ("%01.2f",$size/1024) . " Kb";
   } else {
       $mysize = $size . " bytes";
   }
   return $mysize;
}


Du hast 2 Möglichkeiten, die Dateigröße nur in MB anzeigen zu lassen:

1. Du kommentierst in der obigen function alles, bis auf die Zeile, wo MB am Ende steht, aus:
function CoolSize($size) {
   # $mb = 1024*1024;
   # if ( $size > $mb ) {
       $mysize = sprintf ("%01.2f",$size/$mb) . " MB";
   # } elseif ( $size >= 1024 ) {
   #     $mysize = sprintf ("%01.2f",$size/1024) . " Kb";
   # } else {
   #     $mysize = $size . " bytes";
   # }
   return $mysize;
}


2. Du erstetzt an allen Stellen in modules/Downloads/index.php das Coolsize($filesize) durch den Code aus der obigen function:
Alt:
CoolSize($filesize)."

Neu:
$mysize = sprintf ("%01.2f",$filesize/$mb) . " MB


Gruss,
JoergK
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 24 September 2005, 20:32:06
Hallo JoergK,

erstmal vielen Dank für Dein Feedback.

Ich hatte mich zuerst für die erste Variante entschieden und die angegebenen Zeilen ausdokumentiert. Allerdings wird dann 0 MB angezeigt.
Leider brachte auch die zweite Variante kein Erfolg. Es wird auch da "0 MB" angezeigt.

Liebe Grüße
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 24 September 2005, 23:32:43
Hi Nancy,

Das kann natürlich passieren, wenn die Dateigrösse relativ klein ist (kleiner 10486 Byte / 10,24 Kilobyte), denn der ausgegebene Wert wird ja auf "nur" zwei Stellen nach dem Komma formatiert:

Zitatsprintf ("%01.2f",$size/$mb)

Ist das Ergebnis z. B. 0.00, dann wird nur 0 ausgegeben. Kann im PHP-Manual (http://de3.php.net/manual/de/function.sprintf.php) nachgelesen werden.  ;)

Von daher biste eigentlich gut beraten, wennste die Grössenangabe so belässt, wie's im Script vorgesehen ist/war und die Angabe in Abhängigkeit der Dateigrösse in Byte, Kilobyte oder Megabyte ausgegeben wird - oder Du änderste die Anzahl der Nachkommastellen auf 3, 4 oder mehr.

Allerdings ist fraglich, ob's Sinn macht, ne Dateigrösse von z. B. 8765 Byte / 8.55 Kb als 0.0083 MB auszugeben. :-\


Gruss,
JoergK
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 25 September 2005, 15:12:35
Hallo JoergK,

na so klein war die Dateigrösse auch nicht, immerhin 700 MB.  ::) Ich konnte eintragen was ich wollte immer stand da 0 MB.
Hast Du noch eine Idee?

LG
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 25 September 2005, 15:29:21
Oops, my fault  :wall:

Wenn Du die Variante mit Änderung in der function nimmst, entkommentier mal bitte die erste Zeile wieder, dass es so aussieht:

function CoolSize($size) {
   $mb = 1024*1024;
   # if ( $size > $mb ) {
       $mysize = sprintf ("%01.2f",$size/$mb) . " MB";
   # } elseif ( $size >= 1024 ) {
   #     $mysize = sprintf ("%01.2f",$size/1024) . " Kb";
   # } else {
   #     $mysize = $size . " bytes";
   # }
   return $mysize;
}


Falls Du die andere Variante bevorzugst, bitte folgendes ändern:
Alte Änderung:
$mysize = sprintf ("%01.2f",$filesize/$mb) . " MB

Neue Änderung:
$mysize = sprintf ("%01.2f",$filesize/(1024*1024)) . " MB


Gruss,
JoergK - der sich fürchterlich schämt  :redhead: :redhead: :redhead:
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 25 September 2005, 16:38:56
Sorry JoergK

aber weder die erste noch die zweite Variante funktioniet bei mir.

Schade

LG
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 25 September 2005, 16:55:49
Hmmm... :gruebel:

Hab's eben mal (allerdings in der 0.1er) angetestet, funzt einwandfrei.

Wir reden aber schon von pragmaMx 0.1.6 ?!?
Gib mir mal per PN Deine Addy, dann schick ich Dir die angepasste index.php zu.


Gruss,
JoergK
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 26 September 2005, 08:44:26
Danke für Deine Datei. Sie war genauso wie ich sie auch hatte.
Ich habe bei einer Datei mal aus Spass eine Grösse von 123456789 eingegeben. Ausgegeben wird allerdings 117.74.

... verstehe ich nicht.

LG
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 26 September 2005, 09:00:55
Hi

Ich habe gerade bemerkt das ich ja die Angaben im Admin in byte angeben muss.
Dann klappt es ja doch. Sorry *schäm*

Und wenn ich die Angaben dort in MB machen möchte. Geht das auch?? Das wäre doch einfacher.

;)
Nancy
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 26 September 2005, 12:51:23
ZitatUnd wenn ich die Angaben dort in MB machen möchte. Geht das auch?? Das wäre doch einfacher.

Machbar ist (fast) alles  ;)

Du brauchst "nur" das
CoolSize($filesize)."

an allen Stellen im Script durch das
$filesize . " MB

ersetzen.
Und dann noch den Text in den Sprachdateien modules/Downloads/language/lang-*.php
define("_INBYTES","in Bytes");

durch den
define("_INBYTES","in MB");

ersetzen.


Gruss,
JoergK
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 26 September 2005, 13:01:38
Soweit, so gut.

Nun werden aber keine Zahlen nach dem Komma angezeigt.
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: JoergK am 26 September 2005, 13:27:04
ZitatNun werden aber keine Zahlen nach dem Komma angezeigt.

So'n Pech aber auch ...  ;D

Spass beiseite, das hatte ich nicht in der DB kontrolliert. Dort ist das Feld filesize als Integer formatiert, somit funzen keine Dezimalzahlen mit Nachkommastellen.

Du könntest in der DB den Feldtyp des Feldes filesize in der Tabelle (prefix)_downloads_downloads von int(11) auf decimal(9,2)ändern, damit kannste dann 2 Nachkommastellen angeben.


Gruss,
JoergK
Titel: Re: Download Modul, MB anstatt KB
Beitrag von: Nancy am 26 September 2005, 13:53:22
Hi JoergK,

ein ganz dickes Lob an Dich.  :D Jetzt funktioniert es perfekt.

GLG
Nancy