2006年02月13日

表示の仕方もテンプレートで

繰り返しの行を表示する表示項目が多くても意外と簡単に表示できる。この2とおりが出来れば、検索して結果を一覧で表示して、タイトルなりをクリックすると詳細な画面を表示するといった、基本的なWebプログラムは出来上がります。

もう1つテンプレートの素晴らしい機能として、表示の仕方もいろいろ設定ができます。

どういうことかと言うと、例えば、改行の扱い。textareaで改行付きの文章を入力し、それを表示する場合など、今まではPHPプログラムのほうで、改行コードを <br /> に置き換えていました。しかし、この処理もテンプレートで出来ます。

また、<> のような文字もエスケープする必要があります。これもテンプレートで可能です。

その他にもいろいろあります。
Smartyのマニュアルでいうところの変数の修正子と呼ばれる機能です。
(前回書いた制御構造は、Smartyのマニュアルだと組み込み関数と呼ばれています)

こうやって、表示に関係する部分を出来るだけテンプレートに書くことで、PHPプログラムのほうは、なおいっそう、すっきりとしたコードになります。

| この記事へ | コメント (0) | トラックバック (0) | 先頭へ


2006年02月11日

表(行)を表示するには?

しばらく、脱線ネタで日を稼いでましたが、続きです。

表示する項目が多い場合、連想配列を使うと便利です。というのは、前回の話で、今回は、表の行のような、繰り返し表示する方法です。
このような場合は、出力が何行になるか?は分かりません。データベースを読んで初めてわかるものです。なので、最初からテンプレートに

{$member.name1}
{$member.name2}
{$member.name3}

とは書けません。

テンプレートには、PHPプログラムからの値を表示するだけでなく、いわゆる制御構造をいうモノを持っています。

なんですか?それ?

"表(行)を表示するには?"の続きを読む

| この記事へ | コメント (0) | トラックバック (1) | 先頭へ


2006年02月06日

表示するアイテムが多い場合

なるほど、表示したい値(変数)に対して $smarty->assign("…",$…); を繰り返せば表示できますが、普通、1つのページに山ほど表示する値はあります。

手前味噌で恐縮ですが、福井の不動産サイト(http://fukui.fudo-3.info/)の物件の詳細画面ともなると、所在地、沿線、賃料、敷金、礼金、うんぬんかんぬんと。

これ全部について、$smarty->assign("…",$…); をしないといけないのかと思うと、プログラマーはゾッとします。正直、そんなたくさん書くのは面倒。。。でも、これを言っちゃうとダメなので、プログラムの管理上どーのこーのとか、共通化出来んのか?とか言い始めます。バグ対策もあるので、ひとえに否定も出来ませんが、その半分以上は

こんなに書くの面倒じゃ!!

が率直な意見だと思います。現に私はそうです。どうも、プログラマーという人種は、楽をしたがります。

そこで、

"表示するアイテムが多い場合"の続きを読む

| この記事へ | コメント (0) | トラックバック (0) | 先頭へ


2006年02月04日

基本的な流れ

プログラムからの値を表示出来たので、流れを簡単に説明します。

マニュアルを熟読すれば、もっと効率良い使い方があるかも知れませんが、私は普段使っている内容しか書けないので、その範囲内ということで。

まず、PHPプログラムのほうですが、

index.php

<?

require_once "libs/Smarty.class.php"; (1)

$name = "矢口真里"; (2)

$smarty = new Smarty; (3)
$smarty->clear_cache('index.html'); (4)
$smarty->assign("namae",$name); (5)
$smarty->display('index.html'); (6)
?>

"基本的な流れ"の続きを読む

| この記事へ | コメント (0) | トラックバック (0) | 先頭へ


2006年02月03日

プログラムからの値を表示してみる

サイトにアップして動かした時は、単に、テンプレートのHTMLをそのまま表示してただけでした。

では、データベースから取得した値を表示するとか、計算した結果を表示するとか、PHPのプログラムの結果の値を表示してみます。

テンプレートに名前を表示する箇所を追加します。

templates/index.html

<html>
<head>
<title>smarty test</title>
</head>
<body>
smarty テスト!!<br>
<br>
name[{$namae}]
</body>
</html>

{$namae}という記述を追加しました。実は、ここが、PHPプログラムからの値を表示する場所になります。

"プログラムからの値を表示してみる"の続きを読む

| この記事へ | コメント (4) | トラックバック (0) | 先頭へ