CMS(コンテンツ管理システム)について、その手法、ノウハウ、参考になりそうなリソースなど、CMSの活用情報をさまざまな角度からお届けいたします。
以下は「Expression Engine」関連の最新記事10件です。
2011年5月18日
Freeformモジュールについて
システムエンジニア 野沢
今回はExpression EngineのFreeformモジュールのご紹介をいたします。
FreeformモジュールはExpressionEngine上で簡易な入力フォームを実装することができるモジュールで、1.x、2.xのどちらのバージョンにも対応しています。
Freeformモジュールは管理画面上で、自由に入力フィールドを定義することができ、入力フィールドはテンプレート上で自由に表示できるため、簡易的なお問い合わせフォーム、アンケート、投票などの用途として活用することができます。あまり複雑な用途としては活用できませんが、テンプレート上で入力必須フィールドを定義したり、Captchaを設定することもできます。
投稿された内容は通知メールとして特定のアドレスに送信したり、アンケートや投票などの結果としてテンプレート出力することも可能です。
次回はFreeformモジュールを使った簡単な問い合わせフォームの作成についてご紹介いたします。
2011年3月25日
ExpressionEngine2.xを活用するための4つのテンプレート要素(つづき)
システムエンジニア 野沢
前回からの続きです。ExpressionEngine2.xを活用するための4つのテンプレート要素をご紹介します。
- テンプレートグループ
- テンプレート
- スニペット
- グローバル変数
今回は「スニペット」と「グローバル変数」のご紹介です。
スニペット
スニペットとは2.xから追加されたテンプレートの一部分をスニペットというパーツとして呼び出すことができる機能です。
以下のような特徴があります。
- 参照元のテンプレートで使用されている変数を、そのまま使用することができる。(外部テンプレートの場合は引数で渡す必要がある。)
- スニペットからスニペットを呼び出すことができない。
スニペットの活用には以下のような用途があります。
{my_date_formatting} というスニペットを「format="%Y/%m/%d"」という文字列で定義することによって下記のようなテンプレート記述が可能です。
{entry_date {my_date_formatting}}
出力結果例は以下のようになります。
2011/01/27
グローバル変数
グローバル変数とはページで毎回使用する文字列などを定義できます。
使用頻度が高い文字列をグローバル変数として定義することで一括管理をすることができます。
ただし、テンプレート出力の最後に実行されるため、テンプレートのパラメーター参照の用途としては使用できません。
{exp:channel:entries channel="{special_channel}" limit="{special_limit}"}
上記のような、パラメーターを変数化して実行する場合は、上記の変数をスニペット化することによって、実現ができます。
以上、2回に分けてExpressionEngine2.xを活用するための4つのテンプレート要素をご紹介しました。
2011年2月18日
ExpressionEngine2.xを活用するための4つのテンプレート要素
システムエンジニア 野沢
今回から2回に分けてExpressionEngine2.xを活用するための4つのテンプレート要素をご紹介します。
- テンプレートグループ
- テンプレート
- スニペット
- グローバル変数
今回は「テンプレートグループ」と「テンプレート」のご紹介です。
テンプレートグループ
テンプレートグループとはExpressionEngine1.x系と同様で、コンテンツ単位ごとのテンプレートを管理する要素です。
テンプレートグループ/テンプレートと記述することによって、各テンプレートへアクセスが可能です。
例えば「news」テンプレートグループの「detail」テンプレートにアクセスする場合、公開画面は下記のようなURLで参照することができます。
http://example.com/index.php/news/detail/
リクエストしたURLから該当するテンプレートが存在しない場合、自動的に「index」テンプレートが参照されます。
テンプレートグループも指定されていないURLの場合は、デフォルトテンプレートグループの「index」テンプレートが参照されます。
テンプレート
テンプレートとはExpressionEngine1.x系と同様にページの要素をテンプレートとして管理する機能です。
以下のような特徴があります。
- テンプレート単位でアクセス制御をかけることができる。(特定のメンバーグループのみアクセスできるページなどを作れる)
- テンプレートを外部ファイル化して管理することができる。
- テンプレート名の先頭に「.」をつけると、ブラウザから直接参照ができないテンプレートを作ることができる。(MovableType のテンプレートモジュールのような使い方ができます。)
- テンプレートのリビジョン管理(世代管理)を自動でしてくれる。
- テンプレートから他テンプレートを呼び出すことができる。また引数を渡すことで汎用的なテンプレート設計ができる。
以下のテンプレートの種類があります。
- Webページ
- RSS
- CSS
- Javascript
- Static(ExpressionEngineのテンプレート処理が無効になるページを出力)
- XML(外部システムと連携する際に効果的)
次回は引き続き、「スニペット」、「グローバル変数」をご紹介します。
2011年1月 7日
ExpressionEngine URL Segment Variablesの活用について
システムエンジニア 野沢
■URL Segment Variablesのメリットと記述例
URL Segment VariablesはExpressionEngineの標準機能です。
利用することで作業効率を大幅に向上することが可能です。
弊社では、どの案件でも必ず利用しています。
具体的には、URLとコンテンツ名称をうまく合わせるような設計を行い、URL Segment Variablesを利用してURLのスラッシュで区切られた文字列を取得します。設計が正しく行われた場合、同一のテンプレートを複数個所で使いまわすことが可能になります。結果として、テンプレートの実装工数を大幅に下げることができるようになります。
{segment_1},{segment_2}のように記載することによって、最大9つまでのURLセグメントを取得することができます。
●記述例
http://example.com/products/shirts/ というURLの場合、{segment_1}をテンプレートに記載するとproducts、{segment_2}であればshirtsという値をそれぞれ取得することができます。
■セグメントを利用したカスタムフィールドの記述例
上記の例のURLでproducts_bodyという名前のカスタムフィールドを取得する場合は、{{segment_1}_body} のような記述をすることで取得することが可能です。
そのためURLのルールに沿ったカスタムフィールド名を作成しておけば、同じルールでカスタムフィールドの値を 取得することができます。
取得したセグメントの値はカスタムフィールド以外にもブログなどを呼び出す際にも利用することができます。
■if構文とセグメントの併用の記述例
ExpressionEngineのif構文を使い、特定のURLのみ有効になるテンプレート記述も可能です。
下記の例の場合、http://example.com/products/ というURLの場合のみif構文の中の記載が有効になります。
●記述例
{if segment_1 == 'products'}
処理内容
{/if}
■参考URL
2010年12月 6日
ExpressionEngine Config Overridesについて
システムエンジニア 野沢
■Config Overridesの紹介
ExpressionEngineにはConfig Overrides機能があり、DBに格納されたExpressionEngineの設定情報をconfig.phpファイルの内容でオーバーライドすることが可能です。
■config.phpとは
config.phpはExpressionEngineインストール時に作成されるファイルで、管理画面のURL、DB接続情報などの設定情報が記載されているファイルになります。デフォルトで設定される項目は必要最小限度のものになりますが、それ以外にも設定可能な項目は2010年11月時点のExpressionEngineのバージョンでは189近く存在し、一部サードパーティーのアドオンも対応しています。
■使用するメリット
URL、DB接続情報、テンプレートパスなどをDBとは別に管理することができるため、個々の環境の設定情報を保持したまま同期が円滑に行えるようになります。
テンプレートパスを各開発者の環境毎に指定することができるため、テンプレートファイルをバージョン管理して複数人によるテンプレート実装を行いやすくなります。
■参考URL
2010年1月29日
セミナー情報管理ソリューション mini 開発の舞台裏 ― カテゴリー管理
システムエンジニア 野沢
今回は弊社がExpressionEngineをベースに開発したパッケージ"セミナー情報管理ソリューション mini"のカテゴリー管理についてご紹介させていただきます。
2009年12月24日
セミナー情報管理ソリューション mini 開発の舞台裏 ― ページ公開・編集ワークフロー機能
システムエンジニア 野沢
今回は弊社がExpressionEngineをベースに開発したパッケージ"セミナー情報管理ソリューション mini"のページ公開・編集ワークフロー機能についてご紹介させていただきます。
2009年11月25日
セミナー情報管理ソリューション mini 開発の舞台裏 ― 記事の予約投稿・非公開機能
システムエンジニア 野沢
今回は弊社がExpressionEngineをベースに開発したパッケージ"セミナー情報管理ソリューション mini"の記事の予約投稿・非公開機能についてご紹介させていただきます。
2009年11月 4日
セミナー情報管理ソリューション mini 開発の舞台裏 ― 会場情報連携
システムエンジニア 野沢
今回は弊社がExpressionEngineをベースに開発したパッケージ"セミナー情報管理ソリューション mini"の会場情報連携についてご紹介させていただきます。
2009年10月13日
セミナー情報管理ソリューション mini 開発の舞台裏 ― 講師情報連携
システムエンジニア 野沢
今回は弊社がExpressionEngineをベースに開発したパッケージ"セミナー情報管理ソリューション mini"の講師情報連携についてご紹介させていただきます。
セミナーと同様に講師情報もCMSによる管理(投稿・編集・削除・バージョン管理など)を行うことができます。講師情報は肩書や講師の写真などを入力していくことによって作成することができます。
CMSに格納された講師情報はセミナーと連携させることが可能です。
セミナーの編集画面内で講師を選択し、ドラッグすることによって関連付けを行うことができます。また戻すことも同じ動作で可能です。
この講師情報とセミナーの連携はPlaya2というエクステンションを使用いたしました。このエクステンションを用いることによって、連携対象となる講師情報のソート、検索が可能になり対象となる講師情報を簡単に探し出すことができます。