賢い短編小説
はじめに
これは、Smartyを使用するときに知っておくと便利な小さなストーリーのコレクションです。
ここにあるものは非常に便利ですが、ここを読む前に を読むことを強くお勧めします。
ページトップ
コンテンツリストanchor.png
ページはめ込みコンテンツ
序章
コンテンツリスト
基本的な文法
変数
条件分岐if / else if / elseステートメント
ループ処理(セクション)
ループ処理(フォアキャッチ)
現在のページモジュールを知る方法
トップページですか?
ルートコントローラーですか?
特定のページですか?
特定のモジュールのみを処理する
視聴者が誰であるかを知る方法
あなたは管理者ですか?
ログイン時にのみ表示
ログインしたユーザー以外にはユーザー情報を表示しない(アプリケーション1)
一般ユーザー(管理者でもゲストでもないユーザー)のみを表示します
ゲストのみに表示
特定のユーザーにのみ表示
特定のグループにのみ表示
ユーザーIDから取得した各種情報
プロファイルデータはXCL2.2でも取得できます
ユーザーアバターを表示する
XCL2,1では
XCl2,2では、1番目の引数:uid、2番目の引数:true = HTMLタグ付き、3番目の引数:アバターをクリックしたときにリンク先のURL
サイクル機能を備えたカスタマイズのヒント
theme.htmlで説明し、style.cssで使用します
theme.html説明例
style.cssの説明の例
特定のモジュールのテクニック
TinyDモジュールのID(コンテンツ番号)を取得します
picoテンプレートの親カテゴリごとに個別の処理
数値表記
カンマ区切りで表示する方法
小数点以下2桁までをカンマで区切って表示する方法
日付表記
「○年○月○日」の表示方法1
「○年○月○日」の表示方法2
新着の新規表示
文字列処理
メールアドレス収集ボット対策
大文字(インデックス⇒インデックス)
文字列の置換
テキストボックスに改行を入力します
日本語の文字列を丸めたい(mb_truncate)
その他の特別なテクニック
コメントアウトは表示されません
部分的にスマートなデバッグモード
配列変数が何を持っているのか知りたい
スマート変数の内容に応じた処理
他のテンプレートがテンプレートに含まれている場合の処理Smartyスモールストーリー/発信者
ページトップ
基本的な文法anchor.png
ページトップ
変数anchor.png
基本的に<{$ vars}>と記述されます。 <{}>で囲むと、賢い変数処理になります。 PHP定数の場合は、<{$ smarty.const.MY_CONST_VAL}>として参照できます。
ページトップ
条件分岐if / else if / elseステートメントanchor.png
変数の値に応じて処理を変更したい場合に使用します。
<{if $ country eq “JPN”}>
日本
<{elseif $ country eq “USA”}>
アメリカ合衆国
<{else}>
いらっしゃいませ
<{/ if}>
eqは==と同じです。 neはと同じです! =。その他は>と<=です。
ページトップ
ループ処理(セクション)anchor.png
次の場合、$リンクに割り当てられた配列は継続的に処理されるため、セクションの$ link.xxxで参照できます。
<{セクション名= iループ= $リンク}>
<{include file = “db:main_link.html” link = $ Links [i]}>
<< {/セクション}>
インクルードファイルを使用して別のテンプレートを呼び出すこともできます。
ページトップ
ループ処理(フォアッチ)anchor.png
セクションとほぼ同じです。セクションよりも推奨されます。
<{foreach item = subcat from = $ subcategories}>
<{$ subcat.title}>
<{/ foreach}>
ページトップ
現在のページモジュールを知る方法anchor.png
主にテーマ(theme.html)で使用されます。
ページトップ
トップページですか?アンカー.png
<{if $ xoops_requesturi == ‘/ index.php’または$ xoops_requesturi == ‘/’}>
user.phpなどを見たときに判断から外すことができます。
* XOOPSがドキュメントルート以外の場所にインストールされている場合(例:/ html /)
<{if $ xoops_requesturi == ‘/ html / index.php’または$ xoops_requesturi == ‘/ html /’}>
と。
再びXCLの場合
<{if! $ legacy_module}>
そうすると、トップページの判断に近いと思われます。
ただし、InquirySPモジュールをサポートしていないようです。また、PHPコードに関連する{xoopsform}をカスタムブロックに記述して表示すると、トップページの{legacy_module}にもレガシー値が入力されます。
XCLでも、上記の例では$ xoops_requesturiを使用して判断されますが、サイトによって/ html /部分が異なるため、配布テーマには使用できません。
XCLの場合、SCRIPT_FILENAMEはLegacy_Controllerによって可能な限り設定されているように見えるので、
アイデアは同じ判断をすることです。
<{if $ smarty.server.SCRIPT_FILENAME | basename == “index.php”および$ smarty.server.SCRIPT_FILENAME | dirname | basename == $ smarty.const.XOOPS_ROOT_PATH | basename}>
もしそうなら、サイトの深さに関係なく判断できるようですが、どうでしょうか。
ページトップ
ルートコントローラーですか?アンカー.png
トップページだけでなく、/ user.php /userinfo.php/register.phpなども含まれています。
<{if $ xoops_dirname == false}> ….. <{/ if}>これ<{if!$ xoops_dirname}> ….. <{/ if}>
さらに、XCL以降、一部のルートコントローラーにはXCLが必要なモジュールも含まれているため、/ user.phpにはユーザー、/ notifications.phpにはレガシー、/ viewpmsg.phpにはpmなどとdirnameがあります。私は何かを持っています。
ページトップ
特定のページですか?アンカー.png