ďťż
Podstrony
|
telcocafeWitajcie, proszę o pomoc z pętlami, mój parser wygląda tak:class/parser.class.php <?php class Template{ var $sSource; var $sParsed; var $aValues = array(); function load($sTemplate) { return (!$this->sSource = @file_get_contents($sTemplate)) ? false : true; } function init($sKey, $sValue) { $this->aValues[$sKey] = $sValue; } function run() { print preg_replace('/\{(.+?)\}/e', '$this->aValues[\'\\1\']', $this->sSource); } } ?> plik strony głównej tak <? include('config.php'); include('inc/news.inc.php'); $tpl = new Template; $tpl -> load(TPL_DIR.'index.tpl'); $tpl -> init('{categorie}', category($id)); $tpl -> run(); ?> a plik inc/news.inc.php tak: <?php if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])) exit(' dostęp zabroniony!'); //...skrypt function category($id) { global $artSQL, $user, $tpl, $db; $id = (int) $id; $get = "select art_id, art_title, art_text, user_id, art_comments from $artSQL where art_topic = '$id' order by art_data asc"; $query = $db->query($get); $num = $db->num_rows($query); if($num > 0) { while($obj = $db->fetch_object($query)) { $tpl -> load(TPL_DIR.'art/art_in_cat.tpl'); $tpl -> init('{title}', $obj->art_title); $tpl -> init('{text}', $obj->art_text); $tpl -> init('{poster}', $user->username($obj->user_id)); $tpl -> init('{comments}', '<a href="comments.php?what=art&id='.$id.'>skomentuj ['.$obj->art_comments.']</a>'); $tpl -> init('{read}', '<a href="art.php?id='.$obj->art_id.'>czytaj</a>'); $tpl -> run(); } } else { return 'w tej katagorii nie wystepuja zadne artykuly'; } } // .....skrypt ?> i teraz gdy jest ta petla to nie wczytuje calego szablonu index.tpl do konca a jedynie sam początek i później art/art_in_cat.tpl i to już koniec wczytania szablonu, i tylko jeden wynik sie pokazuje zamiast wszystkich co są w kategorii. jak to naprawić bo niestety pierwszy to taki moj parser, zawsze sie bawilem ze dawalem kodzie thema <? newsy() ?> itp i bylo dobrze, Użytkownik dEz17 edytował ten post 02 czerwiec 2007, 22:36 |
|||
Sitedesign by AltusUmbrae. |