Autor Zpráva
el_bunda
Profil
Zdravím,

mám fotogalerii sestavenou ze složek, a jak je známo, diakritika ve složkách dělá problémy. Rozhodl jsem se to vyřešit tak, že vytvořím soubor (dejme tomu .txt) a do něj napíšu: nazevslozkybezdiakritiky: Název složky s diakritikou.
Složku oscanovat umím, rozřezat ten soubor na kousky tak, abych měl každý název zvlášť je taky v pohodě. Problém je v tom, že se mi nedaří poskládat cyklus, ke každé složce přiřadil oba názvy.
V podstatě by měl vytvořit toto: <a href="localhost/album/nazevbezdiakritiky">Název s diakritikou</a>.

Nevěděl by s tím prosím někdo poradit??
Sir Tom
Profil
el_bunda:
Také zdravím, co třeba se vykašlat na tento systém a udělat to stylem: mám složku a v ní je textový soubor name.txt, který obsahuje název složky s diakritikou. V každé složce bude vždy 1 soubor name.txt.
el_bunda
Profil
Moc dobrý nápad. Už jsem to zkusil napsat a všechno funguje parádně. Díky
Jenom mám ještě menší problém s navigací: nahoře se zobrazuje hierarchická cesta alb, kterýma se uživatel proklikal (např. Rok 2010 > Červenec > Chorvatsko).

Potřeboval bych vymyslet, jak ty názvy s diakritikou zobrazovat i v této navigaci. Zatím mám kód, který mi zobrazí názvy alb jenom bez diakritiky:


$album=stripslashes(str_replace(".","",$_GET['album'])); //Aktuální album (předává se pomocí url)

$folder=@explode("/",$album);

$nav="<a href=\"".$script_url."\"><img src=\"".$open_folder."\" style=\"border:0px;\" align=\"absmiddle\" alt=\"Fotogalerie\" /> ".$home_link."</a> ";	

$count=@count($folder);

for($i=0;$i<$count;$i++) {
	If($folder[$i]) {
		
	$path.=$folder[$i]."/";
        $nav .=" > <a href=\"".$script_url."&album=".$path."\"><img src=\"".$open_folder."\" alt=\"".$folder[$i]."\" /> ".$folder[$i]."</a> ";
	}
}

Echo($nav);



Pomohl by mi to prosím někdo trochu poupravit?
Sir Tom
Profil
el_bunda:
Pokud máš kód, který ti zobrazuje název složek bez diakritiky a onu navigaci i nějak tvoříš vlastním algoritmem (cyklem, postupným procházením složek, apod.), tak můžeš při každém průchodu složkou nechat otevřít i to name.txt a obsah uložit do proměnné pole. Na konci proměnnou vypíšeš - např:
foreach($jmenaSlozek as $slozka){
  echo $slozka." > ";
}
el_bunda
Profil
No jo, jenomže ta navigace slouží zároveň jako odkaz do nadřazeného alba. A když někdo do toho nadřazeného alba vejde, tak zařídím, aby se z toho pole smazal třeba poslední jeden nebo dva řetězce?
Sir Tom
Profil
el_bunda:
Po otevření nové stránky můžeš celý cyklus zopakovat, nebo použít funkce, které odstraňují prvek z pole: array_pop().
www.google.cz/search?&q=odstran%C4%9Bn%C3%AD+prvku+z+pole+php
el_bunda
Profil
Sir Tom:
Díky moc Tome, ale řešit to pomocí pole mi přišlo trochu moc složité, tak jsem trošku poupravil ten kód, který jsem napsal výš a už to funguje, jak jsem chtěl.

Díky za ochotu ;-)
peta
Profil
Nemelo by to byt v tematu php?
http://php.net/manual/en/language.constants.predefined.php
pro path by se dali vyuzit konstanty __DIR__, __FILE__

mas
$path_here = 'aaa/bbb/ccc';
$path_here = explode('/',path_here);
$path = '';
foreach ($path_here as $value)
{
$path.= $value.'/';
$soubor = $path1.'name.txt';
}
(v podstate to tam mas)
Predpokladam, ze v name.txt mas prvni radek nazev aktualni slozky. Tim padem je duplicitne tady a o uroven vys, ale to uz si pohlidas.

Pripadne bys tam mohl davat celou cestu. Pri prejmenovani slozky vys ji budes muset ale celou zmenit i pro podslozky. Ale i to by se dalo pohlidat. Usetrilo by ti to takoveto cykleni.
name.csv , tabulka radky a sloupce
type,name,url
path,"Foto","foto"
path,"Nikolka","foto/nikolka/"
path,"Francie, leto 2010","foto/nikolka/francie-leto-2010"
folder,"Hrad","foto/nikolka/francie-leto-2010/hrad"
folder,"Bazen","foto/nikolka/francie-leto-2010/bazen"
http://cz.php.net/fputcsv
http://cz.php.net/fgetcsv

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0