![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 3.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam jestem nowy na tym forum i proszę o wyrozumiałość w razie jakiś błędów.
Mam problem z smartami mam w folderze include plik funkcje chcę w nim zdefiniować funkcje opartą na smarcie aby na każdej stronie jak ja wywołam to będzie menu itp. Używam WebServ. w pliku funkcje.php mam: Kod define('SMARTY_DIR','./libs/smarty/'); require(SMARTY_DIR.'Smarty.class.php'); $smarty = new Smarty; //tutaj podajemy sciezki do poszczegolnych katalogow (podalem przykladowe sdciezki) // $_home_path - bezwzgledna sciezka do naszej strony // mozna to zapisac inaczej (to tylko przyklad :) ) $smarty->template_dir = $_home_path.'./templates/'; $smarty->compile_dir = $_home_path.'./libs/templates_c/'; $smarty->config_dir = $_home_path.'./libs/configs/'; $smarty->cache_dir = $_home_path.'./cache/'; i mam Kod function site (){ $smarty -> display('heder.tpl'); } niby wszystko powinno być ok powinno brykać ale wyskakuje błąd Cytat Fatal error: Cannot redeclare class Smarty in C:\Program Files\WebServ\httpd\libs\smarty\Smarty.class.php on line 65 w Smarty.class.php w tej linii mam: { kawałek kodu: Kod /** * @package Smarty */ class Smarty { /**#@+ * Smarty Configuration Section */ /** * The name of the directory where templates are located. * * @var string */ var $template_dir = './templates/LGTv2'; /** * The directory where compiled templates are located. * * @var string */ var $compile_dir = './libs/templates_c'; /** * The directory where config files are located. * * @var string */ var $config_dir = './libs/configs'; /** * An array of directories searched for plugins. * * @var array */ var $plugins_dir = array('plugins'); jak nie daje tego w plik funkcje.php nie używam smartów to jest wszystko ok. Pozdrawiam ex |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Niby wszystko powinno być ok powinno brykać ale wyskakuje błąd Strzelam, że parę razy include" title="Zobacz w manualu PHP" target="_manual'ujesz plik funkcje.php. Wywala błąd, bo deklarujesz już istniejącą klasę. Kod function site (){ $smarty -> display('heder.tpl'); } To nie ma prawa zadziałać, bo $smarty nie jest zmienną superglobalną. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 3.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem inaczej dodałem to co napisane w tym temacie : Temat: php_Templates
nie używałem przez chwilę smartów dodałem plik class_temp.php dodałem potem dodałem to do funkcje.php Kod require_once("class_temp.php"); a potem dodałem Kod $tpl->display('test.tpl') i o dziwo chodziło mi to teraz. Jak mógł by ktoś podać linki do jakiś systemów templates to bym był wdzięczny albo ktoś wie może czemu tak jest Ten post edytował exceender 4.01.2009, 17:35:58 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 4 Dołączył: 31.12.2008 Skąd: Bytom Odrzański Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Funkcja require() działa tak samo jak include() czyli doczepia plik jako całość do aktualnego pliku i przez to wyświetlało Ci błąd o redeklaracji klasy Smarty, najlepiej zamiast include() i require() używać require_once() wtedy jeżeli plik jest już dołączony to nie dołącza go po raz drugi. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
require_once jest dosc wolne. najlepiej wstawic include dla klasy Smarty do jakiegos nadrzednego pliku tak aby byl on na pewno dodany tylko raz.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 3.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za podpowiedzi poradziłem sobie już jeszcze raz dzięki
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:46 |