5-2.デザイン・テンプレートの独自カスタマイズ
ここではデザイン・テンプレートの独自カスタマイズについて説明します。
はじめに
echoCMSでは、テンプレート処理にSmartyを使用しております。
通常の静的HTMLに加え、動的処理をテンプレート内に記述することができます。
Smarty マニュアル | Smarty(http://www.smarty.net/docsv2/ja/)
使用可能定数
テンプレート内で使用できる定数は以下の通りです。
サイト全体に係る定数$cms
$cmsはサイト全体に係る設定値を取得することができます。
CMS管理画面「基本設定」の設定項目が多く含まれます。
$cms.id | CMS_IDを取得することができます。 (例:hogehoge.echocms.jp) |
$cms.domain | サイトドメインを取得することができます。(例:hogehoge.echocms.jp) |
$cms.title | サイトタイトルを取得することができます。 |
$cms.summary | サイト要約を取得することができます。 |
$cms.keywords | サイトキーワードを取得することができます。 |
$cms.header_logo | サイトロゴのURLを取得することができます。 |
$cms.footer_text | サイトフッターに表示するテキストを取得することができます。 |
$cms.main_rss | サイトのメインRSSのURLを取得することが出来ます。 |
$cms.mailform_email | メールフォーム送信先メールアドレスを取得することができます。 |
$cms.allow_comment | コメント許否設定を取得することができます。(1:許可、0:拒否) |
$cms.allow_trackback | トラックバック許否設定を取得することができます。(1:許可、0:拒否) |
$cms.allow_edit_comment | コメント編集の許否設定を取得することができます。(1:許可、0:拒否) |
$cms.comment_sort | コメントのソート順を取得することができます。(1:降順、0:昇順) |
$cms.trackback_sort | トラックバックのソート順を取得することができます。(1:降順、0:昇順) |
$cms.allow_mobile | モバイル端末からの閲覧許否設定を取得することができます。(1:許可、0:拒否) |
各ページに係る定数$page
$pageはサイト全体に係る設定値を取得することができます。
$page.id | ページの内部IDを取得することができます。 |
$page.url | ページのURLを取得することができます。(トップページは空白) |
$page.title | ページタイトルを取得することができます。 |
$page.summary | ページの要約を取得することができます。 |
$page.text | ページの内容を取得することができます。 |
$page.keywords | ページに設定されているキーワードを取得することができます。 |
$page.template_id | ページに設定されているテンプレートIDを取得することができます。(デフォルトテンプレートの場合は空白) |
$page.mobile_template_id | ページに設定されているモバイルテンプレートIDを取得することができます。(デフォルトテンプレートの場合は空白) |
$page.depth | ページの階層を取得することができます。(0は最上位) |
$page.parent_page_id | ページの親ページIDを取得することができます。(最上位の場合は空白) |
$page.page_order | 同一階層内でのページの並び値を取得することができます。 |
$page.lastupdate_user | ページを最後に更新したユーザーのIDを取得することができます。 |
$page.lastupdate | ページを最後に更新した日時をUnixTimeStamp形式で取得することができます。 |
$page.allow_mobile | ページのモバイル閲覧許否設定を取得することができます。(1:許可、0:拒否) |
$page.allow_comment | ページのコメント許否設定を取得することが出来ます。 |
$page.allow_trackback | ページのトラックバック許否設定を取得することができます。(1:許可、0:拒否) |
$page.show_mailform | ページのメールフォーム表示設定を取得することができます。(1:表示、0:非表示) |
$page.published_at | ページの日時をUnixTimeStamp形式で取得することができます。 |
$page.status | ページの公開設定を取得することができます。(1:公開、0:非公開) |
$page.created_at | ページの作成日時をUnixTimeStamp形式で取得することができます。 |
サイト階層情報に係る$pageTree
$pageTreeはサイトの階層情報に係る設定値を取得することができます。
メニュー生成などに利用されます。
$pageTree[].id | ページの内部IDを取得することができます。 |
$pageTree[].url | ページのURLを取得することができます。(トップページは空白) |
$pageTree[].depth | ページの階層を取得することができます。(0は最上位) |
$pageTree[].parent_page_id | ページの親ページIDを取得することができます。(最上位の場合は空白) |
$pageTree[].title | ページのタイトルを取得することができます。 |
$pageTree[].summary | ページの要約を取得することができます。 |
$pageTree[].show_menulist | メニューリストに表示するかどうかを取得することができます。(1:表示、0:非表示) |
$pageTree[].published_at |
ページの日時をUnixTimeStamp形式で取得することができます。 |
$pageTreeは2次元配列となっています。foreach文を使用して取得してください。
{foreach from=$pageTree item=value}
ページID:{$value.id}
ページURL:{$value.url}
階層:{$value.depth}
{/foreach}
メタタグの内容に係る$head
$head.summary |
要約に表示する内容を取得することができます。 |
$head.robots | ロボット向けに「index, follow」を表示します。 |
$head.keywords |
キーワードに表示する内容を取得することができます。 |
サイドバーウィジェットの内容に係る$sideBar
$sideBarはサイドバーウィジェットに係る設定値を取得することができます。
$sidebar[位置][].name | ウィジェット名を取得することができます。 |
$sidebar[位置][].widget_type |
ウィジェットのタイプを取得することができます。 rssico: RSSアイコン banner: バナー free: フリーゾーン recent_comment: 新着コメント recent_trackback: 新着トラックバック rss: RSSリーダー |
$sidebar[位置][].make |
表示するコンテンツを取得することができます。 |
$sideBarは3次元配列となっています。位置「left」に表示するウィジェットは、以下のようにして取得します。
{foreach from=$sidebar.left item=value}
ウィジェット名:{$value.name}
ウィジェットのタイプ:{$value.widget_type}
表示するコンテンツ:{$value.make}
{/foreach}
パンくずリストに係る$breadCrumb
$breadCrumbを使用すれば、最上位階層のページから現在のページまでの遷移情報を取得することができます。
$breadCrumb[].url | ページURLを取得することが出来ます。 |
$breadCrumb[].title |
ページタイトルを取得することができます。 |
$breadCrumbは2次元配列となっています。foreach文を使用して取得してください。
{foreach from=$breadCrumb item=value}
ページタイトル: {$value.title}
ページURL: {$value.url}
{/foreach}
コメントに係る$comment
現在のページに投稿されているコメントを取得することができます。
スレッド$comment[0]
$comment[0].id | コメントの内部IDを取得することができます。 |
$comment[0].name | コメントの投稿者名を取得することができます。 |
$comment[0].title |
コメントタイトルを取得することができます。 |
$comment[0].comment | コメントの内容を取得することができます。 |
$comment[0].created_at | コメントの投稿日時を取得することができます。 |
レス$comment[1]
スレッドに対するレスを取得することができます。
$comment[1][コメント内部ID].id | コメントの内部IDを取得することができます。 |
$comment[1][コメント内部ID].name | コメントの投稿者名を取得することができます。 |
$comment[1][コメント内部ID].title |
コメントタイトルを取得することができます。 |
$comment[1][コメント内部ID].comment | コメントの内容を取得することができます。 |
$comment[1][コメント内部ID].created_at | コメントの投稿日時を取得することができます。 |
トラックバックに係る$trackback
現在のページに投稿されているトラックバックを取得することができます。
$trackback[].id | トラックバックの内部IDを取得することができます。 |
$trackback[].blogname | トラックバックの送信元名を取得することができます。 |
$trackback[].url | トラックバックの送信元URLを取得することができます。 |
$trackback[].title | トラックバックのタイトルを取得することができます。 |
$trackback[].text | トラックバックの内容を取得することができます。 |
$trackback[].created_at | トラックバックの投稿日時を取得することができます。 |