Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Templates - kilka pytań, Porady tworzenia systemu skór.
Sali_
post 31.01.2005, 22:51:08
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.11.2004
Skąd: Warszawa-Tarchomin

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


Mam klika pytań odnośnie tworzenia własnego systemu szablonów. Najpier podam kod:

Plik templates_class.php
  1. <?php
  2.  
  3. class Templates
  4. {
  5.         var $fiopen;
  6.         var $sciezka;
  7.         
  8.         function NameFile($val, $sciezka)
  9.         {
  10.                 $this->fiopen=$val;
  11.                 $this->sciezka=$sciezka;
  12.         }
  13.         
  14.         function OpenFile($value)
  15.         {
  16.                 global $errormsg;
  17.                 
  18.                 while(list($klucz, $wartosc) = each($value))
  19.                 {
  20.                         $nazwa_zm[$klucz]=$klucz;
  21.                         $wartosc_zm[$klucz]=$wartosc;
  22.                 }
  23.                 
  24.                 $p=$this->sciezka.$this->fiopen;
  25.                 if(file_exists($p))
  26.                 {
  27.                         $plik = file($p);                // Ładuje plik
  28.                         $linie = count($plik);          // Zlicza linie
  29.                         for($n=0; $n<=$linie; $n++)
  30.                         {
  31.                                 if (eregi(&#092;"{(.*)}\", $plik[$n], $zm));
  32.                                 {
  33.                                         $plik[$n]=str_replace('{'.$nazwa_zm[$zm[1]].'}', $wartosc_zm[$zm[1]], $plik[$n]);
  34.                                         print($plik[$n]);
  35.  
  36.                                 }
  37.                         }
  38.                 }else{
  39.                         printf($errormsg['nie ma pliku'], $p);
  40.                         exit;
  41.                 }
  42.  
  43.         }
  44.  
  45. }
  46.  
  47. ?>


Plik index.php

  1. <?php
  2.  
  3. include&#092;"langpack/polski/errorpack/war_err.msg\";
  4. include&#092;"langpack/polski/main.lang\";
  5. include&#092;"include/templates_class.mod\";
  6.  
  7. $TEMPL= new Templates;
  8.  
  9. $TEMPL->NameFile(&#092;"naglowek.tpl\", \"templates/SubSun/\");
  10. $TEMPL->OpenFile(array(
  11.                         &#092;"Tytul\" => $lang['Tytul'],
  12.                         &#092;"Kodowanie\" => $lang['Kodowanie'],
  13.                         &#092;"Reply-to\" => $lang['Reply-to'],
  14.                         &#092;"Generator\" => $lang['Generator'],
  15.                         &#092;"Autor_script\" => $lang['Autor_script'],
  16.                         &#092;"Description\" => \"Tu bedzie jakis opis\"
  17.                        ));
  18.  
  19.  
  20. $TEMPL->NameFile(&#092;"home.tpl\", \"templates/SubSun/\");
  21. $TEMPL->OpenFile(array(
  22.                        'zm1' => &#092;"Test 1\",
  23.                        'zm2' => &#092;"Test 2\"
  24.                        ));
  25.                        
  26.  
  27.  
  28. $TEMPL->NameFile(&#092;"stopka.tpl\", \"templates/SubSun/\");
  29. $TEMPL->OpenFile(array(
  30.                         &#092;"INFO\" => \"<b>$tempver</b><br />&copy; Copyrights phpSuNs 2005\"
  31.                        ));
  32.  
  33. ?>


Plik naglowek.tpl
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="content-type" content="text/html; {Kodowanie}" />
  4. <meta http-equiv="reply-to" content="{Reply-to}" />
  5. <meta name="generator" content="{Generator}" />
  6. <meta name="author" content="{Autor_script}" />
  7. <meta name="description" content="{Description}" />
  8. <title> {Tytul} </title>
  9. </head>


Plik home.tpl
  1. <span style="font: 24px; font-family: Arial Black; color: #A52A2A">SuNsTEMPL v1.0</span>
  2. <hr />
  3. System szablonów SuNsTEMPL jest prostym skryptem do zarządzania motywami na stronach www
  4.  
  5. <br />
  6. <br />
  7.  
  8. {zm1}
  9. {zm2}


Plik stopka.tpl
  1. <br /><br /><br />
  2. <center>{INFO}</center>
  3.  
  4. </body>
  5. </html>


Pytanie 1.
Skrypt dział bez problemu, lecz jest jedna wada specjalne znaczniki, które interpretuje mój skrypt są zawarte w nawiasach klamrowych np. {nazwa_zmiennej} nie są interpretowane gdy są w tej samej linii jak tego się pozbyć?

Pytanie 2.
Czy kod skryptu jest w miarę zrozumiały co wy byście w nim zmienili?


Pytanie 3.
Jak w preg_match_all odczytac taka formułe {zmienna}

---------------------------------------------------------------------------------------------
  1. <?php
  2.  
  3. class Templates
  4. {
  5. var $fiopen;
  6. var $sciezka;
  7.  
  8. function NameFile($val, $sciezka)
  9. {
  10. $this->fiopen=$val;
  11. $this->sciezka=$sciezka;
  12. }
  13.  
  14. function OpenFile($value)
  15. {
  16. global $errormsg;
  17.  
  18. while(list($klucz, $wartosc) = each($value))
  19. {
  20. $nazwa_zm[$klucz]=$klucz;
  21. $wartosc_zm[$klucz]=$wartosc;
  22. }
  23.  
  24. $p=$this->sciezka.$this->fiopen;
  25. if(file_exists($p))
  26. {
  27. $plik = file($p); // Ładuje plik
  28. $linie = count($plik); // Zlicza linie
  29. for($n=0; $n<=$linie; $n++)
  30. {
  31. preg_match_all(&#092;"|{(.*)}|U\", $plik[$n], $zm);
  32. for($i=0; $i <= 100; $i++)
  33. $plik[$n]=str_replace('{'.$nazwa_zm[$zm[1][$i]].'}',
  34. $wartosc_zm[$zm[1][$i]],
  35. $plik[$n]);
  36. print($plik[$n]);
  37. }
  38. }else{
  39. printf($errormsg['nie ma pliku'], $p);
  40. }
  41.  
  42. }
  43.  
  44. }
  45. ?>


No już problem rozwiązany odczytuje tyle ile chcem smile.gif, ale jak bardziej optymalnie można przerobić ten skrypt?

Ten post edytował Sali_ 31.01.2005, 23:49:38
Go to the top of the page
+Quote Post
hawk
post 1.02.2005, 10:58:59
Post #2





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Olać całkowicie i użyć jednego z kilkuset (pewnie) gotowych?
Go to the top of the page
+Quote Post
Sali_
post 1.02.2005, 11:06:54
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.11.2004
Skąd: Warszawa-Tarchomin

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


Mogę olać, ale co to za radość jeśli nie jest to własnoręcznie stworzony skryptu. Postanowiłem zrobić swój system i łatwo się nie poddaje smile.gif, ale jest on taki zły, że radzisz mi użyć gotowych.

Ten post edytował Sali_ 1.02.2005, 12:24:12
Go to the top of the page
+Quote Post
hawk
post 1.02.2005, 12:38:08
Post #4





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Nie, nie mówię, że jest zły. Nie analizowałem go szczegółowo.

Spójrz na to tak: jeżeli nie masz jakiegoś wyjątkowego pomysłu, czegoś co wyróżnia twój pomysł i czyni go lepszym od konkurencyjnych, to nikogo tak naprawdę nie obchodzi co tam wymysliłeś. Life is brutal sad.gif.

Robić takie coś dla przyjemności i dla nauki oczywiście można. Czemu nie. Nie od razu ez zbudowano. Ale na ogół takie próby mają znikome szanse wyjścia poza jednoosobowy krąg odbiorców.

Jeżeli zastanawiasz się, jak polepszyć obecny skrypt, zrób to inaczej. Nie zarzucaj kodem, tylko zastanów się, jakie są główne założenia, co chciałeś uzyskać, itd. Sam kod jest kwestią drugorzędną.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:28