#acmscampKM 「a-blog cms Training Camp in KANMON」に参加しました
- 2011年 5月22日
5/20,21に開催された「a-blog cms Training Camp in KANMON」に参加しました。a-blog cmsは名古屋の有限会社アップルップルが開発している国産商用CMSです。普段使っているWordPressと同じLAMP環境で動作するCMSですが、オープンソースのWPと違ってプロプライエタリな製品です。今回はWPerとしてWPと比較しながらa-blog cmsについて理解を深めようという目的で参加しました。

今回はハンズオンセミナーという事で、指示通り事前にMacBookのMAMP上にa-blog cmsをインストールして参加しました。おかげで基本的なカスタマイズのポイントはおおよそ把握出来たと思います。会場にはネット回線も用意して頂いていたので、セミナー聞きながらツイートする事も出来ましたので、補足する形で感想をまとめていきます。
- 13:08 まずは @TagawaMasateru による a-blog cms の紹介。#acmscampKM
- 13:10 MT/WPの次に使いたいCMS No.1という事で興味を持った。#acmscampKM
- 13:13 DWとの連携が優秀。スニペット/コードヒントあり。#acmscampKM
- 13:15 デザインとプログラムが完全に分離しているので共同作業に向いている。モジュールに追加プログラムを集中させる事が出来る。条件分岐も管理画面から設定出来る。#acmscampKM
- 13:16 ある意味WPの対極にあるCMSだよね。#acmscampKM
- 13:18 WPだとプラグインで追加するような必須/便利機能はだいたい標準装備になっているのは便利。高機能なメールフォームとケータイからの投稿は特に便利 #acmscampKM
- 13:19 メンテナンスツールを使えばバックアップやデータ移行が楽に出来る。phpMyAdminに触る必要がないので安心。ローカル環境から本番環境への移行にも使える。 #acmscampKM
- 13:20 Dwで制作したサイトをテーマフォルダにコピーすればとりあえず動く。パスも自動的に修正される。必要な部分だけ動的にする事も簡単。 #acmscampKM
- 13:23 更新画面のカスタマイズをすれば、ユーザーに合わせて自由に必要な入力項目を増減出来る。フォームバリデーションも標準装備。 #acmscampKM
- 13:25 オープンソースではないので情報量は少ないけれども、公式サイトには開発元からの情報があって質が高い。 #acmscampKM
- 13:26 web制作者として頼れる開発元です。 #acmscampKM
- 13:27 デザイナー向けのCMSだけど、プログラマーにもモジュール開発という場があるのでどんどん来て下さい。 #acmscampKM
これは去年の秋にも聞いた事ある部分だけど、あらためてWPとの違いを感じました。どっちが良い・悪いという話ではなく、設計思想に違いを感じるという事です。a-blog cmsはウェブデザイナーのワークフローそのままで簡単に動的サイトを構築する最適なソリューションである事、がコンセプトの一つとして明確にあるなと感じました。
例えば、同じ用語として「テーマ」がありますが、WPのテーマはブラウザ表示用のプログラムとしての意味合いも濃く、ちょっとした事だとすぐにテーマで使用しているテンプレート内にPHPを書いて実現出来るのですが、反面どこでどの機能が実装されているのか分かりにくくなる事にもつながります(自分でもどのテンプレートにどんなコード書いたか忘れてる事がよくありますw)
対してa-blog cmsのテーマはhtmlテンプレートとCSS、画像の集合で、デザインを表示する事だけに徹している感じですね。これなら複数のコーダーで共同作業をやっても誰かのミスで画面が真っ白という事にはならないのではないかと思います。「system」テーマ内にある「admin」を、自作テーマにコピーしてからカスタマイズする事で管理画面も自由に編集出来るのは仕事で客先に納品する場合とても便利だな、と感じました。
- 13:33 次はアップルップルの山本さん(@kazumich )の話です。#acmscampKM [in reply to kazumich]
- 13:36 リリースから695日で公開可能な事例が197件に達しました。3.52日に1件のペースです。 #acmscampKM
- 13:38 レンタルサーバのCPIや名古屋商科大学のサイトもa-blog cmsで構築されている。 #acmscampKM
- 13:40 非公開事例を合わせると400件以上のサイトで利用されている。 #acmscampKM
続いては開発元であるアップルップルの山本さんのセミナーです。現在の実績についての発表からスタートしました。OSSで自由に使えるWPに対して、一社開発の上有料ライセンスの購入が必要なa-blog cmsは公開数では少なくなるのは当然ですね。それでもこれだけの数のビジネスサイトに使われているのは信頼に値するものがあるからなのでしょう。
- 13:46 どの部分にどのモジュールを使うか?動的にしたい所に「だけ」必要なモジュールを適用する。 #acmscampKM
- 13:58 a-blog cms v1.4の記事更新画面。WPに慣れた身には直感的とは言えないけど、一般ユーザーにとってはやるべき事に集中出来て分かり易いかもしれない。 #acmscampKM
- 14:03 ユニットグループは強力だな。ユニットごとに段組を設定した上で、各ユニットを自由に追加出来る。表現の自由度が増すのはとても魅力的。 #acmscampKM
- 14:10 エントリーの複製機能は、商品紹介の見本をお客様に更新・追加してもらう用途を想定すると便利さが分かり易い。 #acmscampKM
- 14:13 ユニットグループは出力的には<div>で囲む事になるので、CSSでの設定が必要。 #acmscampKM
モジュールというのは各種機能を実現する為のプログラムですね。WPのプラグインに相当するものだけど、コアの各種機能も標準モジュールとして同列にあると考えればいいのかな。ビルトインモジュールというのがそれっぽいですね。通常のHTMLファイルにモジュールの機能をコードスニペットとして挿入していく事で、必要な箇所を簡単に動的サイトとして扱えるようになります。
記事投稿画面は、オープンソースのCMSで多用されているTinyMCEなどのWYSIWYGエディタを使ったものとは違い、用意された項目に対して内容を埋めていくような形になっています。ブログに不慣れな人でも埋めるべきところを埋めれば形になるので、ユーザーサイドでの更新という点については非常にやりやすいのではないか、と感じました。
ユニットグループはページの途中で自在にレイアウトを変更出来るのがとても便利で、記事の読者に対してとても親切な機能です。WPでも出来なくはないでしょうが、ここまで直感的に誰でも使えるとは思えません。これはとても気に入りました。
- 14:15 ダイレクト編集機能を使う事で入れ子になったユニットを直接編集出来る。ユーザーにとっては直感的で分かり易い。 #acmscampKM
- 14:19 アップロードしたファイルの管理は記事に紐付いているのか。集中化されているWPとはここにも大きな違いがあるね。 #acmscampKM
- 14:27 <!– BEGIN_MODULE(モジュール名) –> と <!–END_MODULE(モジュール名) –> で囲む事で、テンプレートに必要な機能を組み込む。 #acmscampKM
- 14:32 モジュールの外にあっても動作する特別な変数がグローバル変数。%{BLOG_NAME} で表示ページが属するブログの名前。 #acmscampKM
ダイレクト編集機能はその名の通り表示されている見たままの画面上から記事の編集が出来ます。複数カラムで構成されたdivが入れ子になっているような場合でも、構成を壊さずにユーザーサイドでの簡単編集に対応しているのは素晴らしいです。このようによく使う機能や便利な機能がモジュールとして用意されているので、作法に則ってしかるべき場所にしかるべきコードを差し込む、という流儀がだんだん納得出来るようになってきました。
- 14:34 タッチモジュール | リファレンス | サポート・マニュアル | a-blog cms – Web制作者のためのCMS – http://goo.gl/f2r4G これで条件分岐の設定が出来るのか。#acmscampKM
- 14:37 校正オプション | リファレンス | サポート・マニュアル | a-blog cms – Web制作者のためのCMS – http://goo.gl/KA7Kq これは初めて知ったけど他のCMSには無い特徴だと思う。JSで補完する部分がコアにあるのは強い。#acmscampKM
タッチモジュールは機能を追加するモジュールとは違い、条件分岐の為に使うもの。管理画面のカスタマイズにも適用出来るので、管理者権限のレベル分けにも応用出来そう。
校正オプションはWPには無いと思うので、ちょっと羨ましい。エンドユーザーに細かい気遣いをさせずに裏側でサポートが出来るので、この機能を活用してきっちりテンプレートを作り込めば、コンテンツの品質を上げる事にもつながると思いました。
- 14:41 モジュールの集合がテンプレートで、テンプレートの集合がテーマ。 #acmscampKM
- 14:44 テーマ「System」の中からオリジナルテーマにコピーしてカスタマイズするのが作法です。管理ページのカスタマイズは「System」の中にある「Admin」で行うが、これも同様にコピーして使う事。 #acmscampKM
- 14:47 index.html を一覧に、entry.html を詳細ページに、top.html をトップページに用意するのが基本。カテゴリごとにディレクトリを切る。デザインをカテゴリごとに変更する場合には必須。 #acmscampKM
案件に応じて独自テーマを作る時のファイル名やディレクトリについての説明。作法を守っていれば大丈夫そうです。
15:02 a-blog cms のファビコンキャンデーもらいました! #acmscampKM
ちょっと休憩。a-blog cmsのファビコンキャンディー頂きました。味は……たぶんご想像の通りです。美味しかったよ。
- 15:08 条件分岐はタッチモジュールに加えて「ルール」という機能も使える。管理画面から設定可能。 #acmscampKM
- 15:10 「ルール」の設定画面。例はユーザーエージェントに対してどういうレスポンスを返すか設定している所。 #acmscampKM
- 15:17 「ルール」に対して独自のコンフィグ設定をする事で、ユーザーレベルに応じて管理画面の表示項目を変えたり、カテゴリ別に編集機能を増減する事が出来る。これはすごいな。管理側にもユーザー側にもメリットがある。 #acmscampKM
タッチモジュールに加えて「ルール」を設定する事でも条件分岐が出来る。管理画面から必要に応じて簡単に設定出来るのはいいですね。用意されているルールだけではなく、必要に応じてルールを追加し細かいコンフィグ設定を加える事で様々な状況に対応出来るでしょう。
- 15:21 メールフォーム機能。入力チェック機能と入力コンバート機能。全角ー半角のコンバートや平仮名ーカタカナのコンバートが出来る。 #acmscampKM
- 15:23 複数ステップのフォームが作れる。これは初めて知ったけど便利だね。 #acmscampKM
- 15:24 メールフォームの入力データをDBに保管してCSVでDLする機能もある。 #acmscampKM
メールフォーム機能は、単にメールフォームにとどまらず複数ステップのアンケートフォームとして使う事も出来る。バリデーション機能も強力だし、メールの受信をスキップしてまとめてDBからCSVでダウンロードする事も出来ます。この機能だけでもライセンス料払う価値があるかも。キャンペーンサイトの制作に使って大量にメールが返ってくる場合を想定すると分かり易いのではないでしょうか?
- 15:28 カスタムフィールドはWPとそれほど変わらない考え方のようだ。 #acmscampKM
- 15:32 管理画面/投稿画面でのカスタムフィールドの入力欄配置の自由度は魅力だな。 #acmscampKM
- 15:40 a-blog cms のカスタムフィールドはDwのスニペットを使ってテンプレートファイルに直接貼り付けていくのか。Dw使っていないのでちょっと難しい。 #acmscampKM
- 16:12 管理画面のテンプレートでカスタムフィールドを定義して、表示画面の任意の場所に定義したフィールドを差し込む事で表示される。 #acmscampKM
カスタムフィールドについては、WordPressと同じ用語だし、機能についてもほぼ同様。ただしテンプレートへの記述方法は当然のように異なります。カスタムフィールドを上手に設計・運用する事でプログラムを組まなくてもかなり高機能なサイトに仕上げる事が出来るという事が分かりました。ただ、作ったカスタムフィールドを使用するのに、管理画面のテンプレートにいちいち組み込まなくてはいけないのだけはちょっと困ります。この点ではプラグインの助けを借りるとはいえWordPressの方が便利かなと思いました。
- 16:52 モジュールIDを作成して、そのIDをテンプレートに記述する事で該当モジュールを読み込んで表示する。なんとなく分かった。 #acmscampKM
- 16:59 URLコンテキストの概要 | 仕様・特徴 | サポート・マニュアル | a-blog cms – http://goo.gl/QWENy この概念は重要。どのディレクトリにいるかでどの様にレスポンスするか決められる。モジュールIDとの連携に理解が必要。 #acmscampKM
- 17:00 エントリー系モジュールの初期スコープ | 仕様・特徴 | サポート・マニュアル | a-blog cms – http://goo.gl/YAMBs モジュールIDとURLコンテキストの初期設定。 #acmscampKM
この辺の内容はa-blog cmsの設計思想の根幹とも言える奥の深い部分なので、理解はしていないけど自分なりの解釈をしてみました。特に「URLコンテキスト」という概念は重要です。この概念に基づいて表示されるURLによってその記事の場所、文脈における意味が表現され、それを基準にモジュールの機能を特定的に使うモジュールIDを適用したりルールの適用方法を変えたりする事が可能になる、みたいです。ここを理解する事が実運用でのカスタマイズには必須だなと感じました。
17:51 シンプルなHTML5で書かれたファイルにjQuerymobileを組み込み、a-blog cms のスニペットを加える事でiPhoneに最適化されたテンプレートが簡単に作れる。 #acmscampKM
jQuerymobileを使った簡単なスマートフォン向けサイトの作り方講座。簡単なHTML5のファイルにa-blog cmsのスニペットを組み込む事であっという間に動的なスマートフォン向けサイトの完成です。
18:04 お土産のお菓子セット。#acmscampKM
キャンディーに続きお土産のお菓子を頂きました。名古屋といえば「ゆかり」ですよね。
18:10 ビルトインモジュール | リファレンス | サポート・マニュアル | a-blog cms – http://goo.gl/DXIUL 各種スニペットはここからコピペ出来るので、テストする程度なら充分使える。 18:13 WPにはWPの良さがあるし、a-blog cmsにも良さがある。どっちも大事。忘れるならMTだな。 #acmscampKM
Powered by twtr2src.
今回はリファレンスサイトのスニペットをコピペする事で簡単にa-blog cmsの機能を実装する事が出来ましたが、業務レベルになるとDreamWeaverからスニペットを挿入したり、TextExpanderのショートカットとしても使う事が出来るとの事です。有料アプリケーションですが便利そうなのでその内入れてみたいと思います。
今回は日帰りコースだったのでここまで。合宿コースに参加した人達は更に濃くて実践的なカスタマイズにまで踏み込んだ話をしていたようです。地元北九州の人達だけではなく、山口や広島からも参加者が来ていたのですが、ゆっくり話せなかったのは残念でした。
開発者自身によるハンズオンセミナーを受講した成果として、a-blog cmsの仕組みがある程度理解出来た事と、WordPressとの違い(使い分け)の基準が自分の中で明確になった事が挙げられます。どちらにもそれぞれの良さがあるので、それを引き出せるようなサイト構築が出来れば、と思いました。なお「忘れるならMT」に他意はありません。コアがPerlなので改めて勉強するのが面倒というだけです。
最後になりましたが、主催・運営してくれた皆さん、講義してくれた皆さん、そして参加した皆さん、本当に有意義な時間をありがとうございました。次に参加する時には1件構築出来ているように頑張ります。

















