Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Problem]Parser
jozek
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.03.2009

Ostrzeżenie: (0%)
-----


Witam
Mam taki system szablonów:
klasa.php
  1. <?php
  2. ini_set('display_errors', true);
  3. class Erathia {
  4. private $table_users;
  5. public $file_string;
  6. public $root_dir;
  7. public $output; //zmienna
  8. public function __construct($table1){
  9. $this->table_users = $table1;
  10. }
  11. public function newLanguages($nazwa){
  12. if (!isset($_SESSION['jezyk'])) {
  13. $_SESSION['jezyk'] = "pl";
  14. }
  15. $lang_session = $_SESSION['jezyk'];
  16. require ("./languages/".$lang_session."/".$nazwa.".php"); //includuje dany jezyk
  17. }
  18. public function pointLang($name){
  19. if (isset($lang[$name])) {
  20. return $lang[$name];
  21. } else {
  22. echo 'Brak przypisanego langu do zmienej $lang['.$name.']';
  23. }
  24. }
  25. public function newTemplates($templateFile){
  26. /*    global $config;
  27.     $this->root_dir = './templates/'.$config['template'].'/';
  28.     $polaczenie = $this->root_dir.$name;
  29.     $this->file_string = file_get_contents($polaczenie);
  30.     return $name;
  31. */
  32. $this->output=file_get_contents('templates/1/'.$templateFile) or die('Error #001, plik: '.$templateFile.' nie zostal odnaleziony na serwerze! Prosze zglosic ten problem do administratora.');
  33.  
  34.    }
  35.    
  36.  
  37. public function pointTemplates($strings = array()) {
  38. /*        {
  39.                 foreach($strings as $tag => $replace)
  40.                 {
  41.                    $this->file_string = str_replace('{' . $tag . '}', $replace, $this->file_string);
  42.                 }
  43.  
  44.                 return true;
  45.         }
  46. */
  47. if(count($strings)>0){
  48.  
  49.                 foreach($strings as $tag=>$data){
  50.                        $this->output=str_replace('{'.$tag.'}',$data,$this->output);
  51.                 }
  52.              } else {
  53.                   die('Error #002: Nie znaleziono tresci do podmiany blokow - prosze skontaktowac sie z administratorem.');
  54.              }
  55.              
  56. }
  57. public function viewTemplates(){
  58.    return $this->output;
  59. }
  60.  
  61. }
  62. ?>


przyklad.php
  1. <?php
  2. include_once('klasa.php');
  3. $engine = new Erathia('players');
  4. $engine->newTemplates('przyklad.php');
  5.  
  6. $sql = mysql_connect('localhost', 'root', 'lol');
  7. mysql_select_db('black');
  8. $pytanie5 = 'SELECT id FROM `accounts` ';
  9. $idzapytania3 = mysql_query($pytanie5);
  10. $n=0;
  11. while ($wiersz = mysql_fetch_array($idzapytania3))
  12.   {
  13.       $newstitle[$n] = $wiersz[0];
  14.       $n++;
  15.   }
  16.  
  17. $engine->pointTemplates(array(
  18.                'witaj' => 'siemka'));            
  19. echo $engine->viewTemplates();
  20. ?>

I templates/1/przyklad.php :
  1. <?php
  2. Witam<br />
  3. {witaj}
  4. ?>

I ładnie działa.
Lecz co jeśli chciałbym pobrać rekordy z bazy i je wyświetlić?
Proszę o pomoc!
Bo piszę własny mini cms i brakuje pomysłu na system szybkiej wymiany szablonów (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jozek
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.03.2009

Ostrzeżenie: (0%)
-----


No czytałem tutoriale ale chyba trudno tam się przekazuje dane?
A co wy na taki sposób:
np. artykuly.php
  1. <?php
  2.  
  3.  
  4. function przyklad_1()
  5. {
  6.     $zapytanie="SELECT `id`, `email`, `key` FROM `accounts`";
  7.     polacz();
  8.     $zapytanie=mysql_query($zapytanie);
  9.     if(!$zapytanie)
  10.     {
  11.         echo 'Wystąpił problem z pobraniem listy  z bazy danych';
  12.     }
  13.     $ile=mysql_num_rows($zapytanie);
  14.     if($ile == 0)
  15.     {
  16.         echo 'Nie ma żadanych ..';
  17.     }
  18.     else
  19.     {
  20.         while($row=mysql_fetch_row($zapytanie))
  21.         {
  22.             $id=$row[0];
  23.             $nazwa=$row[1];
  24.             $opis=$row[2];
  25.             echo '<p><a href="'.$nazwa.'">'.$nazwa.'</a><br />'.$opis.'</p>';
  26.         }
  27.     }
  28.     rozlacz();
  29. }
  30.  
  31. include 'szablony/artykuly.html';    
  32. ?>


szablony/artykuly.html:
  1. <h1 class="title">Przyklad</h1>
  2. <br />
  3. <? wyswietl(przyklad_1()); ?>
  4. <hr>


Dobry sposób do cms?

sru za dubla..

zrobiłem to tak:
menu.php
  1. <?php
  2. function nawigacja()
  3. {
  4.  
  5.     $zapytanie = "SELECT * FROM `menus`";
  6.     polacz();
  7.     $zapytanie = mysql_query($zapytanie);
  8.     if(!$zapytanie)
  9.     {
  10.         echo 'nie można pobrać elementów z nawigacji';
  11.     }
  12.     $ile = mysql_num_rows($zapytanie);
  13.     if($ile == 0)
  14.     {
  15.         echo 'nie ma elementów w nawigacji';
  16.     }
  17.     while($row=mysql_fetch_row($zapytanie))
  18.     {
  19.         $id = $row[0];
  20.         $tytul = $row[1];
  21.         $adres = $row[2];
  22.         echo '<dt><a href="'.$adres.'" title="'.$tytul.'">'.$tytul.'</a></dt>';
  23.     }
  24.     rozlacz();
  25. }
  26.    include 'szablony/index.html';
  27. ?>

szablony/index.html:
  1. <? nawigacja(); ?>

I działa dobrze ( mam zamiar zrobić tak cały cms. Co wy na takie rozwiązanie?).
Lecz gdy robię na stronie dwa razy wyświetlanie tego:
<? nawigacja('prawe'); ?>
To już błąd xampp leci:
Fatal error: Cannot redeclare class DB_Error in C:\Programy\xampp\php\PEAR\DB.php on line 974

Zna może ktoś przyczynę i rozwiązanie?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 05:44