| 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: 17 let
|
|||
0