Cytat(thomson89 @ 17.08.2010, 18:08:49 )

Proszę o wskazówki jak to naprawić, lub co robię źle. Ewentualnie zapodajcie inny pomysł robienia tabelek.
a może szablony bardziej tradycyjne?? tzn. jeśli chcesz korzystać ze zmiennych w szablonie to z tablicy możesz zmienne wyeksportować funkcją
extract - oczywiście tego też nie preferuję, gdyż jeśli zmienna jest nie zdefiniowana to może walić błędami - rozwiązanie - nie zdefiniowana zmienna niech będzie nullem automatycznie - jak... zamiast w szablonie pisać np. $tytul to piszę $this->tytul i ustawiam odpowiedniego gettera i jeśli zmiennej nie ma to walę nulem... lub zamiast metodami magicznymi to metodą dostępową jakąś $this->getVar('tytul')....
no tak - ale napiszesz, że to musiało by być wewnątrz klasy - ten szablon - nic podobnego - tzn. i tak i nie - nie jako stały element klasy... daje się gdzieś definicję szablonu, podaje zmienne i wyciąga z niego wynik... czyli w metodzie zwracającej cały szablon w uproszczeniu jest konstrukcja:
Kod
public function przyklad(){
ob_start();
// W INKLUDOWANYM PLIKU SKORO ON JEST W TYM MIEJSCU MASZ DOSTĘP DO WSZYSTKICH ZMIENNYCH TEJ KLASY NAWET PRYWATNYCH!!!!
include $this->file;
$this->wynik = ob_get_contents();
ob_end_clean();
return $this->wynik;
}
u siebie mam to jeszcze inaczej i na metodzie prywatnej/chronionej gdyż sobie dorobiłem mechanizm zagnieżdżeń, a wynik jest generowany dopiero na końcu - chyba, że potrzebuję wcześniej to jest zwracany wcześniej przez wymuszenie metod...
niżej niby jest połączony kod html z php ale zasada ta sama gdyż wynik nie zostanie wyświetlony a szablon można po prostu zainkludować wewnątrz:
<?php
// a nie lepiej szablon robić na innej zasadzie??
//$plik = file_get_contents($this->szablon_tabeli);
$polaczenie = new baza;
$query = 'SELECT * FROM `podstrony`';
// CIAŁO TABELKI
?><tr>
<td>
<?php echo $result['nazwa'];?></td>
<td>
<?php echo $result['tytul'];?></td>
<td>
<a href="podstrony.php?do=edit&act=first&id=
<?php echo $result['id'];?>">
<img style="border: 0;" src="../images/edit.gif" />
</a>
<a href="podstrony.php?do=delete&act=first&id=
<?php echo $result['id'];?>">
<img border="0" src="../images/kosz.gif" />
</a>
</td>
</tr><?php
}
// KONIEC CIAŁA TABELKI
return $plik;
?>