a-blog cmsについて

目次

基本的な表示のプロセス

テーマとテンプレートによる表示

a-blog cmsはどのようにして各ページを出力しているかを解説しながら、表示のための仕組みや必要なファイル、記述についての基本を理解しましょう。解説内の各項目については、それぞれ別に章を設けて詳しく解説していきます。

テーマによる表示テンプレートの確定

a-blog cmsはテーマ設定に従い表示テーマが決められます。


同梱テーマ「site2016」と「blog2016」

同梱テーマ「site2016」と「blog2016」


このテーマ設定により、トップページ、一覧ページ、エントリー詳細で使用するテンプレートファイルが指定されています。
なお、テーマ内のテンプレートファイルと同名のファイル名が呼び出された場合、エントリー詳細に指定されたファイルではなく、同名のテンプレートファイルが優先して表示されます。

モジュールによるデータの表示

テーマ設定と表示ページによって使用されるテンプレートファイル内では、a-blog cmsの各種データ出力に必要なモジュールが記述されています。
このモジュールは、各ブログのモジュール設定に従い情報を出力しています。
a-blog cmsにはサイト制作に必要な様々なモジュールが用意されており、このモジュールを組み合わせてページ(サイト)を制作することになります。


多彩なモジュールをご用意しています

多彩なモジュールをご用意しています

モジュールIDによるデータの表示

テンプレート内では、モジュールと同様の記述でもモジュールごとに固有の設定が作られる「モジュールID」を記述することもでき、モジュールIDはブログ単位のモジュール設定ではなく個別の設定に従い情報を出力します。


モジュールとモジュールIDの使い分けについて

モジュールとモジュールIDの使い分けについて


インクルードによる外部ファイルの表示

サイト内で同一の内容を記述するのには通常それぞれに記述する必要がありますが、複数回使用するような内容については別ファイルとして、各テンプレートにインクルードで読み込むファイルを指定することで使い回しができます。
このようにインクルードするファイルの中にもモジュール(モジュールID)が設定できるため、1つのファイルで固定の表示とせずに、読み込み先で表示内容を動的に変えることもできます。


ヘッダー(header.html)を複数のページで使い回しています。

ヘッダー(header.html)を複数のページで使い回しています。


以上の表示の流れから、サイト制作者がa-blog cmsに対してカスタマイズを行う場合、大きく2つの方法が必要になります。

1. テンプレートファイルに必要なモジュール(モジュールID)を記述する 2. モジュール(モジュールID)に対してデータの登録、表示条件についてを設定する

1-2. 表示のプロセス:3つの基本ページ

テーマにはトップページ、一覧ページ、エントリー詳細をはじめ、いくつかの状態に応じたテンプレートファイルの設定があります。これらのテンプレートがどのような場合に動作するかについては「テーマ設定」の各項目のツールチップで解説していますが、サイトの基本となるテンプレートは以下のように使われています。

トップページ設置先ディレクトリ(一般的にはWebサーバのドキュメントルート)
一覧ページURLがスラッシュで終わっている場合
詳細ページURLが.htmlで終わっている場合

以上のように表示するページによって使用するテンプレートが選択されます。

このようにa-blog cmsでは、使用するテーマ・テンプレートファイルと、テンプレートファイル内のモジュールの記述によって、登録されたデータが表示されています。

ブログとカテゴリ

a-blog cmsでは、情報の単位としてブログ、カテゴリーという呼称を使用します。また、最小単位としてエントリーがあります。


ブログ

ブログは、a-blog cmsを設置した場合に最初からあるもので、固有のユーザー、モジュールを含む各種設定を持っています。
a-blog cmsを使ったサイトの運営では、最低1つあれば問題ありませんが、親子関係(上下階層)・兄弟関係(並列階層)のブログを任意で追加できます。
これらブログを複数で使用することで、ブログ(=コンテンツ)に所属するユーザー(=ブログを管理できるユーザー)を切り分けたり、同一サイト内でも別のテーマを使うなど、より詳細な運用ができます。


カテゴリー

