HOME >  xoops技術報告書トップカテゴリー別記事一覧]  >  Smarty・php  >  Smarty  >  Smarty|Cycle関数

Smarty|Cycle関数 Smarty|Cycle関数

choromo
2007-9-5 21:01 [6416]
Smarty
コメント表示部へ コメント  友達に教える 友達に教える  プリンタ用画面 印刷ページ
順繰りに値を変化させたいときに便利な関数です

Smarty|Cycle関数

Cycle関数|値を順繰りに指定する

[2006-01-21 (土) 16:37]

テーブル内のセルの色を交互に2色またはそれ以上の色に変更したり、配列の値を順番に表示するような事が簡単にできます。

基本構文

<{cycle name values print advance delimiter assign}>

【属性(引数)】

属性名 必須 デフォルト 概要
values mixed Yes N/A カンマを境界としたリスト(delimiter属性を参照) 又は値の配列のどちらかによって循環される値
name string No default cycleの名前
print boolean No TRUE 値を表示するかどうか
advance boolean No TRUE 次の値に進むかどうか
delimiter string No , values属性で使用するためのデリミタ
assign string No n/a 出力が割り当てられるテンプレート変数

「values」以外の属性は何の役にも立ちませんねえ。いろいろ試してみたんですが,便利な使い方は見つかりませんでした。「print=false」は有効でしたが,falseにするんならCycle関数使う意味ないですし。

実例集

【実例1:テーブルの自動作成】

練習用ファイル=WeBLOGのテンプレート「weblog_entries.html」

いくつあるか分からないデータを3列に格納していきます。Excelに例えれば,1行目の3列目に値が入ると自動的に2行目に移動する,って感じですね。

<table><tr>
  <{foreach item="entry" from=$entries}>
  <td>
    <{$entry.title}>
  <{cycle values="<td>,<td>,</td></tr><tr>"}>
  <{/foreach}>
</tr></table>
【実例2:1行置きにクラス(class)を変える】

練習用ファイル=WeBLOGのテンプレート「weblog_entries.html」

クラス指定を順繰りに変化させます

<{foreach item="entry" from=$entries}>
  <p class=<{cycle values="red,blue,green,black"}>><{$entry.title}></p>
<{/foreach}>
【失敗する例】

練習用ファイル=WeBLOGのテンプレート「weblog_entries.html」
実例1と2を見ると,下記のようなことができそうな気になりますが,これは失敗します。

<table><tr>
  <{foreach item="entry" from=$entries}>
  <td class=<{cycle values="red,blue,green,black"}>>
    <{$entry.title}>
  <{cycle values="<td>,<td>,</td></tr><tr>"}>
  <{/foreach}>
</tr></table>

開始タグの最初の値と閉じタグの最初の値が対になって出てくれればいいんですが……。残念ながらそううまくはいきませんでした。
でも,テーブルを作っていて,行にスタイルを指定することはできるんですが,列に対してはひとつ一つのセルにclassかstyle指定しなければなりませんよね。第1列目のフォントサイズは全部20pxなんて指定,一度ではできません。だからこの関数で何とかならないかなあ,と期待したんですが。淡い夢でした。

コメント表示部へ コメント  友達に教える 友達に教える  プリンタ用画面 印刷ページ
ページナビ

コメント

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

コメント一覧

choromo  投稿日時 2008-12-24 10:48
ありがとうございます。
実際にコードを書いてどんなことができるようになるのかをやってみたいのですが,(やれるとしても,間違いなく)来年になります。
最近,xoops,Smartyに触れることがほとんどありません。どんどん忘れていくばかりです。
jk   投稿日時 2008-12-24 10:24
>「values」以外の属性は何の役にも立ちませんねえ。いろいろ試してみたんですが,便利な使い方は見つかりませんでした。
name属性は使うと思うよ。
{cycle name=&quot;aa&quot; valules=&quot;a,b,c,d,e,f&quot;}
{cycle name=&quot;aa&quot;}
{cycle name=&quot;aa&quot;}
{cycle name=&quot;aa&quot;}
{cycle name=&quot;aa&quot;}
{cycle name=&quot;aa&quot;}

>「print=false」は有効でしたが,falseにするんならCycle関数使う意味ないですし。

同様に print=false も上と組み合わせることで便利だと思う。
choromo  投稿日時 2008-11-4 9:55
貴重なご提案をいただいているのですが,現在,超多忙につき,コードを書いて実証することができません。
1月くらいは,手をつけられないと思います。
どなたか,うまくいったら,教えて下さい。
ゲスト   投稿日時 2008-10-29 15:54
&gt;【失敗する例】
name属性に違う名前を設定すればいけるのでは・・・?
Smarty入門
Smarty入門
PHP+テンプレート・エンジンでつくるMVCアプリケーション
2940円・山田 祥寛 著・翔泳社
xoops活用に欠かせないsmartyの基礎から応用まで。このサイトの改造も90%はsmartyのお世話に。

特選・おすすめメニュー
技術報告書主要カテゴリー
その他のカテゴリー記事
おすすめサイト
ワンダーお〜ぱ 別窓で開く:ワンダーお〜ぱ
Excel,Word,知的生産,情報整理,作文技術を磨くために - ワンダー・オーパ
Excelオンライン教室  別窓で開く:Excelオンライン教室 - ワンダー・オーパ
Excel「関数・機能・グラフ・編集」のオンライン自習室
xBeans 別窓で開く:知的生産の技術・情報整理術・文章術 - xBeans
価値ある情報を選択・整理,組み合わせて,活用,発信する技術
PachinkoMedia  別窓で開く:PachinkoMedia
パチンコ業界人の為のプロフェッショナルサイト。新鮮・希少な情報満載
パチログ Pachilog  別窓で開く:みんなでつくる日本最大のパチンコ店口コミ評価サイト パチログ
みんなでつくる日本最大のパチンコ店口コミ評価サイト