CSVを使ってテンプレート変数を一括作成
フォーマット化されたページ(支店ページや商品データベース等)をMODxで生成する場合、多くの入力項目(住所、連絡先、営業時間、地図の緯度・経度、…)が必要になりますが、それらは、テンプレート変数を多数作成することで実現できます。
その際、MODx管理画面から、ひとつ一つ、テンプレート変数を作成していっても良いのですが、これが結構な手間だし、人によってはたいへんなストレスになったりします。
テンプレート変数の定義データは、データベースでは、おおよそ(*1)「modx_site_tmplvars」テーブル1つですので、phpMyAdminを使って、単純にCSVをインポートすれば、一括で作成することができます。
■1.テンプレート変数定義ファイル(原本)の作成
Excel等の表計算ソフトを使って、テンプレート変数定義ファイル(原本)を作ります。
(1)まず、以下のフィールド名を1行目に並べます。(この順番通りに)
id type name caption description editor_type category locked elements rank display display_params default_text
※この1行目は、実際には使用しませんが、これが無いと入力しずらいですし、最初のカラム「id」が全行空欄だと、Excelはcsv保存時に1カラム目を削ってしまうようですので。(この対策としては、「'」を入れておくという方法もありますが)
(2)2行目以降に必要な定義情報を埋めていきます。
id | (空欄のまま:自動採番なので) |
type | 入力タイプ(「text」とか「image」とか…) |
name | 変数名 |
caption | 見出し |
description | 説明 |
editor_type | (空欄、もしくは「0」) |
category | カテゴリーID(※番号です)/デフォルト「0」 |
locked | 変数をロック(ロックする:「1」)/デフォルト「0」 |
elements | 入力時のオプション値 |
rank | 並べ替え順/デフォルト「0」 |
display | ウィジェット(「image」とか「delim」とか…) |
display_params | Widget プロパティ (「&align=none&alttext=[+pagetitle+]」とか…) |
default_text | 既定値 |
※「type」と「name」は以外は、空欄でも問題はありません。
(3)保存します。(Excel等の形式で良いでしょう)
■2.DBインポート用のCSVの作成
(1)先ほど作った原本から、CSV形式で保存します。
(Excelで開いているファイルは閉じておきます)
(2)エディタ等で開き、1行目を削除します。
■3.phpMyAdminでインポート
(1)「modx_site_tmplvars」テーブルを選びます。
(2)「インポート」を選びます。
(3)各項目を埋めていきます。
テキストファイルの位置 | (先ほど作ったCSVファイル) |
ファイルの文字セット | utf8 |
インポートするファイルの形式 | CSV |
フィールド区切り記号 | 「,」カンマ(半角英記号) |
フィールド囲み記号 | (空欄、もしくはデフォルトの「"」) |
(4)実行する。
■4.MODx管理画面を開いて確認
念のため確認して、終わり。
(*1)「テンプレートへのアクセス」「アクセス許可」は別のテーブルです。
-
-
-
-
-
-
- -
-
-
-
-
-
【参考】テンプレート変数の「入力タイプ」の設定名値
text | Text |
rawtext | Raw Text (deprecated) |
textarea | Textarea |
rawtextarea | Raw Textarea (deprecated) |
textareamini | Textarea (Mini) |
richtext | RichText |
dropdown | DropDown List Menu |
listbox | Listbox (Single-Select) |
listbox-multiple | Listbox (Multi-Select) |
option | Radio Options |
checkbox | Check Box |
image | Image |
file | File |
url | URL |
number | Number |
date | Date |
-
-
-
-
-
-
- -
-
-
-
-
-
【参考】テンプレート変数の「ウィジェット」の設定名値
datagrid | Data Grid |
floater | Floater |
marquee | Marquee |
richtext | RichText |
ticker | Ticker |
viewport | View Port |
htmlentities | HTML Entities |
date | Date Formatter |
unixtime | Unixtime |
delim | Delimited List |
htmltag | HTML Generic Tag |
hyperlink | Hyperlink |
image | Image |
string | String Formatter |