Witam

Mam taki mały, a nawet wielki i troche denerwujący problem. Chodzi o wykorzystanie klasy FastTemplate w celu odzielenia kodu HTML od php.

Mianowice stworzyłem skrypt generujący księge gości na podstawie plików *tpl (szablonów). Według mnie wszystkie instrukcje kodu są w jak największym porządku, natomiast podczas uruchamiania skryptu serwer Krasnal zwraca błąd: Fatal error: Cannot redeclare clear_parse() in c:\usr\krasnal\www\kg\class.FastTemplate.php on line 636.

Nie wiem co mam z tym zrobić, więc pomyślałem, że może wy mi powiedzie gdzie tkwi błąd. Przecież dostarczona klasa nie może zawierać żadnego błędu ;]

Poniżej zamieszczam fragment kodu klasy FastTemplate, a dokładnie kod funkcji której Krasnal prawdopodobnie nie może zadeklarować oraz pliki z kodem, który wykorzystują ową klasę do stworzeniu księgi gości opartej na szablonach.

class.FastTemplate.php (przedstawiony kod w rzeczywistości zaczyna się od lini 636, a kończy na 639)
  1. <?php
  2.  
  3. function clear_parse ()
  4. {
  5. $this->clear_assign();
  6. }
  7.  
  8. ?>


kg_base.tpl
Kod
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  <title>{TITLE}</title>
</head>
<body bgcolor="white">
  <table width="550" align="center" border="0" cellspacing="0" cellpadding="0">
   <tr>
    <td align="center">
     <h3><a href="{KG_HEADER}">{KG_HEADER}</a></h3>
    </td>
   </tr>
   <tr>
    <td>
     <p>{DANE}</p>
    </td>
   </tr>
  </table>
</body>
</html>


kg_data.tpl
Kod
<p align="justify">
{WPIS}<br><br>
Data: <i>{DATA}</i> | Autor: <a href="mailto:{EMAIL}">{NICK}</a>
</p>


index.php
  1. <?php
  2. include ( &#092;"class.FastTemplate.php\" );
  3. include ( &#092;"db_mysql.inc\" );
  4.  
  5. class kg_db extends DB_Sql
  6. {
  7. var $Host  = &#092;"localhost\";
  8. var $Database  = &#092;"kg\";
  9. var $User  = &#092;"login\";
  10. var $Password  = &#092;"password\";
  11. }
  12.  
  13. $aTPL = new FastTemplate ( &#092;".\" );
  14.  
  15. $aTPL -> define ( array ( 'base' => 'tpl/kg_base.tpl',
  16. 'dane' => 'tpl/kg_data.tpl'
  17. ) );
  18.  
  19. $aTPL -> assign ( array ( 'TITLE'  => 'Księga go?ci',
  20. 'KG_HEADER' => 'Księga go?ci',
  21. 'KG_HREF'  => 'index.php'
  22. ) );
  23.  
  24. $aDB = new kg_db;
  25. $aDB -> query( &#092;"select * from kg\" );
  26. while( $aDB -> next_record() )
  27. {
  28. $aData = $aDB->f( &#092;"data\" );
  29. $aNick = $aDB->f( &#092;"nick\" );
  30. $aEmail = $aDB->f( &#092;"email\" );
  31. $aWpis = $aDB->f( &#092;"wpis\" );
  32.  
  33. $aTemplate->assign( array( &#092;"DATA\" => $aData,
  34.  &#092;"NICK\" => $aNick,
  35.  &#092;"EMAIL\" => $aEmail,
  36.  &#092;"WPIS\" => $aWpis
  37. ) );
  38.  
  39. $aTemplate->parse( &#092;"DANE\", \".dane\" );
  40. }
  41.  
  42. $aTpl -> parse( &#092;"DANE\", \"dane\" );
  43. $aTpl -> parse( &#092;"BASE\", \"base\" );
  44. $aTpl -> FastPrint( &#092;"BASE\" );
  45. ?>


Zaznaczam, że includowny plik: db_mysql.inc to klasa do obsługi bazy MySQL, więc nie będe zamieszczał tu jej kodu.