[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Slideshow - 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
karlnappmitdenasskap
Beiträge: 116
Registriert: 18. Aug 2012, 20:30
Kontaktdaten: Website

Slideshow

28. Dez 2012, 16:56

Hallo,

ich hab mal ein Modul zusammengestellt, das Grafiken aus einem beliebigen Verzeichnis auf dem Server ausließt und zufällig ausgibt. Die Anzeigedauer ist variabel; es ist auch eine (allgemeine) Linkhinterlegung möglich.

Mit einem weiteren Modul kann man (optional passwortgeschützt) Grafiken in ein vordefiniertes Verzeichnis für eine Slideshow hochladen. Die Größe der Grafiken kann dabei beschränkt werden.

Eingabe Slideshow:

Code: Alles auswählen

<?php
/**
 * Slideshow-Modul - Version 0.1
 * Download (http://greatif.cwsurf.de/webentwicklung/redaxo.html)
 * Stand: 28.12.2012
 */
?>

<b>Serververzeichnis mit den Grafiken:</b><br />
<i>( z.B. <b>files/slideshow/</b> )</i><br />
<input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" /><br />
<b>Ort, an den die Slideshow verlinken soll:</b><br />
<input type="text" size="50" name="VALUE[2]" value="REX_VALUE[2]" /><br />
<b>Ausgabe der Verlinkung:</b><br />
<i>( <b>_parent</b> = im gleichen Fenster, <b>_blank</b> = neues Fenster )</i><br />
<input type="text" size="50" name="VALUE[3]" value="REX_VALUE[3]" /><br />
<b>Bezeichnung der Verlinkung:</b><br />
<input type="text" size="50" name="VALUE[4]" value="REX_VALUE[4]" /><br />
<b>Zeitintervall für Grafikanzeige:</b><br />
<i>( Richtwerte: 1000 = kurz, 10000 = mittel, 50000 = lang)</i><br />
<input type="text" size="50" name="VALUE[5]" value="REX_VALUE[5]" /><br />
Ausgabe Slideshow:

Code: Alles auswählen

<?php
/**
 * Slideshow-Modul - Version 0.1
 * Download (http://greatif.cwsurf.de/webentwicklung/redaxo.html)
 * Stand: 28.12.2012
 */
?>

<?php

$verzeichnis = "REX_VALUE[1]";
$peed = REX_VALUE[5];

echo "
<div style='text-align: center;'><a href='REX_VALUE[2]' target='REX_VALUE[3]' title='REX_VALUE[4]'><img id='dummy' src='#' style='border: solid 0px #808080;'></a></div>

<script type='text/javascript'>
var bild = new Array();
var i = 0;
";

$ordner = openDir($verzeichnis);
$by = 0;
while ($file = readDir($ordner)) {
 if($file != "." && $file != "..") {
  echo "bild[$by]='$verzeichnis$file';\n";
  $by++;
 }
}
closeDir($ordner);

echo "
function anzeigen() {
 if (i < bild.length) {
  i = (bild.length-1)*(Math.random());
  i = Math.round(i);
  document.getElementById('dummy').src=bild[i];
  i++;
 }
 else {
  i = 0;
 }
  setTimeout('anzeigen()', $peed);
}
anzeigen();
</script>
";
?>
Eingabe Slideshow-Upload:

Code: Alles auswählen

<?php
/**
 * Slideshow-Upload-Modul - Version 0.1
 * Download (http://greatif.cwsurf.de/webentwicklung/redaxo.html)
 * Stand: 28.12.2012
 */
?>

<b>Upload-Verzeichnis auf dem Server <i>( z.B. files/slideshow )</i> :</b><br />
<input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" /><br />
<b>Maximalgröße des Bildes <i>(in Bytes)</i> :</b><br />
<input type="text" size="50" name="VALUE[2]" value="REX_VALUE[2]" /><br />
<b>Maximale Zeichen des Dateinamens:</b><br />
<input type="text" size="50" name="VALUE[3]" value="REX_VALUE[3]" /><br />
<b>Bereits vorhandene Dateien ersetzen <i>( ja / nein )</i> :</b><br />
<input type="text" size="50" name="VALUE[4]" value="REX_VALUE[4]" /><br />
<b>Passwortschutz <i>( ja / nein )</i> :</b><br />
<input type="text" size="50" name="VALUE[5]" value="REX_VALUE[5]" /><br />
<b>Passwort <i>( wenn Passwortschutz = ja )</i> :</b><br />
<input type="text" size="50" name="VALUE[6]" value="REX_VALUE[6]" /><br />
Ausgabe Slideshow-Upload:

Code: Alles auswählen

<?php
/**
 * Slideshow-Upload-Modul - Version 0.1
 * Download (http://greatif.cwsurf.de/webentwicklung/redaxo.html)
 * Stand: 28.12.2012
 */
?>

<?php

// Verzeichnis in das die Bilder hochgeladen
// werden sollen (ausgehend von dieser Datei).
// Das Verzeichnis benötigt Schreibrechte!
$verzeichnis = "REX_VALUE[1]";

// Die Größe des Bildes das maximal
// hochgeladen werden darf (in Bytes).
$maxgroesse = REX_VALUE[2]; // 1024 Bytes = 1 KB (1048576 Bytes = 1 MB)

$mimetypen = array(
 "png" => "image/png",
 "jpg" => "image/jpeg",
 "jpg" => "image/pjpeg",
 "jpeg" => "image/jpeg",
 "gif" => "image/gif",
);

// Maximale Länge des Dateinamens
$maxlaenge = REX_VALUE[3];

// Eine bereits vorhandene Datei mit gleichen Namen ersetzen (ja/nein)
// Bei "nein" wird die Datei mit dem Namen und einer Zufallszahl, umbenannt.
$ersetzen = "REX_VALUE[4]";

// Passwortschutz (ja/nein)
$passwortschutz = "REX_VALUE[5]";

// Passwort
$passwort = "REX_VALUE[6]";

echo '<form action="' . $_SERVER["SCRIPT_NAME"] . '" method="post" enctype="multipart/form-data">
 Bild auswählen: <input type="file" name="datei" size="25"> <br>
 Dateiformat: ' . implode(", ", array_unique(array_keys($mimetypen))) . 
' - Dateigröße max.: ' . (number_format(($maxgroesse / 1024), 2, ",", ".")) . ' KB <br><br>' . 
($passwortschutz == "ja" ? 'Passwort: <input type="password" name="passwort">' : '') . 
'<input type="hidden" name="MAX_FILE_SIZE" value="' . $maxgroesse . '">
 <input type="submit" name="submit" value="Bild hochladen">';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
 if ($passwortschutz == "ja") {
  if ($_POST["passwort"] != $passwort) {
   die('<p>Sie haben keine Berechtigung!</p>');
  }
 }
 if (is_writeable($verzeichnis)) {
  if (isset($_FILES["datei"]["name"]) && $_FILES["datei"]["name"] != "") {
   if ($_FILES["datei"]["error"] === UPLOAD_ERR_OK) {
    if (is_uploaded_file($_FILES["datei"]["tmp_name"])) {
     if ($_FILES["datei"]["size"] <= $maxgroesse) {
      $array = explode(".", basename($_FILES["datei"]["name"]));
      $dateiendung = strtolower(end($array));
      if (in_array($dateiendung, array_keys($mimetypen))) {
       if (in_array($_FILES["datei"]["type"], $mimetypen)) {
        $dateiname = preg_replace("/[^a-z0-9_-]/", "", strtolower(strtr($array[0], "äöüß", "aous")));
        $neuername = substr($dateiname, 0, $maxlaenge) . "." . $dateiendung;
        if (file_exists($verzeichnis . $neuername)) {
         if ($ersetzen == "ja") {
          unlink($verzeichnis . $neuername);
         }
         else {
          $neuername = substr($dateiname, 0, ($maxlaenge - 5)) . "_" . mt_rand(1, 9999) . "." . $dateiendung;
         }
        }
        if (move_uploaded_file($_FILES["datei"]["tmp_name"], $verzeichnis . $neuername)) {
         echo '<p>Die Datei wurde erfolgreich hochgeladen<br> <img src="' . $verzeichnis . $neuername . '">';
         echo ' <br>' . $neuername . ' - ' . number_format(($_FILES["datei"]["size"] / 1024), 2, ",", ".") . ' KB</p>';
        }
        else {
         echo '<p>Beim hochladen der Datei &bdquo;' . $_FILES["datei"]["name"] . '&rdquo; ist leider ein Fehler aufgetreten!</p>';
        }
       }
       else {
        echo '<p>Ungültiger Mimetyp: "' . $_FILES["datei"]["type"] . '"!</p>';
       }
      }
      else {
       echo '<p>Das Dateiformat: "' . $dateiendung . '" ist nicht erlaubt!</p>';
      }
     }
     else {
      echo '<p>Die Datei &bdquo;' . $_FILES["datei"]["name"] . '&rdquo; ist mit ' . number_format(($_FILES["datei"]["size"] / 1024), 2, ",", ".") . ' KB leider zu groß!</p>';
     }
    }
   }
  }
  else {
   echo '<p>Bitte wählen Sie eine Datei aus!</p>';
  }
 }
 else {
  echo '<p>Das Verzeichnis: "' . $verzeichnis . '" besitzt keine Schreibrechte!</p>';
 }
}
echo '</form>';
?>
Was haltet Ihr davon?

Vllt. kann ja jemand was damit anfangen...

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Slideshow

28. Dez 2012, 17:23

Module kann man im DL Bereich veröffentlichen.. und dann gern im Forum vorstellen, am besten mit link auf eine Demo. Modulcode in dieser Form ins Forum zu pasten ist nicht Sinn der Sache.

ps.: und wenn Code posten, dann mit code=php bitte..
vg, Jan

Zurück zu „Allgemeines [R4]“