![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Proboje napisac wlasna klase do obslugi szablonow, jakos mi to idzie, (dopiero zaczynam zabawe z klasami) i jest o pewnien problem.
Mam cos takiego:[php:1:4c0c784fef]<?php class Templates { function LoadFile($file_id, $file_name, $file_path) { if(file_exists($file_path.'/'.$file_name)) { $file_open = fopen($file_path.'/'.$file_name, "r"); $file_content = fread($file_open, filesize($file_path.'/'.$file_name)); fclose($file_open); $this -> dane = $file_content; } else { return false; } } function Content($name, $value) { $file_display = str_replace('{'.$name.'}', $value, $this->dane); //W jaki sposob (chyba bedzie potrzeba petla) zrobic zeby //kazda blok byl podmieniany?? $this -> Replace = $file_display; } function Display() { return $this-> Replace; } } $template = new Templates; $template -> LoadFile('start', 'start.tpl', '../templates'); $template -> Content('title', 'Tytul Strony'); $template -> Content('body', 'fksdufdut8'); $template -> Content('itp', '<font color=red>gdsg</font>'); echo $template -> Display(); ?>[/php:1:4c0c784fef] -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() |
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
[php:1:0cee5d68c0]<?php
function Content($name, $value) { $file_display = str_replace('{'.$name.'}', $value, $this->dane); //W jaki sposob (chyba bedzie potrzeba petla) zrobic zeby //kazda blok byl podmieniany?? $this -> Replace = $file_display; } [/php:1:0cee5d68c0] Może nie wykonuj tego tak w "locie" to nie bedzie potrzebna pętla ![]() [php:1:0cee5d68c0]<?php function Content($name, $value) { // Dodaj sobie te 2 var 'y i ustal jakies sensowne nazwy ![]() $this->array[] = $name; $this->array2[] = $value; } [/php:1:0cee5d68c0] Tu wrzucasz sobie dane co ma na co zamienic nastepnie dodajesz 2 funckje do tpl'owania. [php:1:0cee5d68c0]<?php function Tpl() { /* Bedzie dzialac pod warunkiem ze $this->dane to jest zmienna * ktora zawiera ciag (kodu htm) jezeli to tablica to ja poprostu * polacz */ return str_replace('{'.$this->array.'}', $this->array2, $this->dane); } ?>[/php:1:0cee5d68c0] Powinno działać |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Kod Notice: Array to string conversion in wwwfirstclassestemplates.class.php on line 29
wiersz 29: [php:1:edaa7a3869]<?php return str_replace('{'.$this->array.'}', $this->array2, $this->dane); ?>[/php:1:edaa7a3869] Co dalej? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat Kod Notice: Array to string conversion in wwwfirstclassestemplates.class.php on line 29
wiersz 29: [php:1:1b2c452986]<?php return str_replace('{'.$this->array.'}', $this->array2, $this->dane); ?>[/php:1:1b2c452986] Co dalej? $this->aray trzevba potraktować pętlą i do pierwszego param,etyru dawac wartosci tablicy a nie cala tablice albo cala tablice potraktowac czyms takim:[php:1:1b2c452986]<?php foreach( $this->array as $mixValue ) { $arrTemp[] = '{'.$mixValue.'}'; } $this->array = $arrTemp; ?>[/php:1:1b2c452986] -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
wlasnie!!
Wiedzialem ze musi byc koniecznie petla hehe thx scanner ![]() -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 208 Pomógł: 0 Dołączył: 19.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Nie musi być pętla
![]() W metodzie Content() możesz dać tak:[php:1:b6c4a98e90]<?php function Content($name, $value) { // Dodaj sobie te 2 var 'y i ustal jakies sensowne nazwy $this->array[] = '{' . $name . '}'; $this->array2[] = $value; } ?>[/php:1:b6c4a98e90] A później tylko[php:1:b6c4a98e90]<?php return $this->dane = str_replace( $this->array, $this->array2, $this->dane ); ?>[/php:1:b6c4a98e90] |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
hehe rzeczywiscie
![]() trzeba bylo tylko przestawic nawiasy klamrowe ![]() thx -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 204 Pomógł: 0 Dołączył: 26.12.2003 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
albo tak:
[php:1:9ad72f476a]<?php public function assign($assignment, $value) { $this->assignments[chr(123) . $assignment . chr(125)] = $value; } public function compile($print = FALSE) { $tpl_output = str_replace(array_keys($this->assignments), array_values($this->assignments), $this->tpl_contents); if($print) { print $tpl_output; } else { return $tpl_output; } } ?>[/php:1:9ad72f476a] zastanawiam się jeszcze, czy nie prościej by było: [php:1:9ad72f476a]<?php $this -> dane = file_get_contents($file_path.'/'.$file_name); ?>[/php:1:9ad72f476a] |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
...moze i tak ale dopiero zaczynam zabawe z klasami wiec ten przyklad jeszcze narazie odpada
![]() -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:48 |