(PHP & Smarty)

Secundra Dass
Дата: 22.09.2006 12:31:37
Огромная просьба помочь!

Сайт переехал на новую площадку. Писал всё не я, а настраивать именно мне.

Сайт перестал работать. Построен на smarty.

Вопрос: нужно ли что-нибудь настраивать на стороне сервера в случае использования smarty?

Подозреваю, что проблема как раз в smarty, шаблоны не выводятся.
На старом месте работало. Перенес файлы 1 в 1 - ужас какой-то выводит.

Если сайт не заработает сегодня к вечеру, мне будет ооочень плохо...
anvano
Дата: 22.09.2006 12:36:24
Secundra Dass
Огромная просьба помочь!

Сайт переехал на новую площадку. Писал всё не я, а настраивать именно мне.

Сайт перестал работать. Построен на smarty.

Вопрос: нужно ли что-нибудь настраивать на стороне сервера в случае использования smarty?

Подозреваю, что проблема как раз в smarty, шаблоны не выводятся.
На старом месте работало. Перенес файлы 1 в 1 - ужас какой-то выводит.

Если сайт не заработает сегодня к вечеру, мне будет ооочень плохо...


На вскидку:
1) Не перенесены сами библиотеки Smarty - они могли располагаться и вне корня вашего сайта, то есть не переехать вместе со всеми скриптами.

2) Не настроен доступ на запись к папкам, в которые Smarty компилирует шаблоны (если конечно у вас он работает в решиме предкомпиляции). Если так то надо в конфигах найти в какие папки он компилирует шаблоны и поставить на них соответствующие права.

В любом случае ваше Сайт перестал работать не несёт абсолютно никакой смысловой информации. Что конкретно не работет? Какие сообщения об ошибках выдаются при этом? Учитесь задавать вопросы, чтобы вам на них отвечали.
Secundra Dass
Дата: 22.09.2006 12:50:09
1. папка smarty с подкаталогами core и plugins присутствует. Путь к ней вроде бы выставлен верно.

2. каталог templates_с с предкомпилированными шаблонами присутствует. ПУть в нему указан верно.

Ошибок никаких не выдает. Видимо стоит подавление ошибок, но где его тут искать с этим smarty... Просто практически ничего не выводит.

