変数表とスニペット

モジュールの記述のための情報

モジュールには出力する内容によって様々なものがあるため、全く何もない状態からテンプレート上に正確に記述していくのは大変です。そこで、a-blog cmsではこの制作者向け情報サイトや、a-blog cmsの管理ページ内にも該当モジュール内で使用できる変数表、基本的な記述方法となるスニペットを用意しています。


カスタマイズ管理>コンフィグ

カスタマイズ管理>コンフィグ


a-blog cmsの管理ページで左側メニュー内、カスタマイズ管理>コンフィグへ進むと、各モジュールの設定への一覧がありますが、各モジュールの右側に変数表とスニペットへのリンクがあります。
この各リンクから、それぞれ変数表、スニペットが別ウィンドウで開きます。


変数表


Entry_Bodyモジュールの変数表

Entry_Bodyモジュールの変数表


各モジュールの変数表では、どのブロック内にどのような変数を表示させることができるかをまとめています。
いずれも白背景の二重線で囲まれた部分が変数名となっており、モジュール内の各ブロックで使えることを表しています。変数の具体的な内容は表中に日本語で補足しています。


スニペット


Entry_Bodyモジュールのスニペット

Entry_Bodyモジュールのスニペット


スニペットとは、よく使用するコードをまとめたデータです。各モジュールの出力に必要なコードがスニペットとして用意してありますので、必要に応じてコピー&ペーストや独自に変更を加えてお使いください。

独自のテンプレートを作成する場合には、元になるHTMLファイルにこれら各モジュールのスニペットを貼り付けて、必要な形に整形していくという流れを取るとスムーズに制作できるでしょう。

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

Webサイトの制作において、エントリのデータを1つ1つ登録していくのは、確実ではありますが大変な作業でもあります。特に一定の内容・項目がデータとして入るようなカタログ的なページでは、CSVファイルのデータをエントリとして読みこむ機能が役立ちます。

a-blog cmsでは、エントリをCSVファイルのデータとしてインポートすることで、複数のエントリを一括登録できます。

今回は、テスト用CSVファイルとして「なんちゃって個人情報」で生成したCSVファイルを使用します。実際には、製品のカタログ情報であったり、いろいろな形式の情報があるかと思いますが、CSVファイルとして作られていれば、以下の工程は同じとなります。

生成されたCSVファイルの1行目をエントリの基本情報とカスタムフィールドの項目名に書き換えます。今回は1行目の「名前」をエントリのタイトルとするため「entry_title」とし、あとの項目はカスタムフィールドの項目として任意の名前に変更します。1行目に変更を加えたものが、以下のファイルになります。このファイルには、100人分のデータが登録されています。


ファイルを開く

テスト用CSVファイル


CSVファイルからのインポート


エントリのデータが書かれたCSVファイルは、管理ページ > インポート の「CSV」からインポートできます。基本的には、現在表示しているブログの任意のカテゴリに一括登録されます。ただし、CSVファイル中に項目「entry_category_id」でカテゴリを指定することで、優先してそのカテゴリにインポートされます。

今回は、事前に「会員紹介(カテゴリコード=members)」というカテゴリを作成し、そこにインポートしてみます。


カテゴリ作成画面

カテゴリ「会員紹介(カテゴリコード=members)」を作成


インポート画面

管理ページ > インポート から「CSV」へ


CSVインポート画面

データとインポート先を指定して、インポートを実行します


インポート完了画面

インポートが完了しました


これでCSVファイルのデータがエントリとしてインポートできました。それでは、今回作ったカテゴリ /members/ を表示してみましょう。CSVファイルのデータが、エントリとなって表示されました。


インポート後のカテゴリトップ画面

インポート後のカテゴリトップ


ただし、このままではエントリのタイトルとして読み込んだ「名前」以外の情報が表示されません。 a-blog cmsに標準搭載されているツール「カスタムフィールドメーカー」で、カスタムフィールドの入力・出力用コードを生成して、今読み込んだカスタムフィールドを表示できるようにしましょう。

※カスタムフィールドメーカーは、上記のリンクまたは 管理ページ > コンフィグ から使用できます。


カスタムフィールドメーカーの入口

管理ページ > コンフィグ


読み込んだCSVファイルのデータをa-blog cmsで管理するため、テスト用CSVファイルの項目名に合わせて、管理・編集用と表示用の2種類のHTMLファイルを作成する必要がありますが、ここではa-blog cmsの管理ページから利用できる「カスタムフィールドメーカー」を使ってコードを生成します。 (本節末で、参考として実際に作成したファイルをダウンロードできます)



メールアドレスemailテキスト
変換・入力チェックでメールアドレスチェック
年齢ageテキスト
変換・入力チェックで変換に「n」(「全角」数字を「半角」に変換)を追加
誕生日birthdayテキスト
変換・入力チェックで変換に「a」(「全角」英数字を「半角」に変換)を追加
携帯電話phoneテキスト
変換・入力チェックで変換に「a」(「全角」英数字を「半角」に変換)を追加

