コンフィグの基本

a-blog cms の設定をコンフィグと呼びます。このコンフィグはブログ毎にあり、子ブログでは個別の設定が必要になります。また、下記のyamlファイルがコンフィグの初期値を設定しているファイルになり、子ブログを追加した際には、このファイルに設定してあるテーマでブログ追加される事になります。

デフォルトの設定

/private/config.system.default.yaml

このファイルに初期のテーマ設定やモジュールの表示件数などさまざまな設定が定義されています。アップデートの時にファイルを差し替えるためと、システム側で内容をキャッシュしているため、直接このファイルの中身を編集しないようにします。上書き用ファイルに変更を追加してください。

ユーザー上書き用ファイル

/private/config.system.yaml

このファイルには何も書かれていません。config.system.default.yamlから上書きしたい設定と値をコピーしてきてファイルに定義します。このファイルはアップデートの時にファイルを差し替えないようしてください。

config.system.yamlで上書きする

例えば、子ブログを新規作成したときはBlogテーマが設定されます。それはconfig.system.default.yamlのthemeがblogと定義されているからBlogテーマになります。

## テーマ
theme : blog
load_yaml_tpl : on

/private/config.system.default.yamlのtheme設定をconfig.system.yamlにコピーしてきます。config.system.yamlのthemeをsiteにすると子ブログを作成したときにSiteテーマが設定されるように上書きすることができます。

## テーマ
theme : site

a-blog cmsのコンフィグ一覧

a-blog cmsのコンフィグ一覧

CSVファイルをインポートしてエントリを一括更新しよう

ハンズオン「CSVファイルをインポートしてエントリを一括登録」では、CSVファイルを使った一括登録をしましたが、ここでは逆に、エントリのデータをCSVファイルにダウンロードする方法と、そのファイルを使った一括更新の方法を試してみましょう。

  • CSVファイルでのダウンロードの準備
  • CSVファイルを使ったエントリの一括更新

ダウンロードモジュール | モジュール | ドキュメント | a-blog cms 制作者向け情報

CSVファイルでのダウンロードには、ダウンロードモジュールを使用します。

ダウンロードモジュールとは、任意のファイルをダウンロードできるようにするモジュールです。a-blog cmsのデータベースに格納されているデータを取り出して任意の形式のファイルに出力し、そのファイルをダウンロードできるようにします。

出力するファイルは、CSVやXML形式など任意の形式で作成でき、モジュールやグローバル変数などを記述してカスタマイズが可能です。

ダウンロードさせたいファイルのテンプレートを作成します。CSVやXMLなど任意のテキスト形式のテンプレートファイルを作成できます。テンプレートですので、モジュールやグローバル変数を記述できます。

今回は例として、ハンズオン「CSVファイルをインポートしてエントリを一括登録しよう」で作成した「会員紹介」のエントリデータをCSVファイルでダウンロードできるようにしてみましょう。

ダウンロードされるCSVファイルのテンプレートとして以下のようなファイルを作成します。これは、Entry_Bodyモジュールを使用して、会員紹介のエントリをCSV形式のファイルに出力する場合の例です。

※ここではEntry_Bodyモジュールを使用していますが、標準の出力件数や条件など変更が必要な場合はモジュールIDを作成して使用しましょう。

entry_title,entry_id,kana,email,sex,age,birthday,marriage,pref,phone,carrier,curry
<!-- BEGIN_MODULE Entry_Body id="membersCSV" --><!-- BEGIN entry:loop -->"{title}[escquot]","{entry:loop.eid}","{kana}[escquot]","{email}[escquot]","{sex}[escquot]","{age}[escquot]","{birthday}[escquot]","{marriage}[escquot]","{pref}[escquot]","{phone}[escquot]","{carrier}[escquot]","{curry}[escquot]"
<!-- END entry:loop --><!-- END_MODULE Entry_Body -->

CSV形式では、ダブルクォーテーションで囲まれた中にダブルクォーテーションが含まれている時のために、ダブルクォーテーションをエスケープする校正オプション[escquot]を指定しています。(CSVの仕様につきましては、他のWebサイトを参照してください。)

ここではEntry_Bodyモジュールを使用して出力していますが、モジュールIDを作成して指定することで、件数やデータの表示順を指定できます。


モジュール作成(条件設定)画面

CSV出力用のモジュールIDを作成


モジュール作成(表示設定)画面

件数を増やしておきましょう


