Autor | Zpráva | ||
---|---|---|---|
MelkorNemesis Profil |
#1 · Zasláno: 29. 4. 2008, 22:38:34 · Upravil/a: MelkorNemesis
Ahoj, mam podivny problem, delam v zendu a kdyz musim udelat web bez nej tak se hur vzpomina, ale tohle je spis nekde moje chyba.
Mam index.php - zapnu session, nastavim jazyk a "require_once"nu soubor se spravnou jazykovou mutaci. V casti indexove vsechny preklady funguji. Ale jak dojde kod k includovani obsahu (z GETu), tak soubor nacte, ale v nem jiz jazykove preklady nefunguji..samozrejme je to nacitane az po includnuti jazyku. Funguje to pouze v pripade, ze do toho souboru includovaneho znovu dam require souboru s jazykovou mutaci. Proste mi to nezere to includnute pole z indexu. orezany konkretni priklad index.php <?php session_start(); if(!isset($_SESSION['lang'])) { $_SESSION['lang'] = 'uk'; } require_once('./languages/'.$_SESSION['lang'].'.php'); . . . <?php Content::getContent(); ?> SOUBOR S MUTACI <?php $translate = array( 'about rezidence skala' =>'ABOUT REZIDENCE SKÁLA', 'apartments for sale' => 'APARTMENTS FOR SALE', 'apartments for rent' => 'APARTMENTS FOR RENT', 'contact' => 'CONTACT', . . . A INCLUDOVANY SOUBOR <tr> <td><?echo $translate['name']?>:</td><td><input type="text" name="name" /> <?echo $translate['surname']?>: <input type="text" name="surname" /></td> </tr> Nezna nekdo nejakou castou pricinu nebo rozreseni? diky vsem za reakce |
||
Kalby Profil |
#2 · Zasláno: 29. 4. 2008, 22:58:37
nejsem si teda jistej ale myslim si ze to je tim ze ten obsah vypisujes pomoci tridy Content a ta nevidi promenou $translate, mel by jsi udelat neco takovydleho:
Content::getContent($translate); a v te tride to vypsat |
||
MelkorNemesis Profil |
#3 · Zasláno: 30. 4. 2008, 11:16:19
Kalby: to je docela mozne.. ale je mi divny, proc by trida nevidela normalni promennou z cele stranky. Zkusim ji tam priradit jako clenskou promennou do te tridy nebo tu funkci udelat normalni, ne objektovou.
Potom podam report, diky! |
||
MaxwellDemon Profil |
#4 · Zasláno: 1. 5. 2008, 07:05:26
MelkorNemesis: tak jistě že jí nevidí ... od toho koneckonců ta objektovost je, i když v připadě php poněkud chytrohorákyňovská ... Kalby ti ten návod dává naprosto přesnej ... pokud jí v tý třídě nepotřebuješ k ničemu dalšímu, tak si předávej tu $translate proměnnou přímo do tý getContent() metody ... je to nejjednodušší způsob ... pokud z toho uděláš membera třídy, což pochopitelně taky jde, tak tu metodu zas nemůžeš volat jako statickou v objektovým kontextu ... tam si budeš muset vytvořit instanci tý Content třídy (může bejt asi klidně singleton) a na tý instanci teprve volat getContent()
|
||
MelkorNemesis Profil |
#5 · Zasláno: 1. 5. 2008, 14:34:42 · Upravil/a: MelkorNemesis
MaxwellDemon, Kalby: diky
vyresil sem to takhle class Content { public $translate; function __construct($translate) { $this->translate = $translate; } public function _run(){ include func_get_arg(0); } public function getContent() { if(!isset($_GET['p'])) { $str = "main"; } else { $str = str_replace(array("\"","/"),"",$_GET['p']); } $file = $str. ".php"; if(!file_exists("./core/".$file)) { $this->_run("./core/main.php"); } else { $this->_run("./core/".$file); } } } a potom v tom includnutym souboru volam $this->translate. |
||
Časová prodleva: 16 let
|
0