※生成されるコードをコピー&ペーストする際、acms-admin.cssのチェックは、入力用ソースの時にはチェックあり、出力用ソースの時にはチェックなしの状態にしてコードをコピーしましょう。


入力用ソースとして生成されたものは /themes/simple2016/admin/entry/fieldinput_6.html 出力用ソースとして生成されたものは /themes/simple2016/include/parts/fieldoutput_6.html として保存します。

※fieldinput_6.html、fieldoutput_6.html の6の部分は今回対象となるカテゴリIDの数字となります。実際に読み込ませるカテゴリIDに合わせて変更をしてください。


出力されたソースの設置先


入力用ソース /themes/simple2016/admin/entry/fieldinput_6.html
出力用ソース /themes/simple2016/include/parts/fieldoutput_6.html

参考用ファイル


ファイルを開く

fieldinput_6.html


ファイルを開く

fieldoutput_6.html

これらが読み込めるように、入力用は /themes/simple2016/admin/entry/field.html に カスタムフィールドの入力欄 を追加します。今回は field.html の文末に以下のコードを追記しましょう。

<!-- カスタムフィールド入力欄 -->
<!--#include file="/admin/entry/fieldinput_%{CID}.html" -->

出力用は、まず「会員紹介」で使うテンプレートを作成します。 今回は members ディレクトリを新設し、その中に /themes/simple2016/entry.html を複製・リネームした index.html を作成します。

次に、 /themes/simple2016/include/entry/bodyNoDate.html の <div class="acms-grid"> と <!-- BEGIN unit:veil --> の間に以下のコードを追記します。

<;!--#include file="/include/parts/fieldoutput_%{CID}.html" -->

※管理・編集用、表示用とも、ファイルをインクルードする際にファイル名部分をグローバル変数にすることで、該当するカテゴリ以外ではカスタムフィールドの情報が表示されなくなります。

これで、一般向けの表示画面でのカスタムフィールドの表示と、編集画面での表示ができるようになりました。


一般向けの表示画面

一般向けの表示画面


一般向けの表示画面

編集画面での表示画面


カスタムフィールドの情報は、Field_Search モジュールを使って検索できます。Field_Search モジュールの使い方と実際のサンプルは、site2016テーマの「物件情報」コンテンツが参考になるでしょう。

今回はサンプルデータに合わせて「性別」「携帯キャリア」「キーワード」の3つで検索ができるように記述した、Field_Search モジュールのHTMLファイルを用意しました。


/themes/simple2016/include/parts/ 以下に、カスタムフィールド情報検索用HTMLファイルのmembers.htmlを設置し、この検索ウィンドウの読み込みのため、 /themes/simple2016/members/index.html に以下のようにインクルードして動作させてみましょう。

この内容を変更することで、任意のカスタムフィールド情報での検索ができます。

<!-- 検索ウィンドウ -->
<!-- #include file="/include/parts/members.html" -->

ファイルを開く

members.html(カスタムフィールド情報検索用HTMLファイル)

URLで指定されている年月をトピックパスに表示する

よくある企業サイトの「お知らせ」ページでは、カテゴリ(もしくは小ブログ)として「お知らせ」を作成して、その中にエントリーを登録していきます。
この方法ですと、トピックパス(パンくずリスト)は、下記のようになります。

ブログ名>お知らせ(カテゴリ)>エントリータイトル

エントリー記事が多いサイトですと、エントリーを年単位、年月単位で分割して展開したいことがあります。

ブログ名>お知らせ(カテゴリ)>2013年>エントリータイトル

ver1.7.0以前でこれを実現しようとしますと、子カテゴリとして2013年を作成する必要がありました。

各種モジュールの設定

ブログ単位でモジュールの表示を制御する

a-blog cmsでは、様々な情報を表示するのに適した各モジュールがありますが、さらにその表示を制御するために各モジュールのコンフィグ(=設定)があります。管理ページ内の左側メニューのカスタマイズ管理 > コンフィグ から各モジュールを含めた設定への一覧があります。各モジュール名から設定画面へリンクしています。



ブログ内で共通した設定を行うには


各モジュールの管理画面では、表示順や件数など、モジュールごとに表示に関する設定ができるようになっています。各設定項目についての詳しい内容は、項目右にある「?」アイコンのツールチップをご確認ください。



同一モジュールで別の設定をしたい場合には


これらの設定は該当ブログ内で使用されるモジュール全てに適用されます。しかし、同じモジュールを使う場合でも、必ずしも同じ表示をしたいとは限りません。また、個別のカテゴリーだけ、といったように表示の設定ではなく条件の設定がしたい場合もあります。このような場合には、モジュールの設定とは別に固有のIDを付与したモジュールであるモジュールIDをご利用ください。モジュールIDについては、このドキュメント内のモジュールIDのページで解説しています。

