Logo/ header-bild bei öffnen der Seite immer anders Logo/ header-bild bei öffnen der Seite immer anders
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Logo/ header-bild bei öffnen der Seite immer anders

Started by Marksberlin, July 19, 2007, 01:38:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Marksberlin

Hallo ich habe mal wieder ne Frage.

Wie kann ich erreichen, dass auch meiner Seite sich das oberste Bild,, bei offnen der Seite immer ein anderes ist.
Also ich würde so 5-10 Bilder genau anpassen. Und auf dem Server Speichen.
Ich weiß nur nicht wo und wie ich das hinbekommen das sich die Bilder wechseln.

Kann mir jemand helfen.

Meine Seite www.bildervonberlin.de


Mark

Joachim Müller

Da braucht es ein kleines bißchen PHP-Code.
Benutze dazu das custom_header feature. Das externe PHP-Skript, auf dass der custom_header Pfad verweist sollte dann eine Zufallszahl auswürfeln und in Abhängigkeit von der Zahl eben das eine oder andere Bildchen darstellen. Als Beispiel hierzu: nimm http://www.it-academy.cc/article/1094/PHPBannerRotation+ohne+MySQL.html

Noch einfacher ist folgende Lösung:

<?php
/* banner.phtml
   Banner rotation script for PHP3 by Anton Olsen (aolsen@graphweb.com)
   Please feel free to do with this script what you want, all I ask is
   that if you make significant changes, please e-mail them to me.

   I tried to use a number of different methods, the image functions
   of PHP do not appear to understand animated GIFs and the file
   handling features (fopen, fpassthru, and fclose) were causing
   apache to crash on me.  I settled on using passthru.  Although
   possibly not as portable, it appears to work faster than either
   method mentioned above.

   Assumptions:
   You have a directory for all your banners.
   All banners are GIF files.
   The filenames of the banners all start with banner.
   There are no other files in the directory starting with banner.

   Installation:
   Place this script in the banners directory.
   Place all your banner*gif files in the same directory.
   Add the following HTML code to your web pages :
     <a href="wherever.you.want.com">
     <img src="http://www.yourserver.com/bannerdir/banner.phtml" alt="Random Banner Here" border=0>
     </a>

*/

/* random( $max integer )
   Returns a random number between 0 and $max-1;
*/
function random$max )
{
        
$x rand();
        
$y getrandmax();

        
$r $x $y * ($max -);

        
$r round$r++ );
        return 
$r;
}

/* Read the directory, add all "banner*" files with to the array
*/
$i 0;
$d   dir(".");
while(
$entry=$d->read())
        if (
substr($entry,0,6) == "banner")
                
$array[$i++] = $entry;
$d->close();
                

/* pick a banner at random
*/
$r random$i );

/* Send a no-cache header, and the gif type header, and output the file.
*/
Header"Pragma: no-cache" );
Header"Expires: Monday 01-Jan-80 12:00:00 GMT" );
Header"Content-type:  image/gif");
passthru"cat $array[$r]);

