Galerie z adresáře – bez db

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ZDr.
Člen | 2
+
0
-

Zdravím, možná se historicky znemožním, ale předpokládám, že od toho tohle nováčkovské vlákno je…

S Nette začínám, v podstatě se spolu známe třetí den. Řeším problém s vytvořením galerie, potřebuju úplně primitivní funkci, nejspíš přes nějakou továrničku, aby mohla být použita na více stránkách.

Chtěl bych vykreslit fotogalerii např na stránce Galerie1, přičemž by byla založená na prostém výpisu souborů stejnojmenného adresáře tedy např. foto/Galerie1. Adresář by už obsahoval fotky nasypané třeba přes ftp včetně náhledů, které se jmenujou stejně jako originály jen s nějakou předponou.

Můžete mi někdo poradit jak na to? Jsem poměrně ztracený a nevím ani kde začít a všechny pokusy zůstaly u Laděnky. Předem díky za jakýkoli tip.

Ondrej
Člen | 110
+
0
-
$imageBrowser = new ImageBrowser($this, 'imb');
$imageBrowser->setDir('foto/'.$this->getView());
$imageBrowser->setPrefix('th_');
$imageBrowser->useLightboxGallery = TRUE;
$imageBrowser->setPaginator(new Paginator($itemsPerPage = 50));

v šabloně:

{control imb}

začínáš s Nette nebo s PHP?

spidy
Člen | 55
+
0
-

Tak já to řeším takto:

(presenter)

class GalleryPresenter extends BasePresenter
{
    public function renderGallery($folder) {
	$this->template->folder = $folder;
        $this->template->images =  Nette\Utils\Finder::findFiles('*.jpg')->in(WWW_DIR. '/gallery/'. $folder);
    }
}

(šablona)

{block content}
<p class="gallery">
	<a n:foreach="$images as $image" href="{$baseUri}/gallery/{$folder}/{$image->getFilename()}">
		<img class="alignnone size-thumbnail" src="{$baseUri}/gallery/{$folder}/thumbs/{$image->getFilename()}" width="150" height="150" />
	</a>
</p>