ФорумПрограммированиеPHP для идиотов → не отображается шаблон на сервере

не отображается шаблон на сервере

  • Saimon

    Сообщения: 76 Репутация: N Группа: Кто попало

    Spritz 5 октября 2008 г. 17:20, спустя 55 минут 47 секунд

    точно дело в разрешения было, спасибо за участие
  • Saimon

    Сообщения: 76 Репутация: N Группа: Кто попало

    Spritz 5 октября 2008 г. 17:22, спустя 2 минуты 43 секунды

    оба скрипта заработали, из меня программер пока еще не очень)
    продолжим )
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 5 октября 2008 г. 21:32, спустя 4 часа 9 минут 15 секунд

    ini_set('display_errors', 1);
    надо на мастерхосте делать

    и в смарти не надо никаких $_SERVER['DOCUMENT_ROOT']
    все умрут, а я изумруд
  • Saimon

    Сообщения: 76 Репутация: N Группа: Кто попало

    Spritz 6 октября 2008 г. 20:26, спустя 22 часа 54 минуты 35 секунд

    md5 а как без $_SERVER['DOCUMENT_ROOT'] обойтись???

    $_SERVER['DOCUMENT_ROOT'] это переменная которой присвоено значение пути, мне показалось что это самый простой вариант, единственное что приходится делать, это перепрописывать пути при переносе с домашней на сервер.

    Я почитал про "магическую" константу __FILE__ но не смог пока разобраться.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 7 октября 2008 г. 9:28, спустя 13 часов 1 минуту 35 секунд

    в стоковой комплектации Smarty сразу все нормально указанно

    мы кладем папку Smarty, а в нашем скрипте делаем:

    include_once('Smarty/Smarty.class.php');

    $smarty = new Smarty;
    $smarty -> compile_check = true;
    $smarty -> debugging = true;

    // ВОТ ОНА ДИРА, ГДЕ ДОЛЖНЫ ЛЕЖАТЬ ШАБЛОНЫ
    // И ОНА ПО-УМОЛЧАНИЮ ТАКАЯ СТОИТ
    $smarty->template_dir = 'templates';

    // ЭТА ДИРА, КУДА ВАЛЯТСЯ СКОМПИЛЕННЫЕ ШАБЛОНЫ
    // ВО ВСЕХ ДОКУМЕНТАЦИЯ И БЫСТРЫХ СТАРТАХ НАПИСАНО, ЧТО НАДО ПРАВА НА ЗАПИСЬ ВЫСТАВИТЬ (777), НАДО ЧИТАТЬ ВНИМАТЕЛЬНЕЕ
    $smarty->compile_dir = 'templates_c';


    // И ВСЕ
    $smarty->display('index.tpl');


    таким образом у тебя такая структура дир и файлов:
    Smarty (dir)
    templates (dir)
    templates_c (dir, 777)
    index.php (скрипт, в котором мы подключаем шаблоны)

    вот где у меня хоть один $_SERVER['DOCUMENT_ROOT']?
    все умрут, а я изумруд
  • Saimon

    Сообщения: 76 Репутация: N Группа: Кто попало

    Spritz 7 октября 2008 г. 22:51, спустя 13 часов 22 минуты 48 секунд

    Вы правы, читал не внимательно…
    Нашел где сказано, что права на запись надо указывать chmod 777
    А вот в вашем примере разве не надо указывать константу SMARTY_DIR ???

    константа SMARTY_DIR

    define ('SMARTY_DIR', '/Smarty/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');
    $smarty = new Smarty();



    И соответственно:

    include_once(SMARTY_DIR . 'Smarty.class.php');
    $smarty = new Smarty;
    $smarty -> compile_check = true;
    $smarty -> debugging = true;
    $smarty->template_dir = 'templates';
    $smarty->compile_dir = 'templates_c';
    $smarty->config_dir = 'configs';
    $smarty->cache_dir = 'cache';
    $smarty->template_dir = 'templates';
    $smarty->display('index.tpl');


    Только не подумайте что я спорю, просто хочу уточнить.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 8 октября 2008 г. 8:53, спустя 10 часов 1 минуту 50 секунд


    А вот в вашем примере разве не надо указывать константу SMARTY_DIR ???

    константа SMARTY_DIR

    define ('SMARTY_DIR', '/Smarty/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');
    $smarty = new Smarty();


    а зачем там слеш в начале?

    ну тогда объясни мне, чем отличается:

    define ('SMARTY_DIR', 'Smarty/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');

    от

    require_once('Smarty/libs/Smarty.class.php');

    ?
    все умрут, а я изумруд
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 8 октября 2008 г. 13:06, спустя 4 часа 13 минут 13 секунд

    ну тогда объясни мне, чем отличается:

    define ('SMARTY_DIR', 'Smarty/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');


    от

    require_once('Smarty/libs/Smarty.class.php');


    ?

    Тем, что в первом случае выделяется обьем памяти для хранения константы, причем на все время выполнения скрипта.
    Вот только зачем, не понятно :)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!