Teď jsem na to mrknul a na něco jsem přišel. Problém není přímo na straně inzerce, ale spíše v samotné galerii. Odkazy ve zdrojovém kódu jsou často řešeny tímto stylem:
case "galerie_prehled": $this->odkaz="?modul=gallery&akce=galerie_prehled&strana="; break;
Tedy jak je vidět, v odkazech chybí soubor, na který je odkazováno. Proč tomu tak je? Předpokládám, že kvůli způsobu řešení galerie, kdy je její administrace i veřejná část propojená a využívá stejné zdrojové kódy. Prohlížeč si sám pak doplňuje odkazy podle momentálně používané adresy, protože neví, na jaký soubor má odkazovat, tak předpokládá, že odkazujeme na momentálně používaný soubor. Příklad:
Jsem-li na webu a prohlížím si galerii, tak používám soubor gallery.php. Tedy po kliknutí na galerii mám tento odkaz:
[
http://www.mujweb.cz/gallery.php]
Takže prohlížeč si adresu doplní takto:
[
http://www.mujweb.cz/gallery.php?modul=gallery&akce=galerie_prehled&strana=]
Jsem-li v administraci a prohlížím si tam galerii, tak používám tuto základní adresu:
[
http://www.mujweb.cz/admin.php]
Takže prohlížeč si to doplní takto:
[
http://www.mujweb.cz/admin.php?modul=gallery&akce=galerie_prehled&strana=]
Problém vzniká v okamžiku, kdy prohlížeči násilně vnutím základní adresu přes ono <base href="http://www.mujweb.cz">
Takže si prohlížeč, neznalý na jaký soubor odkazujeme, doplní adresu, kterou mu sami předložíme, a to takto:
[
http://www.mujweb.cz/?modul=gallery&akce=galerie_prehled&strana=]
Takže se galerie pak stává nefunčkní. Vychází to tedy ze způsobu, jakým Michálek galerii napsal. Osobně si myslím, že jím zvolené řešení jednoho kódu pro veřejnou část i administraci nebylo příliš šťastné rozhodnutí, které pak přináší takovéto problémy. Sám jsem se s tím trošku potýkal, když jsem si upravoval galerii po designové stránce a pak mi to v adminu dělalo trochu neplechu.
Řešení? Dalo by se najít. Samozřejmě bez zásahů do zdrojáku to nepůjde. Co mě osobně napadá, tak asi jedno z nejméně násilných řešení (kromě přepsání celé galerie), je na všech místech, kde se tvoří odkazy tímto stylem bez určeného souboru, provést nejdříve zjištění, zda se pohybujeme na webu či v adminu, a podle toho pak doplňovat do odkazů buď gallery.php nebo admin.php, aby už k podobným problémům nemohlo docházet. Vyřešit by to nemělo být tak složité, ale rovnou říkám, že se do toho teď pouštět nebudu, neb jsem doma bez počítače již nějaký čas a v práci se k tomu nedostanu. Jen hodím takový malý náťuk pro ty, co by se tím chtěli zabývat a dořešit to.
//toto zjištění by mělo stačit jen jednou třeba přímo v souboru gallery.php
if (jsem na webu):
$GLOBALS["adresuj"]=gallery.php;
else:
$GLOBALS["adresuj"]=admin.php;
endif;
//odkazy doplníme na všech nutných místech takto
case "galerie_prehled": $this->odkaz="$GLOBALS["adresuj"]?modul=gallery&akce=galerie_prehled&strana="; break;
Je to jen náťuk, jak zjistit ono "(jsem na webu)" mě teď konkrétně nenapadá, ale nemělo by to být tak náročné. Třeba na to někdo přijdete.
T. O. Severka Děčín |
New r.č. |
Old Good Tom | Jinak už v tom nefrčím... :-)
Celkem upraveno 1×. Poslední úprava zdenekh v 06.10.2008 11:52.