Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> smarty ---> błąd nie wiem czemu
exceender
post
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
Go to the top of the page
+Quote Post
erix
post
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ą.
Go to the top of the page
+Quote Post
exceender
post
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
Go to the top of the page
+Quote Post
drucik
post
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.
Go to the top of the page
+Quote Post
Rafal Filipek
post
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.
Go to the top of the page
+Quote Post
exceender
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 05:46