Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze smartami (zmienne)
Forum PHP.pl > Forum > Przedszkole
servs
Witam!

Smarty zachowuje się tak jakby w ogóle nie przenosił zmiennych.

Zaczyna się od pliku up.php.

  1. $view = new Smarty();
  2. require_once('modules/main_mod.php');
  3. $view->template_dir = dirname(__FILE__).'/templates';
  4. $view->compile_dir = dirname(__FILE__).'/templates_com';
  5. $view->cache_dir = dirname(__FILE__).'/cache';
  6. $view->caching = CACHE_ENABLE;
  7. $view->cache_lifetime = 6000;
  8.  
  9. $menu = get_menu();
  10. $view->assign('menu',$menu);
  11.  
  12. $view->display('up.tpl',$cache_id);


get_menu() jest oczywiście wcześniej odpowiednio definiowane (na 100% działa przy wywołaniu bezpośrednim)

plik up.tpl:
  1. {include file="$page.tpl"}


Wyświetla błąd:
Cytat
Fatal error: Smarty error: [in up.tpl line 1]: syntax error: unrecognized tag 'menu' (Smarty_Compiler.class.php, line 590) in /home/admin/domains/domena.pl/public_html/testing/libs/Smarty.class.php on line 1095


Nie rozumiem dlaczego coś takiego mi się pojawia, proszę o pomoc.

Pozdrawiam!
nospor
$view->assign('menu',$menu); - przeciez tak deklarujesz zmienną, czyli
nie: {menu}{/menu}
a: {$menu}

trochę podstaw odnosnie tego co uzywasz to by sie przydalo...
servs
Ok, dzięki, jednak nie likwiduje to mojego głównego problemu związanego z tymi plikami + jeszcze jednym - main-mod.php o którym mowa w pliku pierwszym (up.php)

main_mod.php
  1. $view->assign('page','main');


i wywala coś takiego:

Cytat
Warning: Smarty error: unable to read resource: ".tpl" in /home/admin/domains/strona.pl/public_html/testing/libs/Smarty.class.php on line 1095


(zmieniałem kody w pierwszej wiadomości)
nospor
patrzac na kod bledu i na kod:
{include file="$page.tpl"}
to smiem twierdzic ze zmienna $page nie została sparsowana tudzież jej nie ma smile.gif
servs
Zmienna jest definiowana w pliku main_mod.php, a owy plik wykonywany jest w pliku up.php, więc zmienna jest zdefiniowana i zadeklarowana.

Powtarzam, żeby było w jednym miejscu

main_mod.php
  1. $view->assign('page','main');


up.php
  1. $view = new Smarty();
  2. require_once('modules/main_mod.php');
  3. $view->template_dir = dirname(__FILE__).'/templates';
  4. $view->compile_dir = dirname(__FILE__).'/templates_com';
  5. $view->cache_dir = dirname(__FILE__).'/cache';
  6. $view->caching = CACHE_ENABLE;
  7. $view->cache_lifetime = 6000;
  8. $menu = get_menu();
  9. $view->assign('menu',$menu);
  10.  
  11. $view->display('up.tpl',$cache_id);


up.tpl
  1. {include file="$page.tpl"}
nospor
jesli zmienna jest to kod powinien wygladac tak:
Kod
{include file=$page.tpl}

jesli nadal nie dziala to jednak tej zmiennej nie ma, a konkretnie nie ma kodu:
$view->assign('page','blabla');
servs
Kod jest, nawet chamsko go wsadziłem dla sprawdzenia w pliku up.php przed $view->display('up.tpl',$cache_id);
Wsadziłem: $view->assign('page','main');

A dalej w zamian dostaję
Cytat
Warning: Smarty error: unable to read resource: ".tpl" in /home/admin/domains/strona.pl/public_html/testing/libs/Smarty.class.php on line 1095
nospor
no a zamieniles tak jak ci kazalem?
servs
Ahh przepraszam.
Teraz mam:

Cytat
Warning: Smarty error: unable to read resource: "m" in

----------------------------------------------------------------------------------------------------------------------
Zwariowane to jakieś :|

Działa! smile.gif

Zaczęło działać na skrypcie, który przedstawiłem na początku i sprawiał problemy.
Dziwna sprawa, że wtedy nie działało, a teraz nagle działa :]
Cóż, dziękuję za chęci pomocy.
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.