Несколько вопросов по smarty

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем mehoney, 22 мар 2009.

Статус темы:
Закрыта.
  1. mehoney

    mehoney Создатель

    Регистр.:
    5 дек 2008
    Сообщения:
    20
    Симпатии:
    6
    Обрисую ситуацию:

    -index.php
    <?php

    // include smarty-cms config
    require('config/smartycms.config.php');

    // load smarty-cms library
    require_once(LIB_DIR.'smarty-cms/Smarty_cms.php');

    // create smarty-cms class
    $tpl = new Smarty_cms();

    // show template
    $tpl->display();

    ?>

    - Все страницы получают такие адреса, основываясь на имя соответствующих темлат:
    www.site.com/template
    www.site.com/template2

    - Содержание .htaccess
    RewriteEngine on
    Options +FollowSymlinks

    RewriteCond %{HTTP_HOST} ^site.com
    RewriteRule (.*) http://www.site.com/$1 [R=301,L]

    RewriteRule ^css/(.+) - [L]
    RewriteRule ^js/(.+) - [L]
    RewriteRule ^rss/(.+) - [L]

    RewriteRule ^(.+)/(.+)/? index.php?page=$1&sub=$2 [L,QSA]
    RewriteRule ^(.*)/? index.php?page=$1 [L,QSA]

    - Сайт мелкий, без каких либо cms, все ручками делаю :)

    Вопросы:
    1. Возможно ли чтобы вид ссылки был со слешем на конце, т.е. www.site.com/template/ ?

    2. Добавляю новую папку на сайт - www.site.com/pictures/. Как сделать, чтобы смарти не пытался найти соответствующую темплату, а просто показалось содержимое этой папки. Вот так не помогает - RewriteRule ^pictures/(.+) - [L] - Адрес приходится набирать до конкретного файла.

    3. Хочу добавить какую-нибудь php форму (<?php ?>) на страницу, но смарти сразу же выдает ошибки. Я пытался сунуть весь пхп в темплату, а потом добавить на страницу с помощью {include file="includes/form.tpl"}, но безрезультатно.
    Вот это пожалуй самый важный вопрос, как добавить форму в темплату, чтобы со смарти не было проблем?


    PS: при попытке вставить php вставку в шаблон, ошибка получается вот такая:

    Fatal error: Smarty error: [in includes/contacts_php.tpl line 9]: syntax error: unrecognized tag: if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']) { if (isset($_POST['posName']) && $_POST['posName'] == "") { $statusError = "$errors_name"; (Smarty_Compiler.class.php, line 446) in /home/users/domain/htdocs/libraries/smarty/Smarty.class.php on line 1095

    Cама php форма работает 100%
     
  2. waldicom

    waldicom Создатель

    Регистр.:
    15 мар 2009
    Сообщения:
    41
    Симпатии:
    3
    Может быть такое, что понятие smarty понято неправильно? В смарти не пишут кодом php, там обычно чистый html со вставками тегов смарти. Поэтому форма описывается в темплейте, а вот обрабатывается в php.
     
  3. mehoney

    mehoney Создатель

    Регистр.:
    5 дек 2008
    Сообщения:
    20
    Симпатии:
    6
    Вполне может. Пробовал еще пхп вставлять с помощью {php} {/php} и на странице появлялась нужная форма, но все равно ничего не работает :)
     
  4. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Проблема скорее в движке, а не в smarty. Надо посмотреть как он обрабатывает приходящие УРЛ и возможно добавить исключения (как вариант)....
     
  5. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    для листинга содержимого каталогов добавь в htaccess

    Options Indexes

    и

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
     
    mehoney нравится это.
  6. mehoney

    mehoney Создатель

    Регистр.:
    5 дек 2008
    Сообщения:
    20
    Симпатии:
    6
    Вопрос номер 2 наконец решился, спасибо!
     
Статус темы:
Закрыта.