Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] While i szablony
Forum PHP.pl > Forum > Przedszkole
WebKing
Cześć,
Musiałem tutaj napisać ponieważ sam już sobie z tym rady nie daje. Przeszukałem już z 50 systemów ale gdy próbowałem ich techniki nic nie działało. Mój problem to przetwarzanie danych przez system szablonów tzn. system już mam tylko stanąłem gdy chciałem wyświetlić w tabelce zawartość sql. Żeby nie owijać w bawełnę dam calutki kod i pod nim opiszę co chciałbym osiągnąć.

Kod w pliku template.class.php:
  1. <?
  2. class Template {
  3.    protected $file;
  4.    protected $values = array();
  5.  
  6.  
  7.    public function __construct($file) {
  8.        $this->file = $file;
  9.    }
  10.  
  11.    public function set($key, $value) {
  12.        $this->values[$key] = $value;
  13.    }
  14.  
  15.    public function output() {
  16.        $output = file_get_contents($this->file);
  17.  
  18.        foreach ($this->values as $key => $value) {
  19.            $tagToReplace = "{".$key."}";
  20.            $output = str_replace($tagToReplace, $value, $output);
  21.  
  22.        }
  23.        return $output;
  24.    }
  25. }
  26. ?>


Wiadomo, trzeba dać nazwę pliku i zamienniki (np. {NAZWA}), chciałbym aby dało się zrobić coś takiego:
  1. <table border="0">
  2. {panels=nazwa}
  3. <tr><td>Imie: {IMIE}</td><td>Nazwisko: {NAZWISKO}</td></tr>
  4. {/panels=nazwa}


W moich planach {IMIE} i {NAZWISKO} były by to dane z sql a wywołanie {panels=nazwa} i {/panels=nazwa} powodowało by wyświetlenie wszystkich danych z bazy danych.

Wytłumaczyłem to tak jak tylko umiałem winksmiley.jpg

Bardzo proszę o pomoc, z góry dziękuje za odpowiedź.

Pozdrawiam,
WebKing
Black-Berry
Kurcze, sory nie pomoge Ci bo nigdy tego nie robiłem. Zastanawiam się tylko czemu chcesz z języka skryptowego zrobić drugi język skryptowy?worriedsmiley.gif
WebKing
Jeżeli nie pomagasz to po co piszesz? Chciałbym aby ktoś mi pomógł ale widać że nikomu się nie chce
Black-Berry
no może nie pomagam ale zmiana metody to tez w pewnym sensie pomoc. Nie lepiej używać phtml'i ? Przecież php jest o wiele bardziej elegancki niz jakiś lokalny system szablonów.

Ok, żeby nie było ze nic nie wnoszę:

  1. <?php
  2.    class Page_Template extends Main_Template
  3.    {  
  4.        public function __construct($aPath, $aArgs)
  5.        {
  6.            parent__construct($aPath, $aArgs);
  7.            $this->path = MAIN_PATH . $this->settings->pageLayoutFolder . 'Templates/' . $aPath;
  8.        }
  9.        
  10.        public function drop()
  11.        {
  12.            if (file_exists($this->path)) {
  13.                include $this->path;
  14.            } else {
  15.                $this->log->addEntry(_SYSTEM_LOG_TEMPLATE_DOES_NOT_EXIST_, $this->path, WARNING);
  16.                $path = MAIN_PATH . $this->settings->pageLayoutFolder . 'Templates/Bodies/Default.phtml';
  17.                include $path;
  18.            }
  19.        }
  20.    }
  21. ?>


Moim zdaniem naiwność Twojego rozumowania polega na tym, że myślisz że pętla for załatwi sprawę a najprawdopodobniej każdy szablon będzie ptrzebował jeszcze innych rzeczy takich jak warunki lub nawet własne funkcje. Pisanie nowego języka w języku który miał początkowo służyć za język szablonów to jak dla mnie wielka starata czasu. Ale to tylko ja i mogę się mylić winksmiley.jpg

  1. <table border="0">
  2. <?php foreach($this->rows as $row) {
  3. print '<tr><td>Imie: '.$data['imie'].'</td><td>Nazwisko: '.$row['nazwisko'].'</td></tr>';
  4. } ?>


Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.