Top 10 Fotos und weiterblättern

didi69

Grünschnabel
Hallo zusammen

bin zufällig auf euer Forum gestoßen. Kompliment. Vieleicht könnt ihr mir ja weiterhelfen.
Habe schon verschiedene Treads angeschaut aber PHP bin ich erst am lernen.

Habe folgendes Problem:

ich erstelle hier die Top 10 Fotos als Thumbs. Wenn ich draufklicke sollte sich das Bild in einem neuen Fenster als Pop Up öffnen und es sollten die Buttons Vor- und zurückblättern, Fenster schließen sein.

Die Daten werden aus eine Textdatei "../log/langerdienstag2004.txt" gelesen, Pos.1= z.b. Foto001.jpg Pos.2= Anzahl der Aufrufe.

Das mit dem Aufrufen der 10 Fotos habe ich schon gemacht nur das öffnen eines Fensters kann ich nicht. Ich probiere schon die längste Weile.

Das mit dem öffnen habe ich mit einem Javascript Windowopen gemacht, nur das Blättern kann ich nicht.

Vieleicht könnt ihr mir ja weiterhelfen
smile.gif


Danke im voraus
Dieter

Hier der Quelltext der Top 10 Fotos:

PHP:
<table width="810" border="0" cellpadding="0" cellspacing="0" align="center"> 
<tr align="center"> 
<td class="content"> 
<br><br> 
<table width="810" border="0" cellpadding="0" cellspacing="0" align="center"> 
	<tr> 
	<? 
	$image_url		 = "/galerie/langerdienstag2004"; 
	$image_url_gross = "/galerie/langerdienstag2004/gross"; 
	$fp= @fopen("../log/langerdienstag2004.txt", "r"); 
	if (!$fp) die ("Die Datei kann nicht geöffnet werden"); 
	while ($zeile=fgets($fp)){ 
	$zeile=explode("-",$zeile); 
	$foto[$zeile[0]]=$zeile[1]; 
	} 
	arsort($foto); 
	$i=0; 
	foreach ($foto as $bild => $wert) 
	{ 
	 echo "<td class=\"topfoto\">Hits: $wert<br><a href=\"javascript:;\" onClick=\"openimage('$bild')\"><img src=\"$image_url/$bild\" style=\"border:1px solid #666666\";></a></td>"; 
	if ($i==9) {break;} 
	$i++; 
	if ($i%5 ==0) { //wenn $i durch 5 teilbar ist, 
		?> 
			</tr><tr> 
		<? 
		} 
	} 
	?> 
	</tr> 
</table> 
</td> 
</tr> 
</table>
 
Hallo

habe gestern noch die längste Weile probiert.

Ich komme einfach nicht weiter. Vieleicht könnten ihr mir ja auf die Sprünge helfen.

mfg
Dieter
 
Sind die Bilder denn nummeriert? Wenn ja, kannst du ja einfach die Bildnr. per GET-Variable (also eine an den Dateinamen angehängte Variable) mitübergeben und dann zwei Links zum nächsten und zum vorherigen Bild einfügen - oder meinst du was anderes?
 
Hallo

ja die Bilder sind nummerit z.b. Foto001.jpg Foto002.jpg usw. die in der Datei langerdienstag2004.txt gespeichert sind.
Die Datei langerdienstag2004.txt wird von meinem Galerie Script von www.Stadtaus.com erstellt.
Der Inhalt schaut so aus: Bildname - Aufrufe - andere Inhalte immer mit - getrennt wie du oben siehst.

Es sind aber nicht immer 10 Bilder in der Textdatei sondern auch oft weniger je nach Hits.

Wie mache ich aber das sich ein Pop Up Fenster öffnet, Mit openwindow oder wie. Müsste doch in PHP auch gehen oder?

Wenn ich aber die 2 Links übergebe, 1 Bild vor und 1 zurück, dann blätter er ja nur 1 vor und zurück und nicht durch alle die im Array sind?

mfg
Dieter
 
Hallo

so jetzt habe ich es geschafft :suspekt: das sich wenigstens das Pop Up Fenster ohne Javascript öffnet.
Nur das Problem ist wenn ich auf das Thumb Bild klicke, sich nicht das in Groß öffnet sondern immer das erste.

Ich habe 2 Dateien gemacht:

