Smarty

Тема в разделе "PHP программирование", создана пользователем nws, 14 фев 2008.

  1. nws

    nws Гость

    Взял код гостевой книги из "PHP5 В Подлиннике [Котеров Д. В.] [2006]"

    index.html

    Код (Text):
    ##Title = Добавить сообщение
    ##Text
    <style>
    .error{color:red; font-weight: bold; display: block;}
    </style>
    <!---FORMA VVODA NOVOI ZAPISI-->
    {t_component src="Test_Gbook_Add" name="error" book="test"}
    <form method="post">
    <table width="80%">
    <tr valign="top">
    <td width="10%">Ваше имя:</td>
    <td><input type="text" name="=new[name]" style="width:100%">
    {if @$error.name}<span class="error">Не указано имя</span>
    {/if}
    </td>
    </tr>
    <tr valign="top">
    <td width="10%">Профессия:</td>
    <td>
    <select name="new[occupation]" style="width:100%">
    <option>Программист</option>
    <option>Web-дизайнер</option>
    <option>Директор</option>
    <option>Другое</option>
    </select>
    {if @$error.occupation}
    <span class="error">Не указанa профессия</span>
    {/if}
    </td>
    </tr>
    <tr valign="top">
    <td>Комментарий:</td>
    <td>
    <textarea name="new[text]" cols="60" rows="5" style="width:100%"></textarea>
    {if @$error.text}
    <span class="error">Слишком короткий текст сообщения</span>
    {/if}
    </td>
    </tr>
    <tr valign="top">
    <td></td>
    <td align="center">
    <input style="width=:100%" type="submit" name="doAdd" value="Добавить">
    {if $error}
    <span class="error">Ощибка! Сооющение ие добавлено!</span>
    {/if}
    </td>
    </tr>
    </table>
    </form>
    {/t_component}
    <!---/FORMA VVODA NOVOI ZAPISI-->
    <!---VIVOD ZAPISEY GOSTEVUHI-->
    {t_component src="Test_Gbook_Show" name="book" book="test"}
    {foreach from "$book" key="id" item="e"}
    <table width="100%" bgcolor="{cycle values="#DDDDDD,#CCCCCC"}">
    <tr>
    <td colspan="2">
    {$e.stamp|date_format:"%Y-%m-%d %H:%M"}
    <a href="mailto:{$e.email|htmlspecialchars}">{$e.name|htmlspecialchars}</a>
    </td>
    </tr>
    <tr>
    <td width="1%"></td>
    <td>{$e.text|htmlspecialchars}</td>
    </tr>
    </table>
    {/foreach}
    {/t_component}
    <!---/VIVOD ZAPISEY GOSTEVUHI-->
    add.php

    Код (Text):
    <?php

    require_once "Test/Gbook/Model.php";

    class Test_Gbook_Add extends Subsys_Templier_Component
    {
    var $NEW_ELEMENT = "new";

    function main($params, &$templier)
    {
    $name = isset($params['book']) ? $params['book']:null;
    if (!$name)
    {
    $this->croak("parameter 'book' is not specifed");
    return false;
    }


    if (!empty($_REQUEST['doAdd']))
    {
    $new = $_REQUEST[$this->NEW_ELEMENT];
    $new['stamp'] = time();

    $errors = $this->validate($new);
    if ($errors)
    return $errors;

    $Book = Test_Gbook_Model::load($name);
    $Book = array(time() => $new) + $Book;
    Test_Gbook_Model::save($name, $book);

    unset($new['text']);
    unset($new['stamp']);
    setcookie("gbook", serialize($new), time() + 3600 * 24 * 365, "/");
    header("Location:" . "http://{$_SERVER['HTTP_HOST']}{$_SERVER['SCRIPT_NAME']}" .
    "?" . TIME());
    exit();
    }
    else
    {
    $data = @unserialize($_COOKIE['gbook']);
    $_POST[$this->NEW_ELEMENT] = $data;
    }
    return array();
    }

    function validate(&$new)
    {
    $errors = array();

    if (!trim($new['name']))
    {
    $errors['name'] = true;
    }
    if (!trim($new['email']))
    {
    $errors['email'] = true;
    }
    if (!trim($new['occupation']))
    {
    $errors['occupation'] = true;
    }
    if (!trim($new['text']))
    {
    $errors['text'] = true;
    }
    return $errors;
    }
    }
    ?>
    model.php

    Код (Text):
    <?php

    class Test_Gbook_Model
    {
    function load($name)
    {
    $fname = "data/$name.dat";
    @mkdir(dirname($fname));
    if (!file_exists($fname))
    return array();
    $Book = unserialize(file_get_contents($fname));
    return $Book;
    }

    function save($name,$Book){
    $fname = "data/$name.dat";
    $f = fopen($fname,"w");
    fwrite($f,serialize($Book));
    fclose($f);
    }
    }

    ?>
    show.php

    Код (Text):
    <?php

    require_once "Test/Gbook/Model.php";

    class Test_Gbook_Show extends Subsys_Templier_Component
    {

    function main($params, &$templier)
    {
    $name = isset($params['book']) ? $params['book']:null;
    if (!$name)
    {
    $this->croak("parameter 'book' is not specifed");
    return false;
    }
    $Book = Test_Gbook_Model::load($name);
    return $Book;

    }
    }
    ?>
    Но я не вижу где они подключают Smarty, а в браузере у меня не читается код, а просто выводится как простые слова. Что делать ? :)
     
  2. j_man

    j_man Гость

    тут видимо не хвататет како-го-нибудь обработчика запросов, где все это и подключается.
    А вообще - http://www.smarty.net/manual/ru/ тут все понятно и на русском там и читай. весь смарти за пару часовмона освоить и протестить большинство функционала по этому мануалу.
     
  3. PenelopeGutierre

    PenelopeGutierre Гость

    Thats cool. I agree, that was a good post! but i m not agree to you to.
    it is very difficult to follow them, well according to me, one should try anti aging product reviews.
    Yes its possible to do naturaly, but it will surely help the casue lot.
    You will find here a nice collection of free resveratrol aging
     
Загрузка...

Поделиться этой страницей