上記のソースを記述したら、ファイル名を「download.csv」として保存します。ここでは例として「csv」というディレクトリをテーマディレクトリ内に作成し、/themes/simple2016/csv/download.csv とします。

次に、ファイルをダウンロードするためのフォームボタンを作成します。テンプレートの任意の場所にフォームボタンを設置できます。手順1で作成したCSVファイルをダウンロードする場合は、以下のようなソースを記述します。

<form action="会員リスト.csv" method="post">
    <input type="hidden" name="bid" value="1" />
    <input type="hidden" name="cid" value="6" />
    <input type="hidden" name="tpl" value="csv/download.csv" />
    <input type="hidden" name="charset" value="Shift_JIS" />
    <input type="submit" name="ACMS_POST_Download" value="会員紹介をCSVファイルでダウンロード" />
</form>

※ここではsimple2016にカテゴリID6で「会員紹介」が作られている前提で記述しています。

今回は、ログイン後の画面上部に表示される管理ボックス内にボタンを表示させるため、 /themes/system/admin/action.html を /themes/simple2016/admin/action.html として複製し、ここに追記しましょう。


ダウンロードボタン

ダウンロードボタンを追加


このモジュールでCSVファイルをダウンロードした結果が、以下の内容になります。

entry_title,entry_id,kana,email,sex,age,birthday,marriage,pref,phone,carrier,curry
"有田 季衣","211","ありた きえ","arita_toshie@example.com","女","41","1974/9/6","既婚","北海道","080-8766-3232","ドコモ","左ルー・ナン派"
"川島 敏和","208","かわしま としかず","kawashima_toshikazu@example.com","男","57","1958/5/30","既婚","栃木県","080-9837-4008","ドコモ","右ルー・ルー攻め派"
"長友 希","180","ながとも き","nagatomo_nozomi@example.com","女","35","1980/8/29","既婚","岡山県","080-2317-6705","au","右ルー・別口派"
"板倉 ヒロ","169","いたくら ひろ","itakura_hiro@example.com","男","61","1955/4/29","既婚","奈良県","080-7126- 566","ソフトバンク","ぶっかけ・混ぜ混ぜ派"
"川畑 和之","132","かわはた かずゆき","kawahata_kazuyuki@example.com","男","56","1960/1/11","既婚","三重県","080-8816-8138","ドコモ","ぶっかけ・せき止め派"
(情報多数のため以下省略)

今回ダウンロードしたCSVファイルのデータには「entry_id」の項目が含まれていますので、データを編集後、本ハンズオンの「CSVファイルによるエントリの追加」の手順でCSVファイルをインポートすることで、新規エントリの追加ではなく、既存エントリ(同じ「entry_id」のエントリ)の更新となります。

このような方法により、複数のエントリを少ない手数で一括更新できます。

フォームの入力ステップを分割してみよう( 後編 )

一連のフォームとして動作するように画面遷移を設定

前回の前編では、下準備としてステップの名前と、そのステップに含まれる入力フォームの編集までを行いました。今回は、それらのステップを一連のフォームとして実際に動作するように、ステップ間の遷移をつなげていきます。

php5.4の動作状況について


php5.4対応状況

現状、a-blog cmsの対応phpのバージョンですが、5.1.6〜5.3.xになっており php5.4には対応しておりません。 対応していない原因ですが、ioncube loader がphp5.4だとうまく動かない箇所があり 様子を見ている状態でした。

最近になり、ioncube loaderのバージョンもあがり検証が出来る環境になりましたので 検証結果をここでしたいと思います。

検証環境

一般設定項目

コンフィグの一般設定項目について解説します。


一般設定項目一覧

一般設定項目一覧


各項目の解説についてはヘルプのツールチップをクリックすると解説をみることができます。



機能設定


機能設定では機能に関する利用設定があります。  

基本

基本的な機能のON/OFFを設定できます。


基本の設定画面

基本の設定画面


項目名 説明
RSS,Sitemap.xml 出力なし チェックをつけると、RSSとSitemap.xml に出力をしないように設定します。
メールマガジン エントリーを、ブログの登録ユーザー(メールマガジン配信希望者)にメールとして配信できるようになります。
バージョン管理 チェックをするとエントリーのバージョン管理ができるようになります。
動的フォーム チェックをするとエントリー毎にフォームの作成ができるようになります。
メディア管理 チェックをするとメディア(アップロードした画像)の管理ができるようになります。
レイアウト表示 チェックをするとブログ間でレイアウトを共有できるようになります。
オンラインアップデート システム更新のバージョンアップ対象のバージョンを指定します。