?>
(entnommen von http://px.sklar.com/code.html?id=49)

Es gibt noch Tausende von anderen Seiten im Internet, die das beschreiben. Wichtig für die Verwendung innerhalb von Coppermine: themes/dein_theme/template.html kann keinen PHP-Code beinhalten. Daher wie beschrieben das custom_header Feature benutzen oder mit der Header-Redirection wie im zweiten Skript beschrieben die referenz direkt im <img>-tag herstellen.

Marksberlin

Hallo,
ich habe da noch mal ne Frage!!!

ich habe mich für das zweite Methode entschieden, weil ich denke das ist am einfachen.
Aber trotzdem verstehe ich das nicht so richtig.

in welcher Datei und stelle muss ich den html code (Wenn der richtig ist) einfügen:

<a href="wherever.you.want.com">
     <img src="http://www.yourserver.com/bannerdir/banner.phtml" alt="Random Banner Here" border=0>
     </a>

und wo muss ich den rest einfügen?

bitte helft mir. ich würde mich sehr freuen und sehr dankbar sein.

Danke,
Mark

Joachim Müller

Welche Datei Du auch immer als custom_header definiert hast.

Αndré

Ohne es ausprobiert zu haben würde ich erstmal in der Datei themes/briarpatch/template.html nach der Stelle suchen, wo das Bild "header.jpg" aufgerufen wird. Den gesamten <img>-Block ersetzt du dann mit
<img src="banner.php" alt="Random Banner Here" border="0">

Die Datei "banner.php" erstellst du dann im Wurzelverzeichnis und kopierst dort den gesamten Code von Joachim rein.

Marksberlin

den der template datei ist kein verweiß auf den header.
nur im der style datei.

*/

body
{
  background: url(images/body.gif) repeat-y top center;
}



die template datei sieht nur so aus:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="{LANG_DIR}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
<meta name="mssmarttagspreventparsing" content="true" />
<title>{TITLE}</title>
<link rel="stylesheet" href="themes/briarpatch/style.css" type="text/css" />
</head>
<body>

{META}
<script type="text/javascript" src="scripts.js"></script> 
{CUSTOM_HEADER}

<div class="mainblock">

  <div class="header">
    <div class="maintitle">
      <div class="gal_description">{GAL_DESCRIPTION}</div>
    </div>
  </div>

  <div class="topmenu">
    <div align="center">&nbsp;<a href="http://www.kreativefotografien.de/index.php?cat=0">Kategorien
                                    &amp; Alben</a> ::<A
href="http://www.kreativefotografien.de/thumbnails.php?album=lastup&cat=0">Neueste Bilder</a> 
            ::<A
href="http://www.kreativefotografien.de/thumbnails.php?album=lastcom&cat=0">Neueste Kommentare</a> 
            :: <A
href="http://www.kreativefotografien.de/search.php">Suche</a><br>&nbsp;<a href="http://www.kreativefotografien.de/index.php?file=minicms/cms&id=5">Urheberrechtsinformationen</a>
            ::&nbsp;<a href="http://www.kreativefotografien.de/index.php?file=minicms/cms&id=3">Kontakt</a>
:: <a href="http://www.kreativefotografien.de/index.php?file=minicms/cms&id=2">Impressum</a><br>&nbsp;<a href="http://www.markseidler.de">Mark
            Seidler</a>&nbsp;::&nbsp;<a href="http://www.bilderausderganzenwelt.de/">Bilder&nbsp;aus&nbsp;aller&nbsp;Welt</a>&nbsp;::&nbsp;<a href="http://www.bildervonberlin.de/">Bilder von Berlin</a><img src="ir" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
{ADMIN_MENU}</div>
  </div>

  <div>{GALLERY}</div>

  <div align="center">
{LANGUAGE_SELECT_FLAGS} <br />
{LANGUAGE_SELECT_LIST}{THEME_SELECT_LIST} <br />
</div>

</div>
</body>
</html>



kann mir jemand helfen wie ich das alles hinbekomme, würde auf ewig dankbar sein.


Αndré

Dann pass den Pfad in der css-Datei an.

Mir ist aufgefallen, dass du in deiner template-Datei absolute Links hast:
<a href="http://www.kreativefotografien.de/index.php?cat=0">
Das gesamte http://www.kreativefotografien.de/ kannst du dir sparen.


Der Übersicht halber sollten wir übrigens erstmal bei einer Seite bleiben.

Marksberlin

sorry das mit den zwei seiten.
aber jede ist gleich.

aber ich bekomme das trotzdem nicht hin.

Marksberlin

sorry das mit den zwei seiten.
aber jede ist gleich.

aber ich bekomme das trotzdem nicht hin.

Marksberlin

so jetzt habe ich noch mal probiert...


in der Style datei (ist glaub nicht html) habe ich folgende stelle gefunden.
  background: url(<a href="http://www.bildervonberlin.de">
     <img src="images/gif/banner.php" alt="Random Banner Here" border=0>
     </a>) no-repeat center center;
  border-bottom: 1px solid #FFFFFF;
  border-top: 1px solid #FFFFFF;
  clear: both;
  text-align: center;
  width: 740px;
  height: 150px;


Ist das so richtig eingetragen?
geht das überhaupt wegen der style Datei?




Αndré

Folgende Stelle ist erstmal falsch:
<img src="images/gif/banner.php" alt="Random Banner Here" border=0>

Dort liegt keine banner.php


Richtig wäre:
<img src="themes/briarpatch/images/gif/banner.php" alt="Random Banner Here" border=0>
damit verweist du zumindest schonmal auf die richtige Datei.

Αndré

So ich habe jetzt selbst mal ein kleines Script erstellt, dass dir deine gewünschte Funktion bietet.


1. Erstelle im Verzeichnis themes/dein_theme die Datei banner.php mit folgendem Inhalt:
<?php

$dir 
"images/banner/";
$banners = array();

if (
$handle opendir($dir))
{
  while (
false !== ($file readdir($handle)))
    if (
$file != "." && $file != "..")
            
$banners[] = $file;
    
closedir($handle);
}

$banner $dir.$banners[rand(0,count($banners)-1)];

header("Content-type: image/jpeg");
$width 740;
$height 150;

$im = @imagecreatetruecolor($width$height);
$banner imagecreatefromjpeg($banner);
imagecopy($im$banner0000$width$height);

imagejpeg($im);

imagedestroy($im);
imagedestroy($banner);

?>



2. Erstelle im Verzeichnis themes/dein_theme/images den Ordner banner und kopiere dort beliebig viele JPG-Dateien mit beliebigen Namen hinein.


3. Suche in deiner style.css nach
background: url(images/header.jpg) no-repeat center center;
und ersetz es mit
background: url(banner.php) no-repeat center center;



Sollte funktionieren :)

