Frage zum Modul "Bildwechsel"

Gesperrt
yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Frage zum Modul "Bildwechsel"

Beitrag von yui » Di 29. Sep 2009, 09:38

Tach zusammen,

in meiner ersten Contenidoinstallation von 2004 habe ich ein Modul verwendet, welches ich so hier nicht mehr finde. Sinn war es, beim Laden der Seite ein Bild aus einem Ordner nach Zufall anzuzeigen.

Das Modul sieht so aus:

Code: Alles auswählen

<?php 
$folder=opendir("upload/Kraeuterbilder/"); 
while ($file = readdir($folder)) 
    $names[count($names)] = $file; 
closedir($folder);
sort($names);
$tempvar=0;
for ($i=0;$names[$i];$i++){
    $ext=strtolower(substr($names[$i],-4));
    if ($ext==".jpg"||$ext==".gif"||$ext==".jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;}
}
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($names1, 2);
$xmImg="upload/Kraeuterbilder/".$names1[$rand_keys[0]]; 
$dimensions = GetImageSize($xmImg); 
if (isset($pic)){header ("Location: $xmImg");}
else {echo "<img src=\"$xmImg\" $dimensions[3]>";}
?>
Auf der Webseite wird dann dieser ausgegeben:

Code: Alles auswählen

<img src="upload/Kraeuterbilder/" >
also ohne das Bild. Das kuriose ist, auf der besagten ursprünglichen Installation, jetzt natürlich auf 4.8.12 aktualisiert, läuft das Modul richtig.

Hat jemand einen Tipp, woran das liegen kann?

Vielen Dank und schöne Grüße
yui
Ich weiß, dass ich nichts weiß. Sokrates

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Frage zum Modul "Bildwechsel"

Beitrag von Oldperl » Di 29. Sep 2009, 10:47

Hallo yui,

also so wie du das Modul hier gepostet hast, dürfte es garnicht laufen, da im benötigten Array wohl nichts drin ist.

Code: Alles auswählen

for ($i=0;$names[$i];$i++){
$i soll hier von 0 (null) bis wohin zählen? Da sollte wohl eher ein count(Array) stehen.

Wenn es auf einer Installation läuft und auf der anderen nicht, kannst du ja mal einfach ein Diff zwischen den beiden Modulen machen.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Liquidstone
Beiträge: 36
Registriert: Di 12. Aug 2008, 10:27
Kontaktdaten:

Re: Frage zum Modul "Bildwechsel"

Beitrag von Liquidstone » Do 1. Okt 2009, 07:31

Ist das vielleicht was für dich?
Wenn du den "Ticker" weg lässt, ist es ein Script dass was du suchst

http://forum.contenido.org/viewtopic.php?f=51&t=24127

oder hier noch mal
Code als *.xml speichern

Code: Alles auswählen

<?xml version="1.0" encoding="ISO-8859-1"?>
<module><name>Zufallsbild</name>
<description>Zufallsbild mit Skalierung

Autor: Florian Born
Version: 1.2</description>
<type>Content</type>
<input/>
<output><?php
$bilder = glob( "{"deinen uploadordner eintragen"/*.jpg,"ein weiterer ordner"/*.jpg}", GLOB_BRACE );
shuffle( $bilder );
$bildinfo = getimagesize( $bilder[0] );
$width = $bildinfo[0];
$height = $bildinfo[1];
if ($width > 220)
{
 $width = 220;
 $percent = ($bildinfo[0] / $width);
 $height = ($bildinfo[1] / $percent);
}
$sScaledImage = cApiImgScale($bilder[0], $width, $height);
echo '<a href=""deine url mit http"/front_content.php?idart=213&idcat=134&image='.$bilder[0].'"><img src="' .$sScaledImage .'" alt="" border="0"></a>';
?></output>
</module>
Die "" bei den nötigen Änderungen sind zu entfehrnen!
Dateianhänge
Zufallsbild.zip
(658 Bytes) 148-mal heruntergeladen

Gesta Treverorum
Beiträge: 1
Registriert: So 6. Feb 2011, 11:50
Kontaktdaten:

Re: Frage zum Modul "Bildwechsel"

Beitrag von Gesta Treverorum » So 6. Feb 2011, 12:20

Hallo,

ich bin neu hier und auch recht neu im Umgang mit Contenido. Meine bisherige Nutzung hat sich auf die Erstellung von Texten mit Bildern usw. sprich dem Inhalt der Seite beschränkt.

Nun möchte ich aber auch das ein oder andere Modul einstellen bzw. auch mal was am Template machen.

Als erstes wollte ich das oben genannte Zufallsbild einbauen.

Ich habe die *.xml Datei importiert. Diese wurde dann in den Output geschrieben und ich habe ein bisschen was "eingetragen".
Ich bin mir aber nicht sicher, ob es so richtig ist.

Ich poste den Output am besten mal hier:

Code: Alles auswählen

<?php
$bilder = glob( "{bildergalerie/*.jpg}", GLOB_BRACE );
shuffle( $bilder );
$bildinfo = getimagesize( $bilder[0] );
$width = $bildinfo[0];
$height = $bildinfo[1];
if ($width > 220)
{
 $width = 220;
 $percent = ($bildinfo[0] / $width);
 $height = ($bildinfo[1] / $percent);
}
$sScaledImage = cApiImgScale($bilder[0], $width, $height);
echo '<a href="http//www.gesta-treverorum.de/front_content.php?idart=213&idcat=134&image='.$bilder[0].'"><img src="' .$sScaledImage .'" alt="" border="0"></a>';
?>
Als Test zunächst sollte das Zufallsbild hier:
www.gesta-treverorum.de
unter "Über uns" erscheinen. Wenn ich das zum funktionieren gebracht hätte wollte ich es in die Startseite übernehmen.

Bei Klick auf "Über Uns" erscheint nun aber eine leere Seite mit dem einzigen Menüpunkt "Webseite", mit dem ich wieder auf den Anfang gelange.

Was habe ich falsch gemacht?

Würde mich sehr über eure Hilfe freuen, da die Seite schon geraume Zeit brach liegt und der, der mir da eigentlich helfen wollte scheinbar keine Zeit mehr für mich hat :(

Viele Grüße,
Daniel

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Frage zum Modul "Bildwechsel"

Beitrag von homtata » Mo 9. Mai 2011, 22:20

Hallo,

ich hab diese Funktion neulich auch benötigt und bin so vorgegangen (Code ist für hier leicht geändert, da er in einem anderen Zusammenhang als Funktion gebraucht wurde):

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Output a random image from preset directory
*
* @version 1.0.0
* @author Viktor Lehmann <tone2tone.com>
*
* {@internal
* created 2011-04-28
* }}
*
* $Id$
*/

cInclude("includes", "functions.api.images.php");
cInclude ("frontend", "includes/functions.getimagedesc.php");

$bRecursiv = false;
$sPath = $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "logos_kunden/";

$bilder = scanDirectory($sPath, $bRecursive);
shuffle( $bilder );

#Default settings
$img_width = 280;
$img_height = 75;

#Scale image
$sScaledImage = capiImgScale($bilder[0], $img_width, $img_height, false, false, 10, false);

# VL Medienname auslesen ab 4.8.8
   $medieninfo = ig_getImageDescription($bilder[0]);
   $str_media_name       = $medieninfo ['media'];
   $str_file_description = $medieninfo ['desc'];

$randomimage = '<img src="' .$sScaledImage .'" alt="'.$str_media_name.'" title="'.$str_media_name.'" border="0">';

?>
Das setzt voraus, dass der Ordnername "logos_kunden" oben händisch angepasst wird an den gewünschten Uploadordner.
Außerdem sollte zum Auslesen der Dateieigenschaften folgender Code in eine neu anzulegende Datei namens includes/functions.getimagedesc.php geschrieben werden:

Code: Alles auswählen

<?php
/**
 * Project: Viktor Lehmann lagert Dateifragmente aus
 * Contenido Content Management System
 * 
 * Description: Ausgelagerte Funktion zum Ermitteln der Bildbeschreibung
 * Ausgelagert, damit der mehrfache Aufruf pro Seite nicht zum Funktionsfehler führt
 * Die Datei wird in die Module nur noch mit require_once eingebunden.
 * 
 * Requirements: 
 * @con_php_req 5
 * 
 *
 * @package    Contenido Backend <Area>
 * @version    0.1
 * @author     unknown
 * @copyright  four for business AG <www.4fb.de>
 * @license    http://www.contenido.org/license/LIZENZ.txt
 * @link       http://www.4fb.de
 * @link       http://www.contenido.org
 * @since      file available since contenido release <Contenido Version>
 * @deprecated file deprecated in contenido release <Contenido Version>
 * 
 * 
 */

function ig_getImageDescription($idupl) {

    global $cfg, $cfgClient, $db, $client, $lang;

    $cApiClient= new cApiClient($client);
    $language_separator= $cApiClient->getProperty('language', 'separator');
    if ($language_separator == "") {
        //Sanity, if module used in client without set client setting
        $language_separator= "§§§";
        $cApiClient->setProperty('language', 'separator', $language_separator);
    }
    if (is_numeric($idupl)) {
        //ID is a number
        $query= "SELECT description FROM " . $cfg["tab"]["upl"] . " WHERE idupl = " . $idupl;
    } else {
        //ID is a string
        $path_parts= pathinfo($idupl);
        $upload= $cfgClient[$client]['upl']['frontendpath'];
        $len= strlen($upload);
        $pos= strpos($idupl, $upload);
        $dirname= substr($path_parts['dirname'], $pos + $len) . '/';
        $query = "SELECT m.description, m.medianame, m.internal_notice, m.keywords, m.copyright 
        FROM " . $cfg["tab"]["upl"] . " u INNER JOIN " . $cfg["tab"]["upl_meta"] . " m
        ON u.idupl = m.idupl AND m.idlang = " . $lang . "
        WHERE (u.dirname = '" . $dirname . "') AND (u.filename='" . $path_parts['basename'] . "') AND (u.filetype='" . $path_parts['extension'] . "')";

    }
    $db->query($query);
    if ($db->next_record()) {
        return array("desc"  => htmlspecialchars(urldecode($db->f("description"))),
                     "media" => htmlspecialchars(urldecode($db->f("medianame"))),
                     "internal" => htmlspecialchars(urldecode($db->f("internal_notice"))),
                     "keywords" => htmlspecialchars(urldecode($db->f("keywords"))),
                     "copyright" => htmlspecialchars(urldecode($db->f("copyright")))
                     );
    } else {
        return '';
    }
}
?>
Grüße an alle

Gesperrt