テンプレートパーツの解説(※上級者向け)
テンプレートや、管理画面の編集で選べるパーツプルダウンに関する解説になります。
マニュアル用に、配布中の初心者向け(beginner9_white)を使っています。同じファイルをDLして読まれるとより理解できると思います。
themes/beginner9/white/直下にあるファイル・フォルダの説明

- cssフォルダとjsフォルダ … テンプレート用のcssとjsです。(imagesがあるテンプレもあり)
- partialsフォルダ … index.htmlとpage.htmlのプレースホルダーで実際に使うhtmlや、管理画面のパーツプルダウン用のhtmlが入っています。
- theme.formdef.json … 管理画面の「サイト基本設定」で設定できる情報をここで設定します。
- index.html と page.html … それぞれトップページ用、その他ページ用の骨格用ファイルです。他のhtmlは使えません。
index.html と page.htmlで使えるプレースホルダー
以下のプレースホルダーを使って、骨格の中身を配置します。
使えるプレースホルダーは決まっています。
- {{META_TITLE}} … 管理ページのページ編集画面の最上部にある「サイトタイトル」を出力します。
- {{META_DESCRIPTION}} … 管理ページのページ編集画面の最上部にある「サイト説明」を出力します。
- {{HEADER}} … partialsのheader.html(またはトップ専用header.index.html)を読み込みます。実際のデータ入力は、管理画面の「サイト基本設定」です。theme.formdef.jsonのHEADERに設定したものが管理画面で入力できるようになります。
- {{MAINIMG}} … partialsのmainimg.htmlを読み込みます。実際のデータ入力は、管理画面の「サイト基本設定」です。theme.formdef.jsonのMAINIMGに設定したものが管理画面で入力できるようになります。
- {{CONTENT}} … 管理画面のページ編集の「パーツ選択」プルダウンを使って積み上げた情報がまとまって入ります。
- {{NAV}} … 管理画面の「メニュー設定」で、1つ目のチェックが入ったものだけを出力します。<li>〜</li>で出力されるので、親要素はhtml側(index.htmlとpage.html)で準備して下さい。
- {{NAV_SUB}} … メインメニューとは異なる構成でメニューブロックを作りたい場合に使用します。使わなくても構いません。管理画面の「メニュー設定」で、2つ目のチェックが入ったものだけを出力します。<li>〜</li>で出力されるので、親要素はhtml側(index.htmlとpage.html)で準備して下さい。
- {{FOOTER}} … partialsのfooter.htmlを読み込みます。実際のデータ入力は、管理画面の「サイト基本設定」です。theme.formdef.jsonのFOOTERに設定したものが管理画面で入力できるようになります。
- {{FREE_AREA}} … partialsのfree_area.htmlを読み込みます。実際のデータ入力は、管理画面の「サイト基本設定」です。theme.formdef.jsonのFREE_AREAに設定したものが管理画面で入力できるようになります。
theme.formdef.json について
- theme.formdef.jsonは、以下の2ブロックに分かれています。
site_fields(共通設定)
site_sections(テーマ専用設定)
site_sectionsは、HEADER、MAINIMG、FREE_AREA、FOOTERの4つしか扱えないので注意。
- site_fieldsで使えるtype … text / textarea / file
- site_sectionsで使えるtype … text / textarea / file / radio / select / table
- 補足:checkboxも使えるのですが、1つのkeyに対して1つのチェックボックスしか使えないので、あまり用途がありません。radioのようにvalueの出力もできないので、IFに使用するぐらい(チェックがあれば、何かを出力など)かと。clinic6でこの切り替えに使っています。
↓ 全部入りのデモコード。(※これだけではサイト側には出ません。htmlの設定も必要です)
partialsフォルダ内の各htmlファイル
index.htmlとpage.htmlのプレースホルダーで実際に使うhtmlや、管理画面のパーツプルダウン用のhtmlが入っています。

基本的に必須なhtml
- contact_form.html … フォーム用。
- credit.html … ライセンス管理用。勝手に削除すると重大な規約違反になるので注意。
- footer.html … フッター用。theme.formdef.jsonでFOOTERを使っている場合に適用されます。(※パーツプルダウンには出ません)
- header.html … ヘッダー用。theme.formdef.jsonで、HEADERを使っている場合に適用されます。(※パーツプルダウンには出ません)
- mainimg.html … メインイメージ用。theme.formdef.jsonで、MAINIMGを使っている場合に適用されます。(※パーツプルダウンには出ません)
- news_archive.html … お知らせ(一覧ページ)用。
- news.html … お知らせ(トップページ)用。
トップページだけヘッダーを変更したい場合
デザインによって、トップページだけヘッダーを変更したい場合もあると思います。その場合、header.index.htmlというファイル名で準備すれば、トップページにだけそのファイルが適用されます。
どのhtmlが管理ページのパーツ選択プルダウンか知りたい場合は、FAQを参照して下さい。
上記以外のhtml内のコード解説(主に管理画面のパーツプルダウン用)
主に、「1回のみ使用パーツ」「繰り返し登録できるROWSパーツ」「TABLEパーツ」の3タイプが使えます。
1回のみ使用パーツの解説。
- beginner9/white/partials/img.htmlを見てみましょう。