Marksberlin

Also danke für deine Mühe.

Aber funktionieren tut es nicht. oder fuktioniert es bei euch?
www.bildervonberlin.de
Jetzt ist nichts zu sehen.
gruß
Mark

Αndré

Du hast einen Fehler in der Datei banner.php: http://www.bildervonberlin.de/themes/briarpatch/banner.php
Parse error: syntax error, unexpected '>' in /var/www/web263/html/web_berlin/themes/briarpatch/banner.php on line 18

Kopiere dort genau das (und nur das) rein, was ich für dich erstellt habe!

Marksberlin

so jetzt erscheint kein fehler mehr, aber funktionieren tut es nicht.


Αndré

Wenn es dir Recht ist, würde ich mir deinen themes/briarpatch-Ordner gerne mal per FTP anschauen. Die Daten dafür kannst du mir per PN schicken.

Αndré

Wie ichs mir gedacht hatte. Der Inhalt der Datei banner.php hat auch nach dem 2. Anlauf nicht gestimmt!

Drin stand:
?php

$dir = "images/banner/";
$banners = array();

if ($handle = opendir($dir))
{
  while (false !== ($file = readdir($handle)))
    if ($file != "." && $file != "..")
            $banners[] = $file;
    closedir($handle);
}

$banner = $dir.$banners[rand(0,count($banners)-1)];

header("Content-type: image/jpeg");
$width = 740;
$height = 150;

was nicht dem entspricht was ich oben geschrieben habe ::)


Jetzt geht's.

Marksberlin

krasss
danke.

ich habe doch das von dir kopiert und dann in mein webeditor gepackt und dann als php gespeichert. ist das falsch?

Αndré

Offensichtlich  ::)

"Webeditor" hört sich nach WYSIWYG-Editor (=schlecht) an. Benutz für solche Sachen am besten einen von den hier gelisteten Editoren.


Auch beim Vergleich des von mir geschriebenen Codes und dem, was bei dir zu finden war ist, dass am Anfang das "<" fehlt und die letzten 10 Zeilen komplett fehlen. >:(

Marksberlin

um es abzuschließen.
ich benutze dem Namo WebEditor 6.