エントリー同時編集ロック(プロフェッショナル版以上)

同時編集による記事の上書きを防ぐために、エントリーにロックをかける機能の設定になります。

プロフェッショナル・エンタープライズで有効な設定です。


 エントリー同時編集ロック設定画面

エントリー同時編集ロック設定画面


項目名 説明
同時編集ロック機能 チェックをするとエントリーのロック(排他制御)が利用できるようになります。
アラートのみ チェックをすると実際のエントリーのロックはしないで、アラートのみ表示します。
ロック有効期限 エントリーのロック有効期限。この時間を過ぎると自動的にロックを解除します。

プレビュー

記事をプレビューするための機能の設定になります。プレビューする時の画面サイズを設定することができます。


プレビューの設定画面

プレビューの設定画面


項目名 説明
プレビュー時の初期デバイス プレビュー時のデフォルトの閲覧デバイスを設定します。
承認プレビュー時の初期デバイス プレビュー時のデフォルトの閲覧デバイスを設定します。
タイムマシン時の初期デバイス タイムマシンモード時のデフォルトのデバイスを設定します。
プレビュー共有の有効期限 プレビューを共有した時の有効時間を設定します。

位置情報

ブログ、カテゴリー、エントリー、ユーザーに位置情報を持たせる設定を行うことができます。


位置情報の設定画面

位置情報の設定画面


項目名 説明
入力マップタイプ 使用するマップを指定します。
ブログの位置情報 チェックすると、ブログの位置情報機能が有効になります。
カテゴリーの位置情報 チェックすると、カテゴリーの位置情報機能が有効になります。
エントリーの位置情報 チェックすると、エントリーの位置情報機能が有効になります。
ユーザーの位置情報 チェックすると、ユーザーの位置情報機能が有効になります。

コメント

コメント機能に関する設定を行います。


コメントの機能設定

コメントの機能設定


項目名 説明
コメント機能 エントリーのコメントを受け取るか/受け取らないかの設定します。コメントフォームはテンプレート内のentry_bodyモジュールに記述されている必要があります。
コメント受信時の初期状態 投稿されたコメントが「承認待ち」「公開」「非公開」のどの状態になるか選択します。「公開」以外の場合は、編集者以上の権限を持つユーザーが個別に公開するものになります。
ブラックリスト コメントに対するNGワードの設定です。カンマ、スペース、改行のいずれかで単語が区切れます。
コメントクッキー有効時間 コメント欄で「Cookieに保存」のチェックボックスにチェックした場合、この有効時間内は名前などの情報がコメントした人のブラウザに保持されます。

キャッシュ設定

キャッシュに関する設定を行えます。

ページキャッシュ設定

最終的に表示されるHTMLをキャッシュするページキャッシュについての設定を行います。


ページキャッシュの設定画面

ページキャッシュの設定画面


項目名 説明
ページキャッシュ ページキャッシュ機能の設定状態です。チェックが外された場合、キャッシュ機能は動作しません。
POST時のキャッシュクリア エントリー保存や設定変更時にキャッシュをクリアするか設定します。
読者ユーザーの場合 ログイン時は通常ページキャッシュが使用されませんが、読者ユーザーの場合ページキャッシュを有効にします。
キャッシュ有効時間 キャッシュが有効な時間です。この時間内で同じデータに複数回アクセスがあった場合、2回目以降はキャッシュファイルが表示されます。
エントリーキャッシュ有効時間 エントリーキャッシュが有効な時間です。この時間内で同じデータに複数回アクセスがあった場合、2回目以降はキャッシュファイルが表示されます。
キャッシュクリアの対象ブログ キャッシュをクリアするターゲットのブログの決め方を指定します。

クライアントキャッシュ設定

ブラウザにキャッシュさせるクライアントキャッシュについて設定を行います。


クラアントキャッシュの設定画面

クラアントキャッシュの設定画面


項目名 説明
キャッシュ有効時間 サイトを閲覧している端末のクライアント(ブラウザ)のキャッシュの有効時間です。この時間内はクライアント側のキャッシュが使用されサーバにアクセスしません。そのためページが更新された場合にも反映されないことが発生します。CMS側からキャッシュは削除できないため、この時間は数分など短い時間に設定ください。

ログイン設定

ログインに関する設定を行えます。

基本設定