<!-- tpcms-form: {と} -->は、管理画面のフォームとして出力させるために無条件に必要なコードです。
- labelは、管理画面のプルダウンに出力される文字列。

- categoryは、プルダウン群をカテゴリー別にまとめたい場合に使います。
labelとcategoryの冒頭の2桁の数字とアンダーバーは並び順の指示で、小さな順に並びます。なくても構いません。(数字は管理画面には出ません)
- fieldsが管理画面に実際に出力される入力フォームの設定箇所です。fieldsで使えるtype(フォームの種類)は、text(1行テキスト入力)、textarea(複数行テキスト入力)、radio(ラジオボタン)、checkbox(チェックボックス ※Ver202510-9以降)、file(ファイルのアップロード)です。
textareaの使用例:
{ "key":"TEXT", "type":"textarea", "label":"文章を入力します" }
fileの使用例:
{ "key": "FILE", "type": "file", "label": "画像をアップロードします", "image_max_width": 2500, "image_quality": 82 }
radioの使用例:
{ "key": "SHOW_BTN", "type":"radio", "label":"ボタンの表示指定", "options":[["show", "表示する"],["hidden","表示しない"]]}
checkboxの使用例:(※Ver202510-9以降より使用可)
{ "key": "ICONS", "type":"checkbox", "label":"アイコン選択", "options":[["male", "男の子"],["female","女の子"]]},
checkboxだけは、htmlへの出力方法が2通りあり、上記の例で2つともチェックした場合に
{{ICONS_HTML}}と書けば、
male female
と出力され(classなどに向く)、
{{ICONS_SPANS_HTML}}と書けば、
<span class="male">男の子</span><span class="female">女の子</span>
とspanに囲まれた状態でそれぞれ出力されます。
いずれかご希望に合う方でご利用下さい。(その他の出力方法はありません)
尚、IFを使う場合は、上記の場合は、
{{#IF_ICONS}}{{ICONS_HTML}}{{/IF_ICONS}}
や、
{{#IF_ICONS}}{{ICONS_SPANS_HTML}}{{/IF_ICONS}}
として下さい。HTMLやSPANSの部分はIFには入れません。
keyは、任意の文字列で構いません。大文字の英字、数字、アンダーバーが使えます。同じkeyを同一html内で使わないように。
labelは、フォームの上に出る水色の見出しです。
image_max_widthやimage_qualityは、このあと解説する「オプション」を読んで下さい。
- 一番最後の、imgの行は、htmlタグです。管理画面で入力したデータがここに出力されます。今回は画像だったので、.uploads/とフォルダを参照して、keyを指定しています。
{{と}}の間にkeyを入れて使います。
- よくある質問:「partialsで新しいパーツブロックを作ったのですが、管理ページのプルダウンに出ません。」
繰り返し登録できるROWSパーツの解説
TABLEパーツの解説
管理画面で一回だけ選べるパーツ
"once": true,
特殊なレイアウト用などで、複数使うと崩れるような場合は、一回だけ使用を許可する指定があります。(一回使った場合は、パーツプルダウンから非表示になる。)
以下は、artist2のnews.htmlの使用例です。

オプション
- text と textareaには、required(入力必須)、maxlength(最大文字数)、placeholder(予めエリアに入れておく見本テキスト)が使えます。
- file(画像)には、image_max_width(最大幅)、image_max_height(最大の高さ)、image_quality(圧縮)が使えます。
image_max_width / image_max_heightについては、JPEG / PNG / WebP に対応(サーバーにGD必須)。
image_qualityは、JPEGに対応。1–100の値で設定。※image_max_width または image_max_heightの設定も必須です。単体では効きません。
- selectには、allow_emptyとplaceholderが可能。allow_emptyはセレクトの先頭に「空の選択肢(value="")」を追加する指示。placeholderはその空の選択肢の表示テキスト。
(※使えるのは、「ページ編集」の方のみ。サイト基本設定画面では使えません。)
↓ 以下使用例。