Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd przy parsowaniu szablonu
Forum PHP.pl > Forum > PHP
Fraglesss
Pisząc prostą modyfikacje do przema napotkałem błąd, mianowicie, to co napisałem działa, bo w panelu administracyjnym to mam i wszystko jest ok. Problem pojawia się jak daje ten kod w plik dostępny dla każdego użytkownika, wtedy wyskakuje mi błąd:
Kod
Parse error: syntax error, unexpected '=' in /home/cstrajkp/public_html/przemo/cache/tpl_csGrass.admins_list_body.php on line 27

Treśc tych linijek (25-34)
  1. <?php
  2.  
  3. $servers.admins_count = ( isset($servers_item['admins.']) ) ? sizeof($servers_item['admins.']) : 0;
  4. for ($servers.admins_i = 0; $servers.admins_i < $servers.admins_count; $servers.admins_i++)
  5. {
  6. $servers.admins_item = &$servers_item['admins.'][$servers.admins_i];
  7. $servers.admins_item['S_ROW_COUNT'] = $servers.admins_i;
  8. $servers.admins_item['S_NUM_ROWS'] = $servers.admins_count;
  9.  
  10. ?>


Tutaj treść pliku PHP:
  1. $sql_names = 'SELECT id, name FROM ' . STATUS_TABLE;
  2. if ( !($result_names = $db->sql_query($sql_names)) )
  3. {
  4. message_die(GENERAL_ERROR, "Could not query Servers information .", "",__LINE__, __FILE__, $sql);
  5. }
  6. while ($row_names = $db->sql_fetchrow($result_names))
  7. {
  8. $servername = $row_names['name'];
  9. $serverid = $row_names['id'];
  10.  
  11. $template->assign_block_vars('servers', array(
  12. 'SERVER_NAME' => $servername
  13. ));
  14.  
  15. $sql = 'SELECT * FROM ' . SERVER_ADMINS_TABLE . ' WHERE server = ' . $serverid;
  16. if ( !($result = $db->sql_query($sql)) )
  17. {
  18. message_die(GENERAL_ERROR, "Could not query Admins information .", "",__LINE__, __FILE__, $sql);
  19. }
  20. while ($row = $db->sql_fetchrow($result))
  21. {
  22. $id = $row['id'];
  23. $username = $row['name'];
  24. $server = $row['server'];
  25.  
  26. $template->assign_block_vars('servers.admins', array(
  27. 'ID' => $id,
  28. 'NAME' => $username,
  29. 'STEAM' => $row['steam'],
  30. 'GG' => $row['gg'],
  31. ));
  32.  
  33. }
  34. }

Oraz fragment TPL:
  1. <table class="forumline" width="100%" cellspacing="1" cellpadding="4" border="0">
  2. <tr>
  3. <th class="thHead" height="25" colspan="4" width="100%"><span class="tableTitle">Admins list MOD</span></th>
  4. </tr>
  5. <!-- BEGIN servers -->
  6. <tr>
  7. <td class="row2" align="center" colspan="4" width="100%"><span class="cattitle">{servers.SERVER_NAME}</span></td>
  8. </tr>
  9. <tr>
  10. <td class="cat" align="center" width="25%"><span class="cattitle">id</span></td>
  11. <td class="cat" align="center" width="25%"><span class="cattitle">Nick Admina</span></td>
  12. <td class="cat" align="center" width="25%"><span class="cattitle">STEAM</span></td>
  13. <td class="cat" align="center" width="25%"><span class="cattitle">GG</span></td>
  14. </tr>
  15.  
  16. <!-- BEGIN servers.admins -->
  17. <tr>
  18. <td class="row2" width="25%" align="center">
  19. <span class="gen">{admins.ID}</span>
  20. </td>
  21. <td class="row2" width="25%" align="center">
  22. <span class="gen">{admins.NAME}</span>
  23. </td>
  24.  
  25. <td class="row2" width="25%">
  26. <span class="gen"><div class="steamprofile" title="{admins.STEAM}"></div></span>
  27. </td>
  28.  
  29. <td class="row2" width="25%" align="center">
  30. <span class="gen"><img src="http://status.gadu-gadu.pl/users/status.asp?id={admins.GG}&styl=3" alt="{admins.GG}" /></span>
  31. </td>
  32. </tr>
  33. <!-- END servers.admins -->
  34. <!-- END servers -->


Efekt wygląda podbnie do tego:
LINK

Nie mam już pomysłu co jest nie tak, proszę o pomoc.
nospor
Co wg. ciebie oznacza w php ten zapis:
$servers.admins_count = .....
?
Fraglesss
Kod
<!-- BEGIN servers.admins -->


To jest to, tyle wycztałem z manuala phpbb, że tak należy stosować pętle w szablonie.
nospor
wlasnie... w SZABLONIE. A ty ten kod osadziles w kodzie php...
taki zapis w szablonie:
$tablica.index
w kodzie php nalezy zapisac tak:
$tablica['index']
Fraglesss
nospor, to ja chyba źle tłumacze.

Ten pierwszy fragment który zamieściłem to jest część tego ostatniego, lecz już po przeparsowaniu i umieszczeniu w cache. On wywołuje błąd więc musze mieć coś źle z tym <!-- BEGIN servers.admins --> itp. lecz jestem w miarę pewny że zrobiłem tak jak w manualu.

Przepraszam za double posta, ale publikuje rozwiązanie.

  1. [...]
  2. while ($row_names = $db->sql_fetchrow($result_names))
  3. {
  4. [...]
  5. $template->assign_block_vars('servers', array(
  6. 'SERVER_NAME' => $servername
  7. ));
  8.  
  9. [...]
  10.  
  11. while ($row = $db->sql_fetchrow($result))
  12. {
  13. [...]
  14.  
  15. $template->assign_block_vars('servers.admins', array(
  16. [...]
  17. 'GG' => $row['gg']
  18. ));
  19.  
  20. }
  21. }


Oraz plik TPL:

  1. <!-- BEGIN servers -->
  2.  
  3. <tr>
  4. <td class="thHead" align="center" colspan="4" width="100%"><span class="cattitle">{servers.SERVER_NAME}</span></td>
  5. </tr>
  6. <tr>
  7. [...]
  8. <td class="cat" align="center" width="25%"><span class="cattitle">GG</span></td>
  9. </tr>
  10.  
  11. <!-- BEGIN admins -->
  12.  
  13. <tr>
  14. [...]
  15.  
  16. <td class="row2" width="25%" align="center">
  17. <span class="gen"><img src="http://status.gadu-gadu.pl/users/status.asp?id={servers.admins.GG}&styl=3" alt="{servers.admins.GG}" /></span>
  18. </td>
  19. </tr>
  20.  
  21. <!-- END admins -->
  22.  
  23. <!-- END servers -->


Wystarczyło przeanalizować kilka plików przema więcej, sory za kłopot worriedsmiley.gif
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.