Smarty

  • Автор темы nws
  • Дата начала
N
#1
Взял код гостевой книги из "PHP5 В Подлиннике [Котеров Д. В.] [2006]"

index.html

Код:
##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

Код:
<?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

Код:
<?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

Код:
<?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, а в браузере у меня не читается код, а просто выводится как простые слова. Что делать ? :)
 
J

j_man

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

PenelopeGutierre

#3
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