von schmchris |
Ich hab eine Bilderhomepage mit gallerien :
http://www.****.net/index.php?page=bilder/0018/index.php
[Domain veraltet]
nun sollte unter dem dateinamen ein link sein der zu den vorhanden Kommentaren führt und zum formular zum eintragen !
unter den Thumbnails sollte auch noch angezeigt werden ob bereits kommentare hinerlassen wurden !
Meine Gallerie ist mit folgendem Script aufgebaut das die Bilddateien ausliest :
<?
// *************************************************************************** ********************//
// phpMyDIR
// *************************************************************************** ********************//
require("seiten/class.dir.php");
$DIR = new myDIR;
$DIR->setMASK("*.*"); // (".*") separated with comma
$DIR->setFIND("all"); // could be "folder" "files" "all"
$DIR->setROOT("bilder/0015/low"); // start folder
$RESULT = $DIR->getRESULT();
echo "<table cellpadding='5' cellspacing='5'align=center>n";
echo "<tr bgcolor='white' ><td width=70> </td><td width=150> </td><td width=70> </td><td width=150> </td></tr>";
//echo "<tr><td colspan='4'>Es wurden ".count($RESULT)." Dateien gefunden.</td></tr>n";//
for ( $i=0 ; $i < count($RESULT); $i++ )
{
$save1 = ( $i%2 == 0 ) ? "<tr bgcolor='#EFEFEF'>" : " ";
$save2 = ( $i%2 == 0 ) ? "</td>" : "</td></tr>";
echo $save1;
echo "<td><font color='#000000'> ".$RESULT[$i]["file"]."</font></td>";
echo "<td><a href='bilder/0015/high/".$RESULT[$i]["file"]."' target='_blank'> <img border='0' src='bilder/0015/low/".$RESULT[$i]["file"]."'></a></td>";
echo $save2;
}
echo "</table>n";
?>
Naja vielleicht bekommts ja jemand hin. !
Hier noch die Datei "class.dir.php"
<?
// *************************************************************************** ********************//
// CLASS myDIR
// *************************************************************************** ********************//
/*
* INFO:
* this script reads a specified dir and
* return a array with $folder $file $size $time
* needs PHP4 or higher
*
* AUTHOR & COPYRIGHT (C):
* alexander klein
* http://www.alexanderklein.de
* mail@alexanderklein.de
*
* RELEASE:
* version 1.1 (24-02-2002)
*
* THANKS TO CARLOS FOR THE OPTION TO INCLUDE MORE THAN ONE EXTENSION.
* carlos pires
http://www.osbrasil.org
*
* USAGE:
*
*************************************************************************** ***********************
require("./class.dir.php");
$DIR = new myDIR;
$DIR->setMASK("*.php,*.html,*.txt"); // ("*.html,*.htm,*.txt") separated with comma
$DIR->setFIND("files"); // could be "folder" "files" "all"
$DIR->setROOT("./phpMyAdmin"); // start folder
$RESULT = $DIR->getRESULT();
echo "<table cellpadding='5' cellspacing='5'>n";
echo "<tr><td colspan='4'>Found ".count($RESULT)."</td></tr>n";
for ( $i=0 ; $i < count($RESULT); $i++ )
{
$bgcolor = ( $i%2 == 0 ) ? "#DDDDDD" : "#EFEFEF";
echo "<tr bgcolor='$bgcolor'>";
echo "<td> ".$RESULT[$i]["folder"]."</td>";
echo "<td> ".$RESULT[$i]["file"]."</td>";
echo "<td> ".$RESULT[$i]["size"]."</td>";
if ($RESULT[$i]["time"])
{
echo "<td>".strftime("%d.%m.%y - %H:%M",$RESULT[$i]["time"])."</td>";
}
else
{
echo "<td> </td>";
}
echo "</tr>n";
}
echo "</table>n";
*************************************************************************** ***********************
*
* CHANGELOG
*
* 24.02.2002 - added natcasesort
* - added option to include more than on extension
*
*************************************************************************** ***********************
*
*/
class myDIR
{
var $mask = "";
var $find = "";
var $root = array();
var $temp = array();
var $result = array();
//** setFIND *************************************************************************** *****//
function setFIND($val)
{
$this->find = $val;
}
//** setMASK *************************************************************************** *****//
function setMASK($val="")
{
$this->mask = $val;
}
//** setROOT *************************************************************************** *****//
function setROOT($val="")
{
$this->root[] = $val;
}
// *************************************************************************** *****************//
//** setARRAY *************************************************************************** *****//
function setARRAY($folder="",$file="",$size="",$time="")
{
$this->result[] = array("folder"=>$folder,"file"=>$file,"size"=>$size,"time"=>$time);
}
//** doSEARCH *************************************************************************** *****//
function doSEARCH()
{
for($i=0; $i<count($this->root); $i++)
{
unset($this->temp);
$handle = @opendir($this->root[$i]);
while ($file = @readdir ($handle))
{
if (eregi("^.{1,2}$",$file))
{
continue;
}
$this->temp[] = $this->root[$i]."/$file";
}
@closedir($handle);
if (count($this->temp) > 0)
{
natcasesort($this->temp);
foreach ($this->temp as $val)
{
switch ($this->find)
{
case "folder":
$this->doFOLDER($val);
break;
case "files":
$this->doFILES($val);
break;
case "all":
$this->doFILES($val);
$this->doFOLDER($val);
break;
}
}
}
}
}
//** doFOLDER *************************************************************************** *****//
function doFOLDER($val)
{
if( is_dir($val) )
{
if ($this->find == "all")
{
$this->root[] = $val;
}
}
}
//** doFILES *************************************************************************** *****//
function doFILES($val)
{
if( is_file($val) && $this->doMATCH($val) )
{
$this->doINFO($val);
}
}
//** doINFO *************************************************************************** ******//
function doINFO($val)
{
$fSIZE = filesize($val);
$fTIME = filemtime($val);
$offset = strrpos ($val, "/");
$folder = substr ($val, 0, $offset);
$file = substr ($val, $offset+1);
$this->setARRAY($folder,$file,$fSIZE,$fTIME);
}
//** getRESULT *************************************************************************** *****//
function doMATCH($file)
{
$mask = $this->mask;
$mask = str_replace(".", ".", $mask);
$mask = str_replace("*", "(.*)", $mask);
$mask_array = explode(',',$mask);
foreach ($mask_array as $valid)
{
if(eregi("^$valid", $file, $geek))
{
return true;
}
}
}
//** getRESULT *************************************************************************** *****//
function getRESULT()
{
$version = split (".", phpversion());
if ( $version < 4 )
{
echo "ERROR: phpMyAdmin does only works with PHP-Versions 4.0 or higher.n
";
echo "Your Version is (".phpversion().").";
exit;
}
$this->doSEARCH();
if ( !$this->result )
{
echo "ERROR: No Data or Folder does not exist (".$this->root.")";
exit;
}
return $this->result;
}
// *************************************************************************** ****************//
}
// *************************************************************************** ********************//
?>
Nachtrag :
Unter den Thumbnails sollte also ein link sein der zu den kommentaren führt.
Sollte in etwa so lauten
kommentare.php?pic=0001-0018
dann sollte er die datei 0001-0018.dat anlegen ! und darin die kommentare speichern !
Kein SQL wenns geht !
|
von schmchris |
Naja SQL wollte ich nicht nutzen !
Ich find ja kein so ein Script leider. Vielleicht kennt ihr ja eines !
|
von HG |
Hört sich doch glatt nach php und ner Datenbank an. Damit ist das leicht und schnell realisierbar. Oder schnapp dir einfach ein vorhandenes Skript. |
von schmchris |
Ich habe auf meiner Homepage einige Bilder, nun möchte ich das man für jedes Bild Kommentare speichern kann.
Das sollte so aussehen das unter einem Bild steht wieviel Kommentare es bereits gibt
"4 Kommentare" desweiteren sollte dies der link sein für sich einzutragen.
Die eintragung sollte etwa so erfolgen "kommentar.php?nummer=0007.jpg"
Über die Abfrage der vorhanden kommentare hab ich mir noch keine Gedanken gemacht.
Aber ich habs hier ja mit Spitzenleute zu tun !
Wie kann ich sowas realisieren. |
|