Заработать должен сайт http://estorm.ru/
Куски (например http://estorm.ru/_top.php ) выдаются.
А вот целиком они не выводятся.

index.php
...
$smarty->display('indexmain.tpl');

indexmain.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
	<title>estorm.ru</title>
<META NAME="KEYWORDS" CONTENT="">
<META HTTP-EQUIV="KEYWORDS" CONTENT="">
<META NAME="DESCRIPTION" CONTENT="">
<META HTTP-EQUIV="DESCRIPTION" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="css.css" type="text/css">
{include file ="../_tracker.php"}
</head>
<body>

<table cellpadding=0 cellspacing=0 border=0 align=center width=750 class=mainBRDR>

<!-- TOP // -->
{include file="../_top.php"}
<!-- // TOP -->

<tr>

<!-- LEFT // -->
{include file="../_left.php"}
<!-- // LEFT -->

<!-- CONTENT // -->
<td valign=top class=contentBlock width=398>
{include file="../_welcome.php"}
<div class=content>
{$content}
</div>
</td>
<!-- // CONTENT -->

<!-- RIGHT // -->
{include file="../_right.php"}
<!-- // RIGHT -->
</tr>

<!-- BOTTOM // -->
{include file="../_bottom.php"}
<!-- // BOTTOM -->

</table>
</body></html>
anvano
Дата: 22.09.2006 13:08:05
Ну для начала я бы всё таки включил отладку и попробовал посмотреть какие Warning`и выдаются.
Если есть доступ к php.ini сервера куда перетаскивали всё своё добро, то выставить там
display_errors on

Если нет, то навтыкать .htaccess файликов в свои каталоги где с помощью директивы php_value выставить display_errors on
На крайняк в начале каждого PHP файла воткнуть
ini_set('display_errors',1);
error_reporting(E_ALL);

Плюс, пути то к папками может и правильные указаны, а права-то на папки какие?
В некоторых случаях даже 775 может не хватить, в целях отладки выставьте права 777 на папки куда шаблоны компилятся и почистите из них что там уже накомпиленого лежит.
Sherbakov
Дата: 22.09.2006 13:14:31
Secundra Dass
1. папка smarty с подкаталогами core и plugins присутствует. Путь к ней вроде бы выставлен верно.

2. каталог templates_с с предкомпилированными шаблонами присутствует. ПУть в нему указан верно.

Ошибок никаких не выдает. Видимо стоит подавление ошибок, но где его тут искать с этим smarty... Просто практически ничего не выводит.

Заработать должен сайт http://estorm.ru/
Куски (например http://estorm.ru/_top.php ) выдаются.
А вот целиком они не выводятся.

index.php
...
$smarty->display('indexmain.tpl');


А где объяление Самого класса и каталогов в котором лежит смарти?

Вот как типа тут:

error_reporting(E_ALL);
require_once('sm/libs/Smarty.class.php');
include("../conf.php");
$smarty = new Smarty();
$smarty->template_dir = 'sm/templates/';
$smarty->compile_dir = 'sm/templates_c/';
$smarty->config_dir = 'sm/configs/';
$smarty->cache_dir = 'sm/cache/';

anvano
Ну для начала я бы всё таки включил отладку и попробовал посмотреть какие Warning`и выдаются.
Если есть доступ к php.ini сервера куда перетаскивали всё своё добро, то выставить там
display_errors on

Если нет, то навтыкать .htaccess файликов в свои каталоги где с помощью директивы php_value выставить display_errors on
На крайняк в начале каждого PHP файла воткнуть
ini_set('display_errors',1);
error_reporting(E_ALL);

Поддерживаю!
Отладка в смарти:

$smarty->debugging =true;
$smarty->display('debug.tpl');
Или в самом шаблоне просто укажи
{debug}
Secundra Dass
Дата: 22.09.2006 13:16:23
Втыкнул
ini_set('display_errors',1);
error_reporting(E_ALL);

в файлы index.php main.php. Результат таков:

Notice: Use of undefined constant all - assumed 'all' in main.php on line 18

Warning: set_time_limit() has been disabled for security reasons in main.php on line 26

Notice: Use of undefined constant pic - assumed 'pic' in functions.php on line 480

(куча таких ошибок в functions.php)

Notice: Undefined index: vendor_id in /home/u47997/estorm.ru/www/index.php on line 26

Notice: Use of undefined constant partner_discount - assumed 'partner_discount' in /home/u47997/estorm.ru/www/index.php on line 66

Notice: Undefined index: partner_discount in /home/u47997/estorm.ru/www/index.php on line 66

Notice: Undefined index: partner_auth in /home/u47997/estorm.ru/www/index.php on line 148

Notice: Undefined variable: page in /home/u47997/estorm.ru/www/index.php on line 154
Secundra Dass
Дата: 22.09.2006 13:25:27
Присутствует:

define('SMARTY_DIR', $_SERVER['DOCUMENT_ROOT'].'/smarty/');      
require_once(SMARTY_DIR.'Smarty.class.php');
...
$smarty = new Smarty;
$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';
$smarty->caching = FALSE;
$smarty->clear_all_cache();
Sherbakov
Дата: 22.09.2006 13:29:56
Secundra Dass
Присутствует:

define('SMARTY_DIR', $_SERVER['DOCUMENT_ROOT'].'/smarty/');      
require_once(SMARTY_DIR.'Smarty.class.php');
...
$smarty = new Smarty;
$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';
$smarty->caching = FALSE;
$smarty->clear_all_cache();

Значит просто в шаблон вставь {debug}
Secundra Dass
Дата: 22.09.2006 13:36:13
Файл indexmain.tpl я приводил, теперь дополнил:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
	<title>estorm.ru</title>
<META NAME="KEYWORDS" CONTENT="">
<META HTTP-EQUIV="KEYWORDS" CONTENT="">
<META NAME="DESCRIPTION" CONTENT="">
<META HTTP-EQUIV="DESCRIPTION" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="css.css" type="text/css">

{debug}

{include file ="../_tracker.php"}
....
{include file="../_bottom.php"}

{debug}

</table>
</body></html>

Ошибки (а вернее их отсутствие) можно увидеть на http://estorm.ru/

Только вот я не умею управлять правами на доступ к папкам (((
Это можно сделать без доступа на сервер? Хотя бы узнать, а не изменить?
Sherbakov
Дата: 22.09.2006 13:41:43
Secundra Dass
Файл indexmain.tpl я приводил, теперь дополнил:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
	<title>estorm.ru</title>
<META NAME="KEYWORDS" CONTENT="">
<META HTTP-EQUIV="KEYWORDS" CONTENT="">
<META NAME="DESCRIPTION" CONTENT="">
<META HTTP-EQUIV="DESCRIPTION" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="css.css" type="text/css">

{debug}

{include file ="../_tracker.php"}
....
{include file="../_bottom.php"}

{debug}

</table>
</body></html>

Ошибки (а вернее их отсутствие) можно увидеть на http://estorm.ru/

Только вот я не умею управлять правами на доступ к папкам (((
Это можно сделать без доступа на сервер? Хотя бы узнать, а не изменить?

Дебаг вставляй один раз, потом найди в своих шаблонах debug.tpl, И запиши его в каталог в своими шаблонами!
После разреши в Браузере, Всплывающие окна! Тогда будет тебе хорошо