Hier mal der Quellcode von top10.php wo die Thumbs drinnen sind
PHP:
<table border="0" cellpadding="0" cellspacing="0" align="center">
	<tr>
	<?
	$image_url		 = "/galerie/langerdienstag2004";
 
	$fp= @fopen("../log/langerdienstag2004.txt", "r");
	if (!$fp) die ("Die Datei kann nicht geöffnet werden");
	while ($zeile=fgets($fp)){
	$zeile=explode("-",$zeile);
	$foto[$zeile[0]]=$zeile[1];
	}
	arsort($foto,SORT_NUMERIC);
	$i=0;
 foreach ($foto as $bild => $wert)
 {
	  echo "<td class=\"topfoto\">Hits: $wert<br><a href=\"window.php?id=$fotoneu\" TARGET=\"_blank\"> <img src=\"$image_url/$bild\" style=\"border:1px solid #666666\";></a></td>";
	 if ($i==9) {break;}
	 $i++;
 
 $fotoneu[$lv] = $bild; // die Bilder werden im Array gespeichert sonst wird das Bild nicht im Array gespeichert?
   $lv++;
 
	if ($i%5 ==0) { //wenn $i durch 5 teilbar ist,
		?>
			</tr><tr>
		<?
		}
	}
	?>
	</tr>
</table>


Hier das Pop Up Fenster Window.php. Hier muss ich die Pfade nochmal angeben. Das ist auch nicht sinnvol. Kann man das nicht alles übergeben?

PHP:
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
echo "<head>\n";
echo "<title>Bildergallerie</title>\n";
?>
<style type="text/css">
<!--
body{
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
a:link{
text-decoration:none;
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
a:visited{
text-decoration:none;
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
img{
border:1px solid #000;
}
-->
</style>
<?
 $bildpfad = "/galerie/langerdienstag2004/gross/";
	$image_url		 = "/galerie/langerdienstag2004";
	$image_url_gross   = "/galerie/langerdienstag2004/gross";
 
 $fp= @fopen("../log/langerdienstag2004.txt", "r");
	if (!$fp) die ("Die Datei kann nicht geöffnet werden");
	while ($zeile=fgets($fp)){
	$zeile=explode("-",$zeile);
	$foto[$zeile[0]]=$zeile[1];
	}
	arsort($foto,SORT_NUMERIC);
	$i=0;
 $lv=1;
 foreach ($foto as $bild => $wert)
 {

  $fotoneu[$lv] = $bild;
 $lv++;
 
	 if ($i==9) {break;}
	 $i++;
   
	if ($i%5 ==0) { //wenn $i durch 5 teilbar ist,
   ?>
			
		<?
		}
	}
	
// Wieviel Bilder sind es eigendlich?
$anzbilder = count($fotoneu);
// Wurde schon eine ID übergeben?
if(!isset($_GET['b'])) $_GET['b'] = 1;
// Zurück und Weiter Link ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\">";
if(($anzbilder - $anzbilder)+1 != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zur&uuml;ck\">« zur&uuml;ck</a>&nbsp;&nbsp;";
if($anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>";
echo "</p>\n";
// Bildnummer ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\">Bild ".$_GET['b']." / ".$anzbilder." &nbsp;</p>\n";
// Bild ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\"><img src=\"".$bildpfad.$fotoneu[$_GET['b']]."\" alt=\"Bild ".$_GET['b']." / ".$anzbilder."\" /></p>\n";
echo "</body>\n";
echo "</html>";
?>
 
Du solltest befor du deinen Code anlegst erst prüfen wieviele einträge vorhanden sin.
Ich habe mir mal eine Simple Lösung einfallen lassen:

Erst regelst du die Umblätterfunktion:
PHP:
<?php
$bedinung="WHERE dlfile_enable='1' && dlfile_ukatid='$ukat' ORDER BY dlfile_id DESC";

if (!isset($seite)) { $seite=1; }
$max_pro_seite=10;


$aa=mysql_query("SELECT COUNT(*) FROM dl_files $bedinung ");
while($ab=mysql_fetch_array($aa))
{
$eintrage=$ab[0];
}



$last_seite=ceil($eintrage/$max_pro_seite);
$next_seite=$seite+1;
if ($next_seite > $last_seite) { unset($next_seite); } 
if (($seite * $max_pro_seite) - ($max_pro_seite - 1) >= $eintrage) { $seite = $last_seite; }


$seiten_start=($max_pro_seite*$seite)-($max_pro_seite);
$seiten_ende=($max_pro_seite*$seite)-1;




$seitenausgabe .="<b>Seite:</b> ";
for($i=0; $i<$last_seite; $i++)
{
if ($seite == ($i+1)) { $seitenausgabe .="(".($i+1).") "; }
else { $seitenausgabe .="<a class='header' href='index.php?get=pages/downloadarea/data.php&ukat=$ukat&seite=".($i+1)."'>".($i+1)."</a> "; }
}













$showcomments = "10000000";
$countfiles = "0";

$result = mysql_query("SELECT * FROM dl_files $bedinung"); 
{ 
for($i=0; $i<$showcomments && ($row = mysql_fetch_array($result)); $i++) 
{
if ($countfiles >= $seiten_start && $countfiles <= $seiten_ende) {
$countfiles++;
// Hier dein Code
Dein Code abarbeiten
Ist ein Besipiel mit der Mysql

Die $bedienung kann bei dir sich auf die Top 10 Fotos richten, ist dabei kein Problem.
 
Zuletzt bearbeitet von einem Moderator:
Zurück