Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty
Karenin
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 7.06.2003

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


Zaczalem czytac o Smarty i sie zastanawiam czy to jest wogole potrzebne. Na pierwszy rzut oka to tylko komplikuje zycie. Po co mam sie meczyc z templatami jak moge dac zamiast <title>{title}</title> <title><? echo $title; ?></title> Czy to sie Wam przydaje? Zastanawiam sie nad jego uzywaniem. Przekonajcie mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Bora
post
Post #2





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 15.06.2003

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


Skoro mnie krytykujesz w takim razie zoabcz to:

[php:1:01ca64839e]<?php
class template
{
var $file;
var $inc = array("default" => "");
var $blocks = array("default" => "");
var $moduls = array("default" => "");
function load($file){
$file = "templates/".$file.".tpl";
if(file_exists($file)){
$plik = fopen($file, 'r');
$unparsed = fread($plik, filesize($file));
fclose($plik);
}else{
die("brak pliku $file");
}
// wylapuje moduły
preg_match_all( "#[INCLUDE:(.+?)]#is", $unparsed, $include);
$unparsed = preg_replace("#[INCLUDE:(.+?)]#is","{INCLUDE:$1}", $unparsed);
$unparsed = str_replace("n", "|ent|", $unparsed);
preg_match_all( '/[MODUL.*](.+)[/MODUL.*]/Uise', $unparsed, $znalezione);
// zamienia moduły na ich odpowiedniki
$unparsed = preg_replace('/[MODUL:(.*?)](.*?)[/MODUL:(.*?)]/i','{MODUL:$1}', $unparsed);
$unparsed = str_replace("|ent|", "n", $unparsed);
$znalezione[0] = str_replace("|ent|", "n", $znalezione[0]);
$znalezione[1] = str_replace("|ent|", "n", $znalezione[1]);
$mod = array();
foreach ($znalezione[0] as $i_parser){
preg_match("/[MODUL:(.*?)]/i",$i_parser, $znal);
$pref = $znal[1];
$m = preg_replace('/[MODUL:(.*?)]/i','', $i_parser);
$m = preg_replace('/[/MODUL:(.*?)]/i','', $m);
$mod["$pref"]=$m;
}
foreach ($include[0] as $i_parser){
preg_match("/[INCLUDE:(.*?)]/i",$i_parser, $znal);
$in = preg_replace("#[INCLUDE:(.+?)]#is","$1", $i_parser);
$pref = $znal[1];
$prefix = $znal[1];
$pref = "templates/".$pref.".tpl";
if(file_exists($pref)){
$plik = fopen($pref, 'r');
$inc[$prefix] = fread($plik, filesize($pref));
fclose($plik);
}else{
die("brak pliku $file");
}
}
$this -> moduls = $znalezione[1];
$this -> mods = $mod;
$this -> unparsed = $unparsed;
$this -> inc = $inc;
return $this -> moduls;
return $this -> inc;
return $this -> mods;
return $this -> unparsed;
}
function parse($unparsed,$blocks = array()){
if(preg_match_all('#{(.+?)}#is', $unparsed, $found)){
$parsed = $unparsed;
foreach($found[1] as $block){
$parsed = str_replace('{'.$block.'}', $blocks[$block], $parsed);
}
}
return $parsed;
}
}
class modul
{
var $file;
var $mod;
var $blocks = array("default" => "");
var $moduls = array("default" => "");
function parse($unparsed,$blocks = array()){
if(preg_match_all('#{(.+?)}#is', $unparsed, $found)){
$parsed = $unparsed;
foreach($found[1] as $block){
$parsed = str_replace('{'.$block.'}', $blocks[$block], $parsed);
}
}
return $parsed;
}
}
?>[/php:1:01ca64839e]

szablon wygląda tak:

Kod
[INCLUDE:header]



<table align="center" width="60%" style="border:1px solid #000000">



<!--- [MODUL:z] gorna czesc-->

<tr>

<td class="forum1">{z:czas}</td>

<td class="forum1">{z:cos}</td>

<td class="forum2">{z:ile}

</td>

</tr>

<!--- [/MODUL:z] gorna czesc-->



<!--- [MODUL:ass] dolna czesc-->

<tr>

<td class="forum1">{ass:czas}</td>

<td class="forum1">{ass:cos}</td>

<td class="forum2">{ass:ile}

</td>

</tr>

<!--- [/MODUL:ass] dolna czesc-->







</table>



<br><br><br>



[INCLUDE:footer]


Nie uznaje siebie za eksperta w smartach bo nawet ich nie używałem.
Jedynie wziąłem sie za pisanie właśnego parsera.

przy okazji mam prozbe jeżeli ktoś potrzafi poprawić mój kod wyrażeniami regularnymi bo niestety z tym mam problem.

I słowa krytyki czy taki system jest dobry.
Go to the top of the page
+Quote Post

Posty w temacie
- Karenin   Smarty   8.06.2003, 12:28:35
- - BzikOS   Co prawda nie używam Smarty, tylko własnego system...   8.06.2003, 17:01:51
- - HaRy   ja smarts'ow unzywam z wielkim powodzeniem ... z...   8.06.2003, 20:01:13
- - spenalzo   Robię teraz trochę skomplikowany sklep i wcale nie...   8.06.2003, 20:59:41
- - BzikOS   CytatW wypadku gdy potrzebuję zmienić design czy s...   9.06.2003, 14:29:44
- - kurtz   Re: Smarty   9.06.2003, 14:37:22
- - rzseattle   zwykłe szablony nie spelniaja moich żadnych podsta...   9.06.2003, 18:03:52
- - kurtz   Re: Smarty   18.06.2003, 10:47:13
- - Bora   troche sobie poczttałem o smartach. Sam korzystam ...   27.06.2003, 19:21:43
- - DeyV   No nie wiem, czy można powiedzieć, ze jest to ston...   27.06.2003, 20:03:10
- - Puciek   W życiu nie używałem smarty (tylko raz jako test) ...   27.06.2003, 20:05:21
- - Bora   widocznie te linki byly akurat słabe. Smarty są do...   27.06.2003, 21:02:45
- - DeyV   Jeśli bedziesz miał chwilę = poczytaj :arrow: ht...   27.06.2003, 21:09:51
- - kurtz   CytatW życiu nie używałem smarty (tylko raz jako t...   30.06.2003, 10:33:05
- - kurtz   CytatPo małej modyfikacji może działąć chyba tyle ...   30.06.2003, 10:33:55
- - Bora   <?php <? class template { var $unparse...   30.06.2003, 15:02:05
- - mazy   całkowicie zgadzam się z przedmówcą ! ps. niech k...   30.06.2003, 15:13:16
- - dragossani   Dla zainteresowanych: porównanie wydajności. Przy...   30.06.2003, 16:06:12
- - Bora   ja porównywałem dokładnie smarty z tym na webcity ...   30.06.2003, 16:57:27
- - kwiateek   Bora ale gdzie masz takie sytuacje zblizone do Two...   30.06.2003, 21:29:36
- - Bora   we wszystkich 3 parserach odpaliłem ten sam szablo...   30.06.2003, 21:59:50
- - HaRy   hmm ... na smartach robilem www.poznajswiat.com.pl...   1.07.2003, 08:31:16
- - kurtz   Cytatja porównywałem dokładnie smarty z tym na web...   1.07.2003, 09:12:18
- - Bora   Skoro mnie krytykujesz w takim razie zoabcz to: ...   1.07.2003, 10:15:27


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: 23.08.2025 - 02:09