ログイン・ログイン中の挙動に関する基本的な設定を行います。


基本設定の画面

基本設定の画面


項目名 説明
現在のURLでログイン ログイン後にリダイレクトされずに、そのままのページでログインします。
ログイン後ページの指定 ログイン後に表示したい管理ページのacmsパスを指定できます。
ログイン中の投稿者 チェックをすると投稿者権限ユーザーがログインしている場合、自身が投稿したエントリーのみ表示されるようになります。
編集、管理ページ以外の表示 チェックをすると投稿者以上の権限であっても管理画面、編集画面以外は、読者(閲覧者)と同じ条件で表示するようになります。
一般サインイン権限 一般サインインページからログインできる権限を設定します。
ログインページの指定 シークレットブログで表示するログイン画面を選択します。

メール認証サインイン(管理ログイン)

一般サインインと管理ログインのそれぞれで、パスワードの確認をしないメール認証でのログインをするか設定を行います。


メール認証サインインの設定画面

メール認証サインインの設定画面


項目名 説明
メール認証での管理ログイン チェックをするとパスワードを使わずメール認証で管理ログインを行います。
メール認証でのサインイン チェックをするとパスワードを使わずメール認証でサインインを行います。
サインインの有効時間 パスワード再発行リンクの有効時間の設定をします。

セキュリティ

ログイン周りのセキュリティに関して設定を行います。


セキュリティの設定画面

セキュリティの設定画面


項目名 説明
ログインクッキー有効時間 この有効時間内はログイン状態を保持できます。
アカウントロック パスワード入力の失敗回数の制限を設定できます。
アカウントロック時間 アカウントロックされた場合のロック時間を設定します。
パスワード変更の有効時間 パスワード再発行リンクの有効時間の設定をします。
2段階認証 2段階認証を利用できるか設定します。

パスワードポリシー

パスワードポリシーについて設定を行います。

簡単なパスワードが設定できてしまうと、簡単にパスワードを特定される恐れがあるので、パスワードポリシーを設定し簡単なパスワードが設定できないようにしましょう。


パスワードポリシーの設定画面

パスワードポリシーの設定画面


項目名 説明
最小文字数 最小文字数を設定します。
最大文字数 最大文字数を設定します。
大文字 半角大文字を1つ以上含めることを必須にするか設定します。
小文字 半角小文字を1つ以上含めることを必須にするか設定します。
数値 半角数値を1つ以上含めることを必須にするか設定します。
記号 半角記号を1つ以上含めることを必須にするか設定します。
種類 大文字、小文字、数値、記号のうち3種類以上使用の判定を設定します。
メッセージ パスワード入力時に表示するメッセージ。
ブラックリスト パスワードで使うNGワードの設定です。カンマ、スペース、改行のいずれかで単語が区切れます。

会員登録機能

会員登録に関する設定を行います。


会員登録機能の設定画面

会員登録機能の設定画面


項目名 説明
ユーザー登録の外部申請 チェックをすると、外部からのユーザー登録申請を有効にします。ログインページ内に新規ユーザー登録ページへのリンクが表示されます。
メールアドレスの有効性確認 チェックをすると、ユーザー登録フォームに入力された内容で、即座に有効なユーザーが作成されます。チェックをしない場合は仮ユーザーとして作成し、登録者宛メールに記載されているパスワードを使って最初にログインした時点で有効なユーザーとして登録します。
確認メールの有効時間 外部申請からのユーザー登録後の有効リンク有効時間の設定をします。
どこでもログイン 会員を「どこでもログイン」を有効で作成するようにします。
権限 外部申請から登録を行うユーザーの権限を設定します。
ステータス 外部申請から登録を行うユーザーのステータスを設定します。

退会機能

退会機能に関する設定を行います。


退会機能の設定画面

退会機能の設定画面


項目名 説明
削除タイプ 退会処理で、ユーザーを論理削除するか、物理削除するか設定します。論理削除は退会ステータスにするだけでデータは削除しません。物理削除はデータベースからデータを削除します。
データ保存期間 論理削除の場合、何日後に物理削除するか指定します。

SNSログイン

SNSを使った、会員登録やログインをするための設定を行います。


SNSログインの設定画面

SNSログインの設定画面


項目名 説明
SNSログイン機能 チェックをするとSNSログインができるようになります。
SNSログイン使用権限 SNSログイン機能を使えるユーザー権限を設定します。
Google 取得したGoogle認証情報をセットします。
LINE 取得したLINE認証情報をセットします。
X(旧Twitter) 取得したX認証情報をセットします。
Facebook 取得したFacebook認証情報をセットします。

