Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] dziwny błąd? smarty nie działaja..
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
Adrian Staniszewski
Witam,

Temat brzmi dziwnie ale sam nie wiem jak to nazwać co się dzieje.. Jedno wiem napewno. Strasznie to ...

Chodzi mianowicie o smarty i dziwne, magiczne wrecz wypadki.
Skrypty dość nieoczekiwanie przestają działać, gdy zmieniam coś w plikach wszystko działa aż do pewnego momentu gdy zaczynają się sypać błędy smarty nie związane z tym co robiłem i najśmiejszniejsze jest to że po cofnięciu zmian.. błędy pozostają.. a najcześciej jeden..

nie wyświetla się treść ;/ coś jakby przestały działać instrukcje warunkowe w IF/elseIF

mam np. zmienna $krok i wyswietla mi na stronie krok w ktorym jestem i to dziala, pojawia sie np. 2
i ta sama zmienna jest odpowiedzialna za wyswietlanie tresci i tu uwaga.. nic.. puste pole i nie dziala ;/ ten blad pojawia się co chwilke w roznych skryptach i zawsze z IF, czasem dziala w jednych if a w innych nie..

laduje mi dany kawalek kodu z if ale juz nie dziala sprawdzanie innej zmiennej w tym bloku

daje przykladowy kod :

  1. <?php
  2. /**
  3.  * @project     UnderLab CMS
  4.  * @version        v.0.02
  5.  * @file         install.php
  6.  * @author         Adrian Staniszewski
  7.  * @copyright     02.08.2009
  8.  * @email         lookbody@gmail.com
  9.  *
  10.  *
  11.  *     Plik jest częscią systemu CMS, chronionym prawami autorskimi.
  12.  *     Kopiowanie, rozpowszechnianie lub też użytkowanie bez licencji
  13.  *     lub zgody autora jest zabronione i niesie za sobą czyny piractwa.
  14.  */
  15.     ob_start();
  16.     session_start();
  17.  
  18.     include_once('../_config/info.php');
  19.     include_once('../_smarty/Smarty.class.php');
  20.     // start TPL
  21.     $tpl = new Smarty;
  22.         $tpl->template_dir    = 'files';
  23.         $tpl->compile_dir    = 'tmp';        
  24.    
  25.     if($_GET['krok'] and $_SESSION['_krok']>=$_GET['krok']) $krok = $_GET['krok'];
  26.    else if(!empty($_SESSION['krok'])) $krok = $_SESSION['_krok'];
  27.     else $krok = 1;
  28.  
  29.    if($krok=='1') {
  30.        $_SESSION['_krok'] = '2';
  31.    } else if($krok=='2') {
  32.        $sysInfo['php']         = php_uname();
  33.        $sysInfo['php_os']         = PHP_OS;
  34.        $sysInfo['php_version']    = phpversion();
  35.        $sysInfo['zend']        = zend_version();
  36.    //    $sysInfo['gd']            = gd_info();
  37.        $sysInfo['apache']        = apache_get_version();
  38.        $sysInfo['module']        = apache_get_modules();
  39.        
  40.        foreach($cmsInfo['loadModules'] as $module) {
  41.            if(array_search($module, $sysInfo['module'])) $cmsInfo['loadModules'][$module] = 'Tak';
  42.            else $cmsInfo['loadModules'][$module] = 'Nie';
  43.        }
  44.        
  45.        if(version_compare($cmsInfo['server']['PHP'],$sysInfo['php_version']) === 1) $cmsInfo['server']['php_'] = 'Nie';
  46.        else $cmsInfo['server']['php_'] = 'Tak';
  47.        
  48.    //    echo "<pre>";
  49.    //    print_r($sysInfo);
  50.    //    print_r($cmsInfo);
  51.    //    echo "</pre>";
  52.    //    $tpl->assign('sysInfo', $sysInfo);
  53.    }
  54.  
  55.        $tpl->assign('krok', $krok);
  56.        $tpl->assign('cmsInfo', $cmsInfo);
  57.     $tpl->display('install.tpl');
  58.     ob_end_flush();
  59. ?>