カテゴリーは、ブログ内でエントリーの分類として使用します。表示時のurlは 設置ディレクトリ/ブログ/カテゴリー/ の形で表され、この場合にはテーマ設定の「一覧ページ」を使って表示されます。親子関係(上下階層)・兄弟関係(並列階層)のカテゴリーも作成できます。
カテゴリーを設定することで、カテゴリーごとの表示はもちろん、カテゴリーによるモジュールIDなど表示の設定を行うといった運用ができます。

config.server.php

管理ページ外での設定をまとめたファイル

a-blog cms パッケージ内の config.server.php には a-blog cms の管理ページ外で設定している機能、利用ディレクトリ等の情報が含まれています。
データベースの接続情報をはじめ、ブラウザーを介して設定変更することがない設定項目となりますが、運用に必要な情報も含まれています。通常の運用でこのファイル自体を個別に変更することは基本的にありませんが、リファレンスで各項目をご確認いただくことをおすすめいたします。

このファイル内の各項目の定義、説明、初期値についてはリファレンス内のconfig.server.phpのページをご覧ください。

config.system.default.yaml

コンフィグ初期値の設定ファイル

a-blog cms パッケージ内の /private/config.system.default.yaml は、a-blog cms管理ページの「コンフィグ」で設定される各項目の初期値が記録されたファイルです。一部コンフィグの中に無い項目も含まれていますが、通常の運用ではこれらの内容を変更することはありません。
a-blog cmsでブログを作成した場合、このファイルの内容に基づいてコンフィグの各内容が設定されます。つまり、ブログ作成時のコンフィグの初期状態を変更したい場合に変更が必要になると言えます。

config.system.default.yaml の内容についての解説は、ファイル内にコメントとして記述しています。

既存ブログのカスタマイズなら、config.system.yamlの編集を推奨します

設定値を変更をする場合に config.system.default.yaml の内容を直接編集してしまいますと、a-blog cmsのバージョンアップ時にファイルを上書きするため変更内容がリセットされてしまいます。そこで、バージョンアップ時に上書きをしない config.system.yaml に変更内容を記載します。

記載例

config.system.default.yaml には次のようにjQueryのバージョンが記載されています。

jquery_version: 1.11.1

これを、jQueryのバージョンを1.8.3に変更したい場合は次のように、config.system.yaml に記述をします。

jquery_version: 1.8.3

ディレクトリ・ファイル・フィールド名などに使えない予約語

setupディレクトリ名について

Ver. 2.8.0 から管理画面よりアップデートができるようになりました。このアップデート完了時に以下のディレクトリ名に当てはまる場合、自動で「setupディレクトリ」が削除されるので注意ください。

_setup から始まるディレクトリ名(正規表現:「/^_setup.+/」)

システムの予約語

いくつかの単語は、システムの予約語として登録されており、テーマ内のディレクトリ・ファイルの名前として利用できません。ブログコードやカテゴリーコードにも、同様にシステムの予約語は利用できませんが、予約語と同じ単語を設定しようとするとエラーが表示されます。

テーマ内のディレクトリ・ファイルを命名する時に、予約語と重複しないようにしてください。命名が重複している場合は、ページを表示するときに意図しない動作になり、正常のページが表示されなくなる可能性があります。

予約語のデフォルト

予約語は基本的に、config.server.phpで定義される、URLコンテキスト上の特定の表現(セグメント)と同じです。以下にデフォルトの文字列を示しますが、config.server.phpを編集している場合は、編集後の文字列が予約語になります。

また、数値のみのファイル名やコード・フィールド名も日付のURLコンテキストと判定される可能性がある為、予約語となります。

デフォルトの予約語一覧

  • 数値のみ
  • 日時の形式
  • title
  • style
  • bid
  • aid
  • uid
  • cid
  • eid
  • cmid
  • tbid
  • keyword
  • tag
  • field
  • order
  • alt
  • tpl
  • page
  • proxy
  • trackback
  • span
  • admin
  • login
  • signup
  • limit
  • domain