API設定

モジュールIDが出力する変数をAPI(JSON)で取得できる機能の設定を行います。

設定

API機能を使用するかどうかや、APIキーを確認、再生成する設定を行います。


API設定画面

API設定画面


項目名 説明
API有効化 APIを有効化するかどうかを設定します。
X-API-KEY ここに表示されている値を、APIへのリクエストのヘッダーに設定します。
Allow-Origin Access-Control-Allow-Originに設定するドメインを入力します。

API制限

APIへのアクセスを制限する設定を行います。


API制限の設定画面

API制限の設定画面


項目名 説明
HTTP リファラー HTTP リファラーで API を制限します。
IPアドレス IPアドレスで API を制限します。

出力設定

最終的にHTMLとして出力する時の設定を行えます。


出力設定画面

出力設定画面


変換

HTMLを変換・修正する設定を行います。


変換の設定画面

変換の設定画面


項目名 説明
文字コード ブログの文字コードを「Shift_JIS」「UTF-8」「EUC-JP」に変更します。
HTTP圧縮 対応ブラウザからのアクセス時に、gzip圧縮でデータを送信します。
HTMLコメントの削除 出力するHTMLソースからHTMLコメント(<-- コメント -- >)を取り除きます
余分な空白の削除 出力するHTMLソースから余分な空白を取り除きます。連続する空白文字(改行、スペース、タブ)の二つ目以降が取り除かれます。
定数定義ファイルの指定 ( 絵文字 ) 絵文字用の定義ファイルの場所を指定します。
キャッシュバスティング リソースのパスの最後にクエリを追加することで、ブラウザキャッシュをクリアするようにします。
全角/半角の変換 全体のデータに、変換をかけます。設定値は、PHPのmb_convert_kana関数に準拠します。

コンテントタイプと拡張子の関連付け

ファイルと拡張子を関連付けしてファイルの種類を変更することできます。コンテンツを特定のコンテントタイプ(MIME)と拡張子を判断させることができます。


コンテントタイプと拡張子の関連付けの設定画面

コンテントタイプと拡張子の関連付けの設定画面


項目名 説明
コンテントタイプ コンテントタイプ(MIMEタイプ)を指定します。
拡張子 拡張子の指定します。

アクセス設定

アクセス制限に関する設定を行えます。

管理ログイン制限

管理ログインページへのアクセスを制限する設定を行います。


管理ログイン制限の設定画面

管理ログイン制限の設定画面


項目名 説明
許可リスト 指定されたIPアドレスからのアクセスに限り管理ログインできるようになります。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)
拒否リスト 指定されたIPアドレスからのアクセスに限り管理ログインが拒否されるようになります。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)

一般サインイン制限

一般サインインページへのアクセスを制限する設定を行います。


一般サインイン制限の設定画面

一般サインイン制限の設定画面


項目名 説明
許可リスト 指定されたIPアドレスからのアクセスに限り一般サインインできるようになります。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)
拒否リスト 指定されたIPアドレスからのアクセスに限り一般サインインが拒否されるようになります。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)

権限制限(デバッグモード中は、この機能は有効になりません。)

権限毎にアクセスできる接続元の設定を行います。


権限制限の設定画面

権限制限の設定画面


項目名 説明
制限リスト 指定した権限でアクセスできる接続元(IPアドレス)を設定できます。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)

ベーシック認証

サイトにベーシック認証をかける設定を行います。


ベーシック認証の設定画面

ベーシック認証の設定画面


項目名 説明
アカウント ベーシック認証に使用するユーザー名とパスワードを設定します。
認証スキップ 指定されたIPアドレスからのアクセスに限り、ベーシック認証をスキップできます。指定はCIDR記法で指定します。(xxx.xxx.xxx.xxx/32)

メニュー管理

管理画面のメニュー項目をカスタマイズするための設定を行えます。


メニュー管理の設定画面

メニュー管理の設定画面

  • 各レーンで「項目を追加」をクリックすると、好きな名前、URL、アイコンでメニューを増やせます。
  • ドラックアンドドロップで、メニューの移動が可能です。
  • 一番左にある「表示させない」レーンにメニューを持ってくると、そのメニューが表示されなくなります。
  • 「列を追加」ボタンを押すことで、メニューグループ(レーン)を増やすことができます。