[ CiM0beTa @ 07.08.2012. 21:41 ] @
1.php

Code (php):


<?php
// funkcija za izbor sadrzaja
function ubaci($sta) {
     if ($sta=='sad') {
          return '2.php';
     }
}

// ovde su parametri (baza, korisnik, povezivanje sa bazom, grabovanje podataka)
$alfa = 'tekst';

// templejt
$file = ubaci($sta);
require "$file";

?>
 


2.php

Code (php):

// ovo mi je componenta tj. content - sadrzaj koji se ubacuje u gotov templajt
<?php
echo $alfa;
$sta='sad';
?>
 


Moze li funkcija drugacije da izgleda, da bi u templajtu bilo manje php koda. Probao sam da u funkciju stavim odmah require tog i tog fajla, ali mi je problem jer onda tu na licu mesta moram da definisem sve parametre ($alfa moram da definisem u toj funkciji a ja bih da to definisem na drugom mestu) ?


malo sam izmenio...greska je bila..ali opet nema resenja

[Ovu poruku je menjao CiM0beTa dana 07.08.2012. u 23:04 GMT+1]
[ plus_minus @ 07.08.2012. 22:07 ] @
Ja tebe ne razumem baš naj, naj, ali mislim da mogu da ti pomognem.. ili da ti dam neki ... podstrek.

Pre svega, definisanje. POjam. POdrazumeva se da su u pitanju KONSTANTE. Ne promenjive.

"Define constant" or "set variable".

Kada je u pitanju definicija, to jest konstanta, koju si ti definisao, kao i sve ostale već predefinisane konstante, to je u svakom trenutku dostupno.
Kroz funkciju, van funkcije, gde god hoćeš. Jednostavno ih pozivaš kad treba.

Dakle..
ti imaš kako reče.. baza, korisnik, povezivanje sa bazom, grabovanje podataka ... četiri stavke.. neka bude da su to ustvari nazivi fajlova (šta god).

Pa probaš ovako..

Code (php):

$TemporalArray=array(

 "_aDb__" => 'baza',
 "_aUser__" => 'korisnik',
 "_aDbConn__" => 'povezivanje_sa_bazom',
 "_aDataGrab__" => 'grabovanje_podataka'

);

foreach($TemporalArray as $def => $file )
define("$def", $file); unset($TemporalArray);
 


Nakon ovoga imaš 4 konstante, definisane.

_aDb__

_aUser__

_aDbConn__

_aDataGrab__

Sami, već "uništeni" (unsetovani) niz ti govori šta je šta.

I njih ubaciš u koju god funkciju želiš, kad god želiš.

Ti uzmi pa po primeru gore, prilagodi onome što tebi treba.

[ CiM0beTa @ 07.08.2012. 22:45 ] @
index.php:

includovanje funkcija

pa zatim switch

case 'profile':
$title = 'Bazooo...profil';
$content = 'profile';
break;

i na kraju uvek pozivanje istog templejta
template/template.php

taj templejt ima linkove:
index.php?profile itd..
i to ga vodi na prikazani switch

u funkcijama postoji funkcija content($content):

function content($content) {
if ($content=='profile') {
require '/content/profile.php';
}
}

a u templejtu imam pozivanje
content($content) u okviru body tag-a

e sad po nekoj "losoj" logici to bi sve trebalo da bude ok, medjutim ako content/profile.php sadrzi neke varijable on nece da ih prikaze, prikazace samo $title koji je setovan u indexu. Tako da ako hocu da vidim profil ispravno mora da bude ovo:

function content($content) {
if ($content=='profile') {
$user_date = user_data($user_id, 'username', 'email'..itd);
require '/content/profile.php';
}
}

i to moram da ubacujem uvek iznova za svaku $content varijantu pa imam mnogo koda. Jednostavno je pitanje kako da fajlu : content/profile.php prosledim parametre izvan funkcije . znaci glavni mi je problem sto mi se prvo ucitava kostur templejt pa u njega ubacujem sadrzaj /content/profile.php a taj fajl ima u sebi promenljive i ne vidi ih ako mi funkcija content($content) izgleda kao u prvom slucaju.
snacicu se vec nekako. Samo zelim da razdvojim funkciju koja includuje div i funkciju koja setuje potrebne varijable.