i szablon

  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; charset=UTF-8" />
  4. <title>UnderLab CMS - Instalacja</title>
  5. <link href="files/style.css" rel="stylesheet" type="text/css" />
  6. </head>
  7. <body>
  8. <div id="header">
  9. <div style="float: left;">
  10. <h3><a href="#">{$cmsInfo.name}</a></h1>
  11. <h4>Instalator systemu</h2>
  12. </div>
  13. <div style="float: right;">
  14. <img src="files/logo.jpg" alt=""/>
  15. </div>
  16. </div>
  17. <div id="content">
  18. <div id="usual1" class="usual">
  19. <p id="krok">
  20. Krok <span id="big">{$krok}</span>/7
  21. </p>
  22. <ul>
  23. <li><a href="install.php?krok=1"{if $krok == '1'} class="selected"{/if}>Krok 1</a></li>
  24. <li><a href="install.php{if $krok >= '2'}?krok=2{else}{/if}"{if $krok == '2'} class="selected"{/if}>Krok 2</a></li>
  25. <li><a href="install.php{if $krok >= '3'}?krok=3{else}{/if}"{if $krok == '3'} class="selected"{/if}>Krok 3</a></li>
  26. <li><a href="install.php{if $krok >= '4'}?krok=4{else}{/if}"{if $krok == '4'} class="selected"{/if}>Krok 4</a></li>
  27. <li><a href="install.php{if $krok >= '5'}?krok=5{else}{/if}"{if $krok == '5'} class="selected"{/if}>Krok 5</a></li>
  28. <li><a href="install.php{if $krok >= '6'}?krok=6{else}{/if}"{if $krok == '6'} class="selected"{/if}>Krok 6</a></li>
  29. <li><a href="install.php{if $krok >= '7'}?krok=7{else}{/if}"{if $krok == '7'} class="selected"{/if}>Krok 7</a></li>
  30. </ul>
  31. {if $krok == '1'}
  32. <div id="krok1">
  33. Witamy w instalatorze systemu <strong>{$cmsInfo.name}</strong> {$cmsInfo.version}<br />
  34. <p id="licence">
  35. Licencja nr: <strong>{$cmsInfo.licence}</strong><br />
  36. </p>
  37.  
  38. <p></p>Aby system działał poprawnie, serwer www musi spełniać określone kryteria oraz muszą być ustawione odpowiednie prawa dostępu do katalogów oraz plików systemu.<span class="red">*</span></p>
  39. <p>Podczas instalacji trzeba wprowadzić też pewne dane konfiguracyjne nowej instalacji systemu {$cmsInfo.name}.
  40. <p>Dane potrzebne do konfiguracji systemu to:</p>
  41. <p id="list">
  42. <strong>Krok 3</strong> - dane do połączenia z serwerem MySQL<br />
  43. <strong>Krok 4</strong> - dane IMAP do połączenia z serwerem eMail<br />
  44. <strong>Krok 5</strong> - dane głównego administratora strony<br />
  45. <strong>Krok 6</strong> - dane twojej strony www<br />
  46. </p>
  47. <p>
  48. Przed przystąpieniem do instalacji przygotuj sobie podane dane. Dalsze informacje zostaną podane w poszczególnych krokach instalatora systemu.
  49. </p>
  50. <p id="dalej">
  51. <a href="install.php?krok=2"><button>Krok 2 -> Ustawienia serwera, Prawa dostępu do plików</button></a>
  52. </p>
  53. <p class="info">1)<span class="red">*</span> System spróbuje automatycznie ustawić potrzebne prawa dostępu do katalogów, jeśli jednak z powodu ograniczeń serwera ta operacja nie uda się, użytkownik systemu powinien własnoręcznie ustawić wymagane prawa dostępu do plików i katalogów.</p>
  54.  
  55. </div>
  56. {elseif $krok == '2'}
  57. <div id="krok2">
  58. <strong>2. Ustawienia serwera : Prawa dostępu do plików</strong>
  59. <p>
  60. Twój serwer to:
  61. - system: <strong></strong><br />
  62.  
  63. </p>
  64. </div>
  65. {/if}
  66. </div>
  67. </div>
  68. <div id="footer">
  69. {$cmsInfo.name} {$cmsInfo.version}
  70. </div>
  71. </body>
  72. </html>


co dziwne czasami wyswietla się 1 krok, ale juz 2 nie ;/ w 2 kroku wyswietla mi tylko numer ze krok 2/7 ale ze zawartoscia div nic.. w zrodle tez nic nie ma..

mam ten sam problem z innymi skryptami i szablonami, w roznym momencie przestaja mi dzialac elementy szablonow ;/ nie dziala tez debugowanie, wyswietla blad compilera i nieznana zmienna w szablonie debug.tpl ktorego nie zmienialem

prosze o pomoc
Zyx
Wersja PHP, zainstalowane rozszerzenia, konfiguracja, system operacyjny... jeśli twierdzisz, że dzieje się to bez logicznej przyczyny, leżeć ona musi w jakichś czynnikach zewnętrznych.

PS. {else}{/if} - WTF?
Adrian Staniszewski
{else}{/if} pozostalosc na razie po czyms z czego w tej chwili nie korzystam, zostawione na przyszlosc

sprawdzalem to na:
win XP, webserv, php 5.2.3

oraz

win vista, xamp (nie pamietam jaka wersja php..)..

dzieje sie bez logicznej przyczyny bo cos dziala i nagle przestaje? ;/ albo dziala w kilku innych miejscach a tym jednym przestaje.. choc jest poprawnie napisane no i ten dziwny przypadek z debugerem ktory przestal dzialac ez sam z siebie praktycznie
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.