Google、Facebook、TwitterのAPIキーを取得してSNSログインを設定してみよう

a-blog cmsでは、Facebook、Twitterに加えて、新しくGoogleのAPIを使用してログインするログイン機能があります。Google、Facebook、Twitterの各サービス、a-blog cms のブログ、a-blog cmsのユーザーに必要な設定を行うことでこの機能が利用できます。

ハンズオン内容

  • Google API Consoleから「Client ID」と「Secret Key」を取得する
  • facebook for developersから「Application ID」と「Application Secret」を取得する
  • Twitter Application Managementから「Consumer Key」と「Consumer Secret」を取得する
  • SNSログイン機能の有効化し、ユーザー毎に認証を行う

作業場所

参考資料

課題:SNSログインボタンを設定する

ログイン画面にGoogle、Facebook、TwitterのSNSログインボタン表示され、各ボタンでログインができたら完成です。

Google API Consoleの設定

Googleアカウントを使ったログインのための準備として、a-blog cms の管理ページ>コンフィグ>プロパティ設定 にあるGoogle(ログイン)欄の「Client ID」と「Secret Key」の2つの情報が必要になります。この2つの情報は、GoogleのOAuth クライアント IDを作成することで入手できます。

OAuth クライアント IDの作成手順

1. Google API Console( https://console.developers.google.com/ )から、申請を行う必要があります。この時点でログインしているアカウントに関連づけられます。はじめにヘッダーの「プロジェクトを選択してください」から「プロジェクトの作成...」から新しいプロジェクトを作成を行います。


Google API Consoleの画面

Google API Consoleの画面


プロジェクトを作成します

プロジェクトを作成します


2. 認証情報から認証情報作成を行います。左のAPI Managerから「認証情報」を選択します。「認証情報を作成」から「OAuth クライアント ID」を選択します。


認証情報を作成します

認証情報を作成します


「OAuth クライアント ID」を選択します

「OAuth クライアント ID」を選択します


3. クライアント ID の作成を行います。クライアント ID の作成画面からはじめに同意画面を設定します。「同意画面を設定」からOAuth 同意画面からユーザーに表示するサービス名にサービス名を入力し保存をしてください。


同意画面を設定します

同意画面を設定します


サービス名を入力し保存をしてください

サービス名を入力し保存をしてください

アプリケーションの種類はウェブ アプリケーションを選択し、わかりやすい名前(例:googleOAuthApi)を入力します。承認済みの JavaScript 生成元にGoogleアカウントでログインを行うサイトのURL(http://www.example.com)を入力します。ワイルドカード(http://*example.com)やパス(http://example.com/subdir)を含めることはできませんのでご注意ください。承認済みのリダイレクト URIには以下の内容を入力してください。
対象となるa-blog cmsのブログURL/callback/signin/google.html


ウェブアプリケーションを選択し必要な情報を入力します

ウェブアプリケーションを選択し必要な情報を入力します


4. クライアント ID の作成が完了すると、OAuth クライアントの情報が表示されます。「OK」をクリックするとファイルをダウンロードしないと見れなくなりますので、メモしておいてください。


クライアントIDとシークレットが表示されます

クライアントIDとシークレットが表示されます

facebook for developersの設定

Facebookアカウントを使ったSNSログインのための準備として、a-blog cms の管理ページ>コンフィグ>プロパティ設定 にあるFacebookアプリケーション欄の「Application ID」と「Appliction Secret」の2つの情報が必要になります。この2つの情報は、 独自のFacebookアプリを作成することで入手できます。

注意:Facebookアプリの作成には、Facebook開発者登録が必要です。開発者登録がされていない場合には https://developers.facebook.com より事前にご登録ください。

アプリの作成手順

1. 新規アプリを作成画面へ移動します。上部ナビゲーションのマイアプリから「新しいアプリを追加」を選択すると、モーダルウィンドウでプラットフォームの選択画面が表示されます。ここでは「ウェブサイト」を選択します。


facebook for developersの画面

facebook for developersの画面


ウェブサイトを選択します

ウェブサイトを選択します


2.Quick Start for ウェブサイトの画面から、新たに作成するAppの名前(任意のもの)を入力して「新しいFacebookアプリIDを作成」をクリックすると、次の画面へ移動します。


新しいFacebookアプリIDを作成します

新しいFacebookアプリIDを作成します

3. 連絡先メールアドレス、対象となるサイトに適したカテゴリを選択して「アプリIDを作成」をクリックして次の画面へ移動します。


Create a New App IDの画面

Create a New App IDの画面

4.「Tell us about your website」のSite URLにFacebookアカウントでのログインを行うサイトのURLを入力します。


ログインを行うサイトのURLを入力します

ログインを行うサイトのURLを入力します

5. アプリの登録ができました。画面下部の「Next Steps」の文中にある「Skip to Developer Dashbord」リンクからダッシュボードへ移動します。


「Skip to Developer Dashbord」リンクからダッシュボードへ移動します

「Skip to Developer Dashbord」リンクからダッシュボードへ移動します

6.ダッシュボード画面ではアプリID とapp secret が確認できます。app secret は非表示になっていますので、 App Secret 欄右側の「表示」で表示して確認してください。


ダッシュボードページ

ダッシュボードページ

これで設定に必要な「Application ID」「Appliction Secret」が取得できました。
これらの情報のa-blog cmsへの設定は後述します。

Twitter Application Managementの設定

Twitterアカウントを使ったSNSログインのための準備として、a-blog cms の管理ページ>コンフィグ>プロパティ設定 にあるTwitter(SNSログイン用)欄の「Consumer Key」と「Consumer Secret」の2つの情報が必要になります。この2つの情報は、 独自のTwitterアプリを作成することで入手できます。

アプリの作成手順

この手順は2016年5月現在のものです。Twitter側の仕様変更がされる場合がありますのでご注意ください。

1. Twitter のアプリケーション登録ページ( https://apps.twitter.com )から、申請を行う必要があります。この時点でログインしているアカウントが表示や投稿に関連づけられます。画面右側の「Create New App」から新しいアプリケーションの作成を行います。


Twitter Application Managementの画面

Twitter Application Managementの画面

2.Application Detail の各欄を入力します。 Name、Descriptionにはわかりやすい名前と概要を入力し、Websiteには対象となるa-blog cmsのブログURLを入力してください。 Callback URLには以下の内容を入力してください。

対象となるa-blog cmsのブログURL/callback/signin/twitter.html

画面下部の規約に同意して登録を完了してください。


アプリケーション作成画面

アプリケーション作成画面


3.アプリケーションの作成が完了すると、情報の確認や設定の変更ができます。以下の内容を変更してください。


Application Settings内「Access level」

基本のアクセス形式です。 (modify app permissions)のリンクからデフォルトは「Read & Write」ですが、SNSログインは「Read only」で実行できます。


SNSログインは「Read only」で実行できます

SNSログインは「Read only」で実行できます

Keys and Access Tokens

a-blog cmsとの連携には、このタブで表示される「Consumer Key (API Key)」と「Consumer Secret (API Secret)」が必要になりますのでメモをしておいてください。


Keys and Access Tokensの画面

Keys and Access Tokensの画面

a-blog cms 側の設定

SNSログインのためのa-blog cms側での設定は大きく3つあります。

1. 各サービスのAPIキーを登録

Google、Facebook、TwitterのAPIキーは管理ページ>コンフィグ>プロパティ設定 から設定できます。プロパティ設定画面の「ウェブサービス」からGoogle (ログイン)、Twitter(SNSログイン用)、Facebook アプリケーションの各情報を登録します。


プロパティ設定画面

プロパティ設定画面


2. SNSログインのための設定


ブログ全体でのSNSログイン機能と対象についての設定は管理ページ>コンフィグ>機能設定 から行います。

SNSログイン機能のチェックで該当ブログでの機能を有効化します。SNSログイン使用権限では、SNSログイン機能が使えるユーザー権限を設定します。


機能設定画面

機能設定画面


3. ユーザーごとの設定


「2. SNSログインのための設定」でブログでのSNSログイン機能を有効にすることで、該当ブログに所属する各ユーザーの管理画面にSNSログインのための項目が表示されるようになります。

Googleログイン、Twitterログイン、Facebookログインの各ボタンは、各SNSにログインした状態で認証(または認証解除)することで、ログイン情報とこのユーザーが関連づけされます。ログイン状態がユーザーに関連づけされますので、この設定は管理者が一括ではなく、各ユーザーが個別に行うものとなります。


ユーザー管理でSNSと関連づけます

ユーザー管理でSNSと関連づけます

認証がされている場合は「認証」ボタンが「認証解除」に変わって表示されます。各サービスの認証ボタンを押した時、サービスにログインしていない場合は、各サービスの認証画面が表示されます。ここでログインすることで、このユーザーでのa-blog cmsのSNSログインが有効になります。

ログインするには

ここまでの設定が行われていれば、ユーザーID、パスワードを入力しなくても、各ログインボタンからログインできるようになります。SNSログイン機能を有効にした状態で、a-blog cmsのログイン画面を表示すると、通常のユーザーID、パスワードの入力欄の下に、Facebook、Twitter、Googleの各ログインボタンが表示されます。


SNSログインが有効なログイン画面

SNSログインが有効なログイン画面