[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Downloadmodul Medialist r3.0 - Verbesserung - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
franz007
Beiträge: 276
Registriert: 16. Aug 2006, 00:36

Downloadmodul Medialist r3.0 - Verbesserung

18. Dez 2006, 15:32

Da beim "Downloadmodul Medialist r3.0"-Moduls im Download-Bereich keine Kontaktadressen oder Benutzernamen für PM steht setz ichs einfach mal hier
rein.

@admin
wäre es möglich im download-Bereich Beim Ersteller auch den Nickname im Forum anzufüren, um ihm PMs zukommen können zu lassen.

Ich habe mich mal mit dem "Downloadmodul Medialist r3.0" beschäftigt. Die Ausgabe war bis dahin nicht wirklich vorteilhaft, mit vielen verschachtelten div's und span's. Ich hab das ganze in eine Liste gepackt und das Sybol davor mit CSS realisiert. Nun sieht es auch ohne CSS oder mit einem Textbrowser/Handy annehmbar aus.

Code: Alles auswählen

Dateien auswählen, die zum Download angeboten werden:<br>
REX_MEDIALIST_BUTTON[1]

Code: Alles auswählen

<?
// Modul Download-Medialist r3.0 - by CHRONO.net Media Works Hildesheim

if (!function_exists('Dateigroesse')) {
function Dateigroesse($URL)
{
	$Groesse = filesize($URL);
	if($Groesse<1000)
	{
		return number_format($Groesse, 0, ",", ".")." Bytes";
	}
	elseif($Groesse<1000000)
	{
		return number_format($Groesse/1024, 0, ",", ".")." kB";
	}
	else
	{
		return number_format($Groesse/1048576, 0, ",", ".")." MB";
	}
}
}
if (!function_exists('parse_icon')) {
function parse_icon($ext) {
	switch (strtolower($ext)) {
		case 'doc': return 'doc_small.gif';
		case 'rtf': return 'doc_small.gif';
		case 'txt': return 'txt_small.gif';
		case 'xls': return 'xls_small.gif';
		case 'csv': return 'xls_small.gif';
		case 'ppt': return 'ppt_small.gif';
		case 'html': return 'html_small.gif';
		case 'htm': return 'html_small.gif';
		case 'php': return 'script_small.gif';
		case 'php3': return 'script_small.gif';
		case 'cgi': return 'script_small.gif';
		case 'pdf': return 'pdf_small.gif';
		case 'rar': return 'rar_small.gif';
		case 'zip': return 'zip_small.gif';
		case 'gz': return 'gz_small.gif';
		case 'jpg': return 'jpg_small.gif';
		case 'gif': return 'gif_small.gif';
		case 'png': return 'png_small.gif';
		case 'bmp': return 'image_small.gif';
		case 'tif': return 'image_small.gif';
		case 'exe': return 'binary_small.gif';
		case 'bin': return 'binary_small.gif';
		case 'avi': return 'mov_small.gif';
		case 'mpg': return 'mov_small.gif';
		case 'moc': return 'mov_small.gif';
		case 'asf': return 'mov_small.gif';
		case 'mp3': return 'sound_small.gif';
		case 'wav': return 'sound_small.gif';
		case 'org': return 'sound_small.gif';
	default:
		return 'def_small.gif';
	}
        } 
}
//ab hier ist es neu oder bzw geändert
$n = "\n";
$t = "\t";
$arr = explode(",","REX_MEDIALIST[1]");

echo $n.'<ul class="downloadmodul">'.$n;

foreach ($arr as $value) {
	$ext = substr(strrchr($value, '.'), 1);
			$parsed_icon = $REX[HTDOCS_PATH].'pics/ext/'.parse_icon($ext);
		$ooPic = OOMedia::getMediaByName ($value);
		$fileDescription = $ooPic->getDescription();

	echo $t.'<li style="list-style-image:url('.$parsed_icon.')">';
	echo '<a href='.$REX[HTDOCS_PATH]."files/".$value.' target="_blank">';
	echo $value.' - '.Dateigroesse($REX[HTDOCS_PATH]."files/".$value);
	echo '</a>';
	if ($fileDescription != "") {
		echo $n.$t.$t.'<ul>'.$n;
		echo $t.$t.$t.'<li class="downloadmoduldescription">'.$fileDescription.'</li>'.$n;
		echo $t.$t.'</ul>'.$n;
	}
	echo $t.'</li>'.$n;
}
echo '</ul>'.$n;
?>

Code: Alles auswählen

/* Downloadmodul Medialist r3.0_0.1 */
.downloadmodul{
	font-size: 0.8em;
	margin: 20px;
	border: solid 1px #000000;
	background-color: #e5e5e5;
		
}

.downloadmoduldescription{
	list-style-type: none;
}

Benutzeravatar
kate
Beiträge: 67
Registriert: 12. Dez 2004, 02:00

3. Okt 2008, 21:10

Das Downloadmodul in dieser Form erzeugt einen Fehler wenn im Backend keine Datei ausgewählt ist.

Man kann natürlich das Modul im Artikel löschen sobald es keine Downloads gibt. Das ist für manche Redakteure aber ein unlogisches und nicht evidentes Vorgehen, wenn der Artikel in seiner Struktur geändert werden muss, bloss weil das Modul diesen "Bug" hat.

Es sind genau solche Dinge, die die Akzeptanz von einem CMS beim Endanwender stark beeinflussen und weniger die OO Programmierung des CMS. ;-)

Meine Lösung, bei der mir franz007 geholfen hat, sieht wie folgt aus und beseitigt das Manko:

Modul-Eingabe

Code: Alles auswählen

Dateien auswählen, die zum Download angeboten werden:<br>
REX_MEDIALIST_BUTTON[1]
Modul-Ausgabe

Code: Alles auswählen

<? 
// Modul Download-Medialist r3.0 - by CHRONO.net Media Works Hildesheim 

if (!function_exists('Dateigroesse')) { 
function Dateigroesse($URL) 
{ 
$Groesse = filesize($URL); 
if($Groesse<1000) 
{ 
return number_format($Groesse, 0, ",", ".")." Bytes"; 
} 
elseif($Groesse<1000000) 
{ 
return number_format($Groesse/1024, 0, ",", ".")." kB"; 
} 
else 
{ 
return number_format($Groesse/1048576, 0, ",", ".")." MB"; 
} 
} 
} 
if (!function_exists('parse_icon')) { 
function parse_icon($ext) { 
switch (strtolower($ext)) { 
case 'doc': return 'doc_small.gif'; 
case 'rtf': return 'doc_small.gif'; 
case 'txt': return 'txt_small.gif'; 
case 'xls': return 'xls_small.gif'; 
case 'csv': return 'xls_small.gif'; 
case 'ppt': return 'ppt_small.gif'; 
case 'html': return 'html_small.gif'; 
case 'htm': return 'html_small.gif'; 
case 'php': return 'script_small.gif'; 
case 'php3': return 'script_small.gif'; 
case 'cgi': return 'script_small.gif'; 
case 'pdf': return 'pdf_small.gif'; 
case 'rar': return 'rar_small.gif'; 
case 'zip': return 'zip_small.gif'; 
case 'gz': return 'gz_small.gif'; 
case 'jpg': return 'jpg_small.gif'; 
case 'gif': return 'gif_small.gif'; 
case 'png': return 'png_small.gif'; 
case 'bmp': return 'image_small.gif'; 
case 'tif': return 'image_small.gif'; 
case 'exe': return 'binary_small.gif'; 
case 'bin': return 'binary_small.gif'; 
case 'avi': return 'mov_small.gif'; 
case 'mpg': return 'mov_small.gif'; 
case 'moc': return 'mov_small.gif'; 
case 'asf': return 'mov_small.gif'; 
case 'mp3': return 'sound_small.gif'; 
case 'wav': return 'sound_small.gif'; 
case 'org': return 'sound_small.gif'; 
default: 
return 'def_small.gif'; 
} 
} 
} 

$arr = explode(",","REX_MEDIALIST[1]"); 

foreach ($arr as $value) $sum= $sum + $value ;

#abfrage ob überhaupt ein element vorhanden ist 
if ($sum > 0 ){ 
   foreach ($arr as $value) { 
      $ext = substr(strrchr($value, '.'), 1); 
      $parsed_icon = $REX[HTDOCS_PATH].'pics/ext/'.parse_icon($ext); 
      $ooPic = OOMedia::getMediaByName ($value); 
      $fileDescription = $ooPic->getDescription(); 
      ?> 
      <div class="list_content"><a href=<? echo $REX[HTDOCS_PATH]."files/".$value; ?> target="_blank"><img src="<? echo $parsed_icon ?>" alt="Download"> </a> <? echo $value ?> - <?php echo Dateigroesse ($REX[HTDOCS_PATH]."files/".$value); ?> </div> 
      <? 
      If ($fileDescription != "") { 
         ?> <div class="list_content3"><? echo $fileDescription; ?></div> <? 
      } 
   } 
} ?> 
<!-- Teilung zwischen den Downloads --> 
<br /><br />

Zurück zu „Allgemeines [R3]“