Autor Zpráva
Silvershadow
Profil *
Použil jsem tento příklad galerie a soubor funkce.php tedy vypadá takto
<?php
Function ZobrazGalerii($cesta = "images/zakulisi/velke/", $cesta_male = "images/zakulisi/miniatury/", $strana = 1, $sirka_tabulky = "100%", $pocetH = 3, $pocetV = 3)
{
$adresar = OpenDir($cesta); // otevre adresar
$soubor = Array(); // zinicializuje pole
while ($zaznam = ReadDir($adresar)) { // nacte nazev souboru
if (!Is_Dir("$cesta/$zaznam")) { // zkontroluje zda neni nazev adresar
$soubor[] = $zaznam; // ulozi do pole soubor
}
}
CloseDir($adresar); // uzavre adresar
Sort($soubor); // srovna nazvy souboru 
echo "<table width=$sirka_tabulky class=tabulkagalerie>\n<tr>\n";
$sloupec = 0;$radka = 1;
$sirka = Floor(100 / $pocetH); // procentualni sirka jednoho sloupce
$obrazek_cislo = ($strana - 1) * $pocetH * $pocetV; // ktery obrazek bude prvni
while ($obrazek = $soubor[$obrazek_cislo]) { // opakuj dokud nevycerpame vsechny obrazky
$sloupec++;
if ($sloupec > $pocetH) { // pokud sloupec prekroci pocet cloupcu,
$sloupec = 1; $radka++; echo "</tr><tr>\n"; // .., tak se vytvori nova radka
}
if ($radka > $pocetV) break; // pokud prekrocime pocet radku, skoncime cyklus
echo "<td width=\"$sirka%\">";
echo "<a href=\"$cesta/$obrazek\">";
echo "<img src=\"$cesta_male/small_$obrazek\"></a>";
echo "</td>\n";
$obrazek_cislo++;
}
echo "</tr><tr><td colspan=$pocetH align=center>\n";
$pocet_stran = Ceil( Count($soubor) / ($pocetH * $pocetV) ); // spocitame pocet stran galerie
for ($i=1; $i<=$pocet_stran; $i++) { // cyklus pro zobrazeni navigacni listy
if ($i!=$strana) {
echo "<a href=?strana=$i>$i</a> | ";
} else {
echo "$i | ";
}
}
echo "</td></tr></table>\n";
}
?>


a kód v html pro zobrazení takto:
<?
include "funkce.php"; // nacteme knihovnu s funkci
if (!isset($strana)) $strana = 1;
ZobrazGalerii("galerie1","galerie1/small",$strana); // zobrazi galerii
?>

Co je natom špatně, že mi to vypisuje tyto chyby:
Warning: opendir(galerie1): failed to open dir: No such file or directory in /home/users/anonym/plajst.endora.cz/web/funkce.php on line 4 Warning: readdir() expects parameter 1 to be resource, boolean given in /home/users/anonym/plajst.endora.cz/web/funkce.php on line 6 Warning: closedir() expects parameter 1 to be resource, boolean given in /home/users//anonym/plajst.endora.cz/web/funkce.php on line 11
Darker
Profil
Warning: opendir(galerie1): failed to open dir: No such file or directory in ... - Složka neexistuje, nebo je chráněná.
Další chyby jsou následkem neotevření složky. Funkce čekají handle (to je to resource) ke složce a dostanou false (a tohle je boolean).
Nezapomeň, kde skript složku hledá, a ujisti se,že tam je.
Silvershadow
Profil *
Díky, chtěl jsem tam přidat ještě lightbox,takže příslušný řádek v php vypadá takto
echo "<a href=\"$cesta/$obrazek\" rel="lightbox[galerie]">";
a vypisuje chybu Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/users/anonym/plajst.endora.cz/web/funkce.php on line 24
Darker
Profil
echo "<a href=\"$cesta/$obrazek\" rel=\"lightbox[galerie]\">";

Zrovna dneska se tu o escapování uvozovek mluvilo.
Řešením je též:
echo "<a href='$cesta/$obrazek' rel='lightbox[galerie]'>";

nebo
?><a href="<?php echo "$cesta/$obrazek"; ?>" rel="lightbox[galerie]"><?php
Silvershadow
Profil *
Tak jsem ji zprovoznil, ale mám problém se stránkami, mám 6 sloupců a 5 řádek, takže 30 obrázků na stránku, ve složce 32 obrázků, takže se vytvoří u druhá stránka, jenže po kliknutí na druhou stránku, se sice v adresním řádku změní stránka, ale obsah zůstává stejný, v komentářích k tomuto příkladu to také zaznělo a našem jsem tam toto : Trvalo mi celou vecnost nez sem na to prisel... To predani parametru musi byt provedeno pres superglobalni promennou. Takze provedeme mensi zmenu ve vstupnich parametrech funkce zobrazgalerii a to ze $strana = $_GET["strana"] Melo by fungovat... , ale když někam do kódu vložím
$strana = $_GET["strana"]
tak jediná změna, že po kliknutí na druhou stránku se označí v seznamu stránek dvojka a je klikatelná jednička, ale obrázky jsou stále stejné :(

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0