Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smaerty] Dziwna sprawa
Forum PHP.pl > Forum > PHP
lolek09
Zainstalowałem smarty, i choć nie zwraca żadnych błędów, to nic nie wyświetla. Po prostu w przeglądarce białe tło i nic więcej.
Ścieżki i prawa do plików są ustawione jak trzeba, bo nie zwraca błędów przy odczytywaniu pliku, templates_c też jest ok, bo tworzy tam plik php.
Źródła:
index.php
[php:1:f93b3e0567]<?php
require('/usr/local/lib/smarty/Smarty.class.php');

$smarty = new Smarty;

$smarty->template_dir = '/var/smarty/templates/';
$smarty->compile_dir = '/var/smarty/templates_c/';
$smarty->config_dir = '/var/smarty/configs/';
$smarty->cache_dir = '/var/smarty/cache/';

$smarty->assign('name','Józek');

$smarty->display('index.tpl');
?>[/php:1:f93b3e0567]
Kod
<HTML>

<HEAD>

</HEAD>

<BODY>

Hello World!<BR>

My name is {$name}

</BODY>

</HTML>


Byłbym wdzięczny, gdyby ktoś potrafił mi pomóc.
?>[/php]
[fisher]
Przegladnij logi apache np. /var/log/apache/error_log

pewnie nie ma uprawnien do takich katalogow, a php ma wylaczone raportowanie bledow na stronie

moze uzyj takiej mojej klasy

[php:1:1352598b0c]<?php
require_once('./path_to_smarty/Smarty.class.php');
// Klasa wrapper dziedziczaca ze Smarty
// i ustawiajaca kilka wartosci
// Automagicznie tworzy dla siebie katalogi
class ExtendedSmarty extends Smarty {

var $_settings, $perm, $smarty_dir, $smarty_templates_c, $smarty_template_dir, $smarty_languages, $smarty_cache;

function ExtendedSmarty() {
// Check directory where smarty will store temporary files
$this->_settings = &$GLOBALS['settings'];
$this->perm = 0771;
$this->checktmpdir($this->_settings['tmp_directory'], "smarty", "templates_c", "./languages", "./templates", "cache", $this->perm);

// Make directory for user (directory creates only when not exist)

//
// Run smarty constructor
$this->Smarty();
//
// Set paths for templates, configs and cache folder
$this->template_dir = $this->smarty_template_dir;
$this->compile_dir = $this->smarty_templates_c;
$this->config_dir = $this->smarty_languages;
$this->cache_dir = $this->smarty_cache;
//
// Set smarty variables
$this->caching = true;
// When site goes into production SET false !!! CHANGEME
$this->force_compile = true;
//
$this->debugging_ctrl = "NONE";
// When site goes into production SET false !!! CHANGEME
$this->compile_check = true;
//
//
}
function checktmpdir($tmpdir, $smarty, $templates, $languages, $template_dir, $cache, $perm) {
// check dir name from settings, correct if is wrong
$strLen = strlen($tmpdir);
if($tmpdir[$strLen - 1] == "/") $this->smarty_dir = substr($tmpdir, 0, $strLen - 1);
else $this->smarty_dir = $tmpdir;

// create directory
$this->make_dir($this->smarty_dir);

// check sub-dirs, make if not exist
if(!file_exists($this->smarty_dir . "/" . $smarty))
$this->make_dir($this->smarty_dir . "/" . $smarty);
if(!file_exists($this->smarty_dir . "/" . $smarty . "/" . $templates))
$this->make_dir($this->smarty_dir . "/" . $smarty . "/" . $templates);
$this->smarty_templates_c = $this->smarty_dir . "/" . $smarty . "/" . $templates;
if(!file_exists($this->smarty_dir . "/" . $smarty . "/" . $cache))
$this->make_dir($this->smarty_dir . "/" . $smarty . "/" . $cache);
$this->smarty_cache = $this->smarty_dir . "/" . $smarty . "/" . $cache;
if(file_exists(realpath($languages)))
$this->smarty_languages = realpath($languages);
if(file_exists(realpath($template_dir)))
$this->smarty_template_dir = realpath($template_dir);
}
function make_dir($dir) {
// Recursive create directory
$tmpPieces = explode("/", $dir);
$tmp = "";
for($i=0; $i < count($tmpPieces); $i++){
$tmp .= $tmpPieces[$i] . "/";
if(!file_exists($tmp))
mkdir($tmp, $this->perm);
}
}
}

?>[/php:1:1352598b0c]
a pozniej
[php:1:1352598b0c]<?php
// Zeby miec pewnosc ze wszystko jest ok
error_reporting(E_ALL);
$settings['tmp_directory'] = '/tmp/php';
$smarty = new ExtendedSmarty();
?>[/php:1:1352598b0c]
a dalej juz po staremu ... ;-)
lolek09
Niestety nie działa ;(
W error_log nie ma żadnych błędów, a error_reporting mam ustawione na 'E_ALL'.
Dodam tylko, że tak się dzieje na php4 jak i na php5.
Nie wiem jak powinien wyglądać skompilowany szablon smarty, ale podejrzewam, że tu coś się rypło. Mój skompilowany szablon wygląda tak:
[php:1:ba66ceaaf6]<?php
/* Smarty version 2.6.2, created on 2004-02-26 14:03:49
compiled from index.tpl */
?>[/php:1:ba66ceaaf6]
To chyba nie powinno tak być? Jaką masz wersję smarty?
[fisher]
Cytat
Niestety nie działa ;(
W error_log nie ma żadnych błędów, a error_reporting mam ustawione na 'E_ALL'.
Dodam tylko, że tak się dzieje na php4 jak i na php5.
Nie wiem jak powinien wyglądać skompilowany szablon smarty, ale podejrzewam, że tu coś się rypło.
To chyba nie powinno tak być? Jaką masz wersję smarty?

Smarty 2.6.0, php 4.3.4
sprawdz moze wersje 2.6.0, 2.6.2 zyje dopiero 9 dni wiec moze cos w niej jest nie tak
sprobuje u mnie wersji 2.6.2 i dam znac
[fisher]
Cytat
"]sprobuje u mnie wersji 2.6.2 i dam znac

Smarty2.6.2, php4.3.4 - dziala
sprobuj zdebugowac obiekt smarty i tam poszukac bledow (brakujacych sciezek, itd)

[php:1:faca3eb2e2]<?php
echo "<pre>";
var_dump($smarty);
echo "</pre>";
?>[/php:1:faca3eb2e2]
lolek09
wszszystko (zarówno mój kod, jak i fishera) działa ze smarty 6.1
dzięki
[fisher]
Cytat
wszszystko (zarówno mój kod, jak i fishera) działa ze smarty 6.1

dla mnie dalej podejrzane bo u mnie dziala na Smarty2.6.0 - Smarty2.6.2
lolek09
sprawdzę to, i napewno sie podzielę, ale raczej nie dzisiaj. Jeszcze muszę postgresql zainstalować, a jutro test z historii... ale za to będzie co w warsztat wstawić winksmiley.jpg
[fisher]
Cytat
a jutro test z historii...

powodzenia tez na historii
lolek09
teraz działa z 6.1.2
hmm... może miałem coś pokręcone w prawach? Ale zawsze jak pokręciłem w prawach, to pisał :wink:
Błąd po mojej stronie był i koniec.

A co do:
Cytat
powodzenia tez na historii
to dzięki, na pewno się przyda :wink:
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.