[ alfa-pro @ 25.08.2011. 07:36 ] @
Pre neki dan sam uzeo da probam na svom projetu da doradim Williams Concepts Template Library
http://williamsconcepts.com/ci...raries/template/reference.html

Koristim HMVC strukturu i nailazim na probleme u vezi nizova od kako sa je instancirao...
Obratio sam se na CI forumu ali neuspesno vec par dana stoji tema jedan je pokusao ali nista nije uspeo..

Imam problema kada npr napravim niz i zelim da ga izlistam iz petlje dobijam stalno gresku invalid argument supplied for foreach()
Dok pre toga nikada nisam imao problema..

http://williamsconcepts.com/ci...raries/template/reference.html
Detaljno sam procitao dok nisam poceo da je koristim i naucio sam kako radi nije to problem..

Evo primer.cotroller
Code:

public function index()
{
   $theme = 'tpl_default';
   $this->template->set_master_template('theme/'. $theme .'/blog.php');
   $this->template->add_region('test');
   $data['arr'] = array(
            'User' => 'John',
            'Admin' => 'Brad'
            );
   $this->template->write('test',$data['arr']);      
   $this->template->render();           
}  


View
<?php foreach($test as $row => $value):?>
<?php echo $row.$value ;?>
<?php endforeach;?>


pokusao sam da zadam sve moguce parametre u foreach i dalje nece....
Pokusao i

<?php foreach($data as $row => $value):?>
<?php foreach($arr as $row => $value):?>

pokusao sam i ovako pa nece

$data = array(
'User' => 'John',
'Admin' => 'Brad'
);
$this->template->write('test',$data);

i onda samo $data pozovem u petlji i opet nece

Mozda vi imate neko resenje za ovo jer jako mi potrebno ne mogu nista iz baze da izlistam a ni iz niza.
Codeigniter poznajem dobro vecina projekata je na njemu zasnova. Svi su hvalili ovu biblioteku da je dobra i preporucili su mi je
do sve savrseno radi u njoj samo to sa nizovima nesto ne funkcionise.. Brdo nacina sam pokusao i posumnjao sam da nije zbog HMVC strukture? Meni je obrni okreni sve u app/views tako da ne bi trebalo da predstavljal problem... Nije meni template dir van views foldera
[ VladaSu @ 26.08.2011. 21:18 ] @
Mozda je 'test' neka varijabla koja je rezervisana pa ti prepise.
Probaj samo da ispises taj test sa echo.
[ Nikola Poša @ 27.08.2011. 11:56 ] @
Gledajući dokumentaciju CodeIgniter-a, izgleda da taj drugi argument write() metoda može da bude isključivo string:
Citat:
$this->template->write($region, $content, $overwrite = FALSE)

$region: a string defining to which region we wish to write, and
$content: a string containing the content we wish to write.

... pa se verovatno vrednost tog parametra u nekom trenutku implicitno cast-uje u string: $content = (string)$content;. I naravno, kao takav, može da se ispisuje samo notacijom za ispis string-ova: <?= $test ?>, ili naravno: <?php echo $test; ?>.

Tako da, ako imaš neku iole komplikovaniju logiku za ispis, zapakuj je u neki view skript, i onda iskoristi metod write_view().

[ alfa-pro @ 28.08.2011. 01:08 ] @
Cek pa kako je onda autor zamislio prikazivanje rezultata iz baze?? Negde je jednostavno neophodna foreach....
[ Nikola Poša @ 28.08.2011. 11:37 ] @
Kao što sam već rekao, imaš taj drugi metod - write_view(). Izmesti celo to parče koda sa foreach petljom u zaseban view fajl, i onda naziv tog fajla prosledi kao drugi parametar, a potrebne podatke kao treći. Čitaj dokumentaciju, sve lepo piše tamo:
Citat:
Like write(), we define the region we wish to write to in the first argument of write_view(). For the second and third arguments, we pass a view file (with or without the ".php" extension) and optionally pass a data array to our view, respectively, just as is typically done with CI's $this->load->view() method.

E a za pitanja oko same koncepcije, i zašto su tako zamišljene stvari, moraćeš da se obratiš direktno autoru.