<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ウェビンブログ &#187; CMS</title>
	<atom:link href="http://blog.webbingstudio.com/category/cms/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.webbingstudio.com</link>
	<description>札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:11:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>【OSC2010北海道】WordPressのセミナーのレポートと補足</title>
		<link>http://blog.webbingstudio.com/2010/07/osc2010do.html</link>
		<comments>http://blog.webbingstudio.com/2010/07/osc2010do.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 16:41:46 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Hokkaido]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1419</guid>
		<description><![CDATA[6月25日の「オープンソース・カンファレンス2010北海道」で行われたセミナー
「世界標準ブログツールWordPressの最新版3.0と豊富なプラグイン」のレポートです。
講師：WordBench札幌の田中さんのセミナー [...]]]></description>
			<content:encoded><![CDATA[<p>6月25日の「<a href="http://www.ospn.jp/osc2010-do/">オープンソース・カンファレンス2010北海道</a>」で行われたセミナー<br />
「世界標準ブログツールWordPressの最新版3.0と豊富なプラグイン」のレポートです。</p>
<p>講師：WordBench札幌の田中さんのセミナー資料はこちらです。<br />
<a href="http://another.maple4ever.net/archives/1270/">http://another.maple4ever.net/archives/1270/</a></p>
<p>拙記事ではセミナー内容の捕足、実務で扱うものとしての雑感などを交えます。<br />
まだ3.0をちゃんといじっていないので、3.0についてはあくまで聞きかじりの段階であることはご了承ください。</p>
<p><span id="more-1419"></span></p>
<blockquote><p><strong>WordPressはCMS</strong></p>
<ul>
<li><a href="http://www.hirose-kohmi.jp/blog/">広瀬香美ブログ</a></li>
<li><a href="http://www.100shiki.com/">百式</a></li>
<li><a href="http://www.kurashi-no-techo.co.jp/">暮らしの手帖</a></li>
</ul>
<p>WordPress3.0は6/25時点で1,121,440ダウンロード</p></blockquote>
<p>WordPressは時系列主体のサイトに強いように思われますが、「暮しの手帖」のような時系列に添わない、個性的な一覧ページを持ったサイト構築も充分可能です。</p>
<p>とは言え、様々な実務案件を経験してきた視点から言えば、静的ファイルとの共存が難しい、テーマファイルの見通しが良くないなどの欠点から多人数で連携して制作するサイトにはあまりおすすめできません。</p>
<p>尚、私のブログもWordPressです。一覧ページの体裁が普通のブログと違っていたり、a-blog cmsベースの本サイトとインクルードで連携していたりします。</p>
<blockquote><p>どのようなコンテンツマネージメントシステムということを知る にはそのデータ構造を知ることが早道です。<br />
WordPress 3.0 の新機能を交えまして、まずは WordPress の データ構造を紹介していきます。</p>
<p><strong>WordPressのデータ構造（記事情報）</strong></p>
<p>ポストとページの二種類＝post_type</p>
<ol>
<li>ポスト：時系列（日記／新着情報など）</li>
<li>ページ：固定的（自己紹介）</li>
</ol>
<p>ポストとページのメタ情報</p>
<ul>
<li> タイトル</li>
<li> 投稿日・投稿者</li>
<li> 修正日</li>
<li> パスワード</li>
<li> トラックバック先</li>
<li> 分類情報(カテゴリ・タグ・タクソノミー)</li>
<li> リビジョン</li>
<li>等々</li>
</ul>
</blockquote>
<p>WordPressの記事情報は時系列とカテゴリーによって分類することを前提にした「ポスト（記事）」と、1ページごとに独立した「ページ」に分類されます。</p>
<p>ただ、ページでも時系列の整理が可能だったり、後述の「カスタムタクソノミー」でうまくタグ分類すると、両者の区別はほとんどつかなくなってきます。<br />
この辺りの特徴は、MovableTypeと非常に良く似ています。</p>
<blockquote><p>
<strong>カスタム投稿</strong></p>
<p>WordPress3.0からの新機能<br />
ポスト／ページに加えて新しいタイプを定義できる</p>
<p>タイトル不要／日付不要／トラックバックが必要／などなど</p>
<p>旧来のポスト／ページもカスタム投稿のひとつとして<br />
デフォルト実装されている＝再定義ができる
</p></blockquote>
<p>カスタム投稿機能は、マルチブログ以上の目玉機能なんじゃないかと思っています。<br />
上の説明の通り「必要／必要ない項目」を自分で定義することが可能なので「タイトル・本文がなく、カスタムフィールドのみで構成された記事」などの大胆な構成も可能なようです。<br />
MovableType4以降で登場している「表示オプション」に近い印象です。</p>
<p>管理画面上の入力項目の順番設定はできるのか、旧来のプラグインや表示パフォーマンスへの影響はないかなど気になるところもありますが、使いこなせば無償で使える軽量CMSとしての良さが増しそうです。</p>
<blockquote><p>
<strong>カテゴリーとタグ</strong></p>
<p>記事に対する抽出条件のひとつ</p>
<p>1. カテゴリー→階層構造を持たせられる<br />
2. タグ→フラットな分類</p>
<p><strong>カスタム分類（タクソノミー）</strong></p>
<p>任意のセット分類を追加できる<br />
1サイトに複数のタグクラウドを生成できる</p>
<p>2.9から機能強化<br />
ただし分類の新規作成はプラグインが必要（<a href="http://wordpress.org/extend/plugins/custom-post-type-ui/">custom-post-type-ui</a>）
</p></blockquote>
<p>カスタムタクソノミーは、「複数の独立した階層カテゴリーを作成できる機能」と解釈した方がいいと思います。前バージョンから概念自体は存在していましたが、3.0以降では、管理画面からの設定が可能になりました。</p>
<p>こちらの記事で詳しく説明されている通り、導入の手順が面倒な割に必要性が薄い機能だったりします＾＾；</p>
<p><a href="http://www.odysseygate.com/archives/1620">カスタムタクソノミー(Custom Taxonomy)の導入と使い方 [WordPress 3.0]</a></p>
<blockquote><p>
<strong>その他の情報</strong></p>
<p>コメント<br />
記事に対する外部からのコメント</p>
<p>ユーザー権限<br />
複数のユーザーが投稿できるようにユーザー管理ができる<br />
購読者／管理者／編集者／作成者／投稿者<br />
管理画面のアクセス権限や投稿、修正制限<br />
投稿から公開へのワークフローが持てる</p>
<p>オプション<br />
サイトの動作システム情報</p>
<p>リンク先<br />
他サイトとのつながりを格納する情報／XFNを使える</p>
<p>ポストメタ（カスタムフィールド）<br />
記事に対するここまでで出てきた以外のカスタムメタ情報を持たせる
</p></blockquote>
<p>ユーザー権限については捕足が必要です。<br />
ほとんどの安価なCMSもそうですが、「上司」「部下」のアカウントがあって、部下が更新すると昇任者である上司に自動でメールが送られる…といった機能は、WordPress2.xの段階ではプラグインがなければできません。<br />
MUと統合したWordPress3.0はもしかしたらできるかもしれないのですが、まだ未確認です。すいません。</p>
<p>2.xでの実装方法についてはこちらの記事を参照してください。</p>
<p><a href="http://technolog.jp/website/cms/1900">WordPress &#8211; 公開承認ワークフロー &#8211; 新規公開 | Technolog.jp</a></p>
<p>リンクの「<a href="http://gmpg.org/xfn/creator-ja">XFN</a>」というのは人間関係を表現したフォーマットなのですが、<br />
<strong style="font-size: 150%;">なんで恋愛関係だけこんなに充実してますのん</strong><br />
と必要性に疑問を感じるわけですよ。ハイ。</p>
<blockquote><p>
<strong>その他の情報続き</strong></p>
<p>マルチブログ<br />
3.0から利用可能<br />
これまでに出てきた情報を複数もたすことで、複数のサイトを持つ</p>
<p>データフロー<br />
管理画面操作からのデータベースへの格納<br />
コメント者からのコメントの投稿<br />
トラックバック／ピンバック<br />
XMLRPC／ATOM経由でのデータベースへの格納</p>
<p>出力系（テンプレートタグ）<br />
WordPressテーマの実態<br />
テンプレートタグはデータ構造をHTMLやRSSで出力する関数群<br />
データの抽出を行うループ系の関数を起点に、条件取得された 情報を取得<br />
現在は主にブラウザ用に簡単に HTML 出力する機能が提供されている
</p></blockquote>
<p>注目していたマルチブログですが、今回のセミナーではデータ構造の説明の一部にとどまりました。<br />
MovableType4、SOY CMSのように管理画面からウィザードを介して作成できるのかと思っていましたが、現時点では外部からの.htaccessの編集などが必要なようです。<br />
サブドメインも想定して設計されているのはありがたいところです。</p>
<p><a href="http://lainforest.org/67/wordpress-3-0%E3%81%A7%E8%A4%87%E6%95%B0%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E4%BD%BF%E3%81%86%E8%A8%AD%E5%AE%9A/">Wordpress 3.0で複数ブログを使う設定 &laquo;  lainforest.org</a></p>
<p>出力系の説明にある通り、WordPressのタグはテンプレートエンジンではなく、PHPの関数です。<br />
なのでテーマにはそのまんま関数を書きます。<br />
PHPをある程度かじれば融通が利くのがありがたいところですが、プログラマさんがWordPressのテーマファイルを見たら、ちょっと面食らうかもしれません。</p>
<blockquote><p>
<strong>プラグイン</strong></p>
<p>add_filter／add_actionで既存のタグ／関数に自作関数をフックできる<br />
既存の関数も全てフックされているので不要なものを除外できる</p>
<p>functions.phpでテーマ専用の関数を定義できる</p>
<p>※簡単に実装できる反面、プログラム構造を追うのに慣れがいる</p>
<p>フィルターの例</p>
<p>記事の特定文字列を加工し、HTMLを付与<br />
（記事中の「hiromasa」をタグで囲む）</p>
<p>ショートコード<br />
（[tegaki]〜[/tegaki]で囲んだ箇所がカスタムフォントに変わる）</p>
<p>アクション（template_redirect）<br />
通常のテーマに情報を渡さず、携帯用テーマの処理をさせる（例：Ktai Style）</p>
<p>ウィジェット<br />
サイドバーのウィジェットを追加する</p>
<p>管理画面への機能追加<br />
3.0からの新テーマはヘッダー画像を差し替えできる</p>
<p>時間指定実行（wp_cron）<br />
コアには既に予約投稿の機能がある</p>
<p>必要なプラグインがあったなら「コア機能に対する変更」という視点で<br />
調査を行うと比較的簡単に実現可能</p>
<p>既存のプラグイン修正時もコアのどの部分に介在しているのかを調査し、<br />
そこからソースコードを追うとわかりやすい
</p></blockquote>
<p>WordPressは「フック」という概念でコア関数を管理しています。</p>
<p>既存のタグに新しい関数を定義する「add_filter」と</p>
<pre><code>add_filter( 'the_content', 'hogehoge' );</code></pre>
<p>WordPress内の特定の処理で関数を発動させる「add_action」があります。</p>
<pre><code>add_action( 'wp_head', 'hogehoge' );</code></pre>
<p>「コアのどの部分に介在しているのかを調査し、そこからソースコードを追う」というのが、プログラミングに慣れていないと難しいです。<br />
phpファイルを内部検索できるソフトなどで調べる手もありますが、<br />
WordPressのコアファイルを公開している、こちらのサイトが便利です。</p>
<p><a href="http://phpxref.ftwr.co.uk/wordpress/nav.html?_functions/index.html">PHP Cross Reference of WordPress</a></p>
<p>ページ右上にあるサーチボックスからタグ名、関数名を入力するとどのファイルの何行目にコードがあるのか、を調べることができます。</p>
<blockquote><p>
<strong>WordPressの魅力</strong></p>
<p>ブログを起源とするプロダクトだがデータ構造がシンプル<br />
特に3.0から基本構造や分類の解放を行っているためCMSとしても使いやすくなった</p>
<p>個性が強いブログサイトを構築する手段としても人気があるので<br />
テーマやプラグインに美術的なものが多く配布されている</p>
<p>個性をだすべく、システムもそれに答える形で拡張されていく<br />
テーマやプラグインからの介在の余地が大きく<br />
様々な要求に応えられるカスタマイズが可能</p>
<p>サイトへの導入実績が多くそのノウハウが得られやすい</p>
<p>WordCamp／WordBenchなどオフラインコミュニケーションも活発で楽しい</p>
<p><strong>WordBenchについて</strong></p>
<p>WordPress の地域コミニュティー<br />
実はWordBench札幌としてのオフライン活動はこのOSC北海道が初めて</p>
<p>参加お待ちしております<br />
<a href="http://wordbench.org/">http://wordbench.org/</a>
</p></blockquote>
<p>セミナーのレポートは以上です。</p>
<p>田中さんが述べられているように、WordPressはPHPの知識があれば柔軟なカスタマイズができることが魅力です。<br />
このためかデザイナーが介入しやすく、芸術品のようなテーマ、とても無料とは思えないような高度なテーマが多数公開されています。<br />
管理画面の完成度の高さも特筆すべきところです。</p>
<p>一方で「<strong>安くて簡単でなんでもできる</strong>」という情報が一人歩きしてしまい、WordPressの仕様では困難な案件、ライセンス料をかんがみても他のCMSの方が安心して運用できそうな案件もWordPress前提で来ることが増えているのが、私の悩みだったりします。</p>
<p>そういう意味で、新機能を派手にアピールするのでなく、WordPressを更に詳しく知るための解説に徹した田中さんのセッションは好感を持ちました。</p>
<p>MUと統合し、更に奥深くなったWordPressはこれからも注目すべきCMSだと思います。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E3%80%90OSC2010%E5%8C%97%E6%B5%B7%E9%81%93%E3%80%91WordPress%E3%81%AE%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E3%81%AE%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A8%E8%A3%9C%E8%B6%B3+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F2dwoyjh&amp;in_reply_to_status_id=17426918794" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/07/osc2010do.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MovableType投稿画面の入力項目を全ユーザーで統一するプラグイン「EntryPrefsFixer」</title>
		<link>http://blog.webbingstudio.com/2010/05/mt_entryprefsfixer_plugin.html</link>
		<comments>http://blog.webbingstudio.com/2010/05/mt_entryprefsfixer_plugin.html#comments</comments>
		<pubDate>Sun, 23 May 2010 19:10:21 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[これはいい]]></category>
		<category><![CDATA[カスタムフィールド]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1364</guid>
		<description><![CDATA[「EntryPrefsFixer」は、システム内の全ユーザーの入力項目を、強制的に同じにするMovableType用のプラグインです。
ダウンロードはこちら。
Movable Typeでエントリの表示オプションを全ユーザ [...]]]></description>
			<content:encoded><![CDATA[<p>「EntryPrefsFixer」は、システム内の全ユーザーの入力項目を、強制的に同じにするMovableType用のプラグインです。</p>
<p>ダウンロードはこちら。<br />
<a href="http://junnama.alfasado.net/online/2010/05/movable_type_9.html" class="blank">Movable Typeでエントリの表示オプションを全ユーザーで同一にする。 &#8211; Junnama Online</a></p>
<p>特に設定はありません。有効にしている間、MTの動作が以下のように変わります。</p>
<ul>
<li>システムまたはブログ管理者が「表示オプション」を変更したタイミングで、その内容が全ユーザーに反映される</li>
<li>管理者権限のないユーザーの投稿画面には、表示オプションが出なくなる</li>
<li>プラグイン有効化前に各ユーザーが個別に表示オプションを変更していても、管理者が変更をした時点で強制的に上書きされる</li>
</ul>
<ol>
<li>MovableType4・5・<a href="http://powercms.alfasado.net/" class="blank">Power CMS for MT</a>で動作を確認しています。</li>
<li>新規アカウントを追加したタイミングでも同期される機能があったようですが、動作しないようです。現状では「表示オプションを変更したとき」のみ行われます。</li>
</ol>
<p>かなり実務向けのプラグインなので、機能をざっと書いてもピンと来ない人も多いかもしれません。<br />
必要な場面や技術的な捕足は、追記以降をご覧くださいませ。</p>
<p><span id="more-1364"></span></p>
<h3>MovableTypeの表示オプションの仕様について</h3>
<p>MT4以降では、投稿画面の入力項目の表示・並び順を細かく設定することができます。<br />
カスタムフィールドを多用するCMS的な構築には必須の機能ですが、ひとつ面倒なところがあります。</p>
<p><a href="http://blog.webbingstudio.com/uploads/2010/05/100502-0001.png"><img src="http://blog.webbingstudio.com/uploads/2010/05/100502-0001-480x368.png" alt="" title="100502-0001" width="480" height="368" class="alignnone size-large wp-image-1366" /></a></p>
<p>新規で記事を書くときの大まかな「<strong>項目の表示</strong>」については、各ブログの「設定」→「投稿」で前もって指定できるのですが、<br />
投稿画面右上の「表示オプション」で指定できる「<strong>項目の並び順</strong>」に関しては各ユーザー個別となります。</p>
<p><a href="http://blog.webbingstudio.com/uploads/2010/05/100502-0002.png"><img src="http://blog.webbingstudio.com/uploads/2010/05/100502-0002-112x200.png" alt="" title="100502-0002" width="112" height="200" class="alignleft size-medium wp-image-1365" /></a></p>
<p>つまり、MovableTypeの管理者が<br />
入力しやすいようにカスタムフィールドの項目を整頓していても</p>
<div class="clear"></div>
<p><a href="http://blog.webbingstudio.com/uploads/2010/05/100502-0003.png"><img src="http://blog.webbingstudio.com/uploads/2010/05/100502-0003-112x200.png" alt="" title="100502-0003" width="112" height="200" class="alignleft size-medium wp-image-1367" /></a></p>
<p>更新担当者のアカウントでログインすると、<br />
初期状態に戻ってしまうのです。</p>
<div class="clear"></div>
<p>ブログやアカウントの数がほとんどないのであれば大した問題ではないのですが、大規模案件などで<strong>ブログ10個・アカウント10個となってくると、10×10で100回分の表示オプションの設定を行わなければならない</strong>のです。</p>
<p><del>ぶっちゃけやってられま(ry</del></p>
<p>そんなときに「EntryPrefsFixer」を使うことで、下位ユーザーの環境を管理者側で簡単に整えることができます。<br />
後々アカウントが増えたときの表示オプションの変更回数も、ブログの数だけで済みます。</p>
<h3>技術的な捕足</h3>
<p>このプラグインは、<a href="http://twitter.com/Nick_smallworld" class="blank">@Nick_smallworldさん</a>と私(@webbingstudio)のTwitterでの会話を、<a href="http://twitter.com/junnama" class="blank">@junnamaさん</a>が見て作成してくれたものです。</p>
<p>@Nick_smallworldさんに許可をいただいたので、ログを技術情報として追記します。<br />
DBを直接編集することで対応したい人や、同様のプラグインを作ってみたい人は参考にしてください。</p>
<blockquote>
<p><a href="http://twitter.com/Nick_smallworld/status/13115605777">【緩募】MovableTypeで、Aさん（もしくはシステム管理者）がカスタムフィールドの並び替えをしたときに、他ユーザー（Bさん、Cさん）も強制的にAさんの並び順にさせる方法をご存じの方、いらっしゃいますでしょうか。 11:56 PM Apr 29th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13140702702">@Nick_smallworld MTの項目並び替えの件、遅レスですが私も調べたことがあるので、情報流しておきますね。この先しばらく連投になりますが失礼。 10:22 AM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13140804452">管理画面項目の表示／非表示、並び替えは「mt_permission」テーブルの[permission_entry_prefs]がブログID、ユーザーIDをキーに管理しているらしいです。 #movabletype 10:24 AM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13140877792">.@Nick_smallworld すいません、これの一個前Replyにしませんでした。…なのでメインユーザーのpermission_entry_prefsを他ユーザーに複製すると並び順は同じになるのではないかと考えられます。 #movabletype 10:25 AM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13140938628">.@Nick_smallworld このことをサーバー担当の方に伝えたところそれでうまくいったぽいのですが、残念ながら私自身はまだ検証できていません。 #movabletype 10:27 AM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13141061060">.@Nick_smallworld にっくさんのように「強制的に」と考えている場合、編集のタイミングでプラグインを起動させる／cronか別途プログラム起動で、該当DBを修正させる／という手がある気がします。 #movabletype 10:29 AM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13141119226">@Nick_smallworld カスタムフィールドの並び順に関して私の方でわかってるのはこのくらいですが、少しでも参考になれば。てゆか誰かプラグイン作ってくれないかなあ。 #movabletype 10:30 AM Apr 30th</a></p>
<p><a href="http://twitter.com/Nick_smallworld/status/13160637230">@webbingstudio  ありがとうございました！ばっちりできました。permissionのほうに定義されていたとは気がつかず「blog_かauthor_の方だろうなー、でも項目が無いなー」と思って探していましたｗ　6:01 PM Apr 30th</a></p>
<p><a href="http://twitter.com/webbingstudio/status/13168842678">@Nick_smallworld  あれでできましたかー。結局、項目の表示順は全ユーザーで統一することが多いですよね。今後の案件にも役立ちそうなので、私も試してみます！ 8:52 PM Apr 30th</a></p>
</blockquote>
<p>あと名前出せないのですが、私の検証を元に実際にDBを書き換えて動作確認してくれた当時の某社サーバー担当者様、ありがとうございましたー＞＜。</p>

<a href="http://twitter.com/?status=RT+%40%3A+MovableType%E6%8A%95%E7%A8%BF%E7%94%BB%E9%9D%A2%E3%81%AE%E5%85%A5%E5%8A%9B%E9%A0%85%E7%9B%AE%E3%82%92%E5%85%A8%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A7%E7%B5%B1%E4%B8%80%E3%81%99%E3%82%8B%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%80%8CEntryPrefsFixer%E3%80%8D+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F26t9gph&amp;in_reply_to_status_id=14573631854" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/05/mt_entryprefsfixer_plugin.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressをもっとカスタマイズするための、記事情報の解析方法</title>
		<link>http://blog.webbingstudio.com/2010/05/wordpress_posts.html</link>
		<comments>http://blog.webbingstudio.com/2010/05/wordpress_posts.html#comments</comments>
		<pubDate>Fri, 14 May 2010 17:16:12 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1346</guid>
		<description><![CDATA[
WordPressは素晴らしいフリーテーマがたくさんあるので、それをいじるだけでもカスタマイズは習得できます。
ですが、実務的なカスタマイズに必要となる「詳しい記事情報を解析する方法」は意外と紹介されていません。
簡単 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1347" title="posttest" src="http://blog.webbingstudio.com/uploads/2010/05/posttest.jpg" alt="" width="480" height="387" /></p>
<p>WordPressは素晴らしいフリーテーマがたくさんあるので、それをいじるだけでもカスタマイズは習得できます。<br />
ですが、実務的なカスタマイズに必要となる「<strong>詳しい記事情報を解析する方法</strong>」は意外と紹介されていません。</p>
<p>簡単に実験できるテーマもおまけにつけて、ざっくりまとめてみました。<br />
PHPのことはあまりよくわからない…という人たちは、これをとっかかりに学習してみてはいかがでしょうか。</p>
<p><span id="more-1346"></span></p>
<h3>０：記事情報解析用のテーマ「posttest」</h3>
<p>これは、記事情報を解析するための構文だけが書いてある、実験用のテーマファイルです。<br />
ブログ用のテーマではないので「index.php」しかありませんがw<br />
この先を読みながら、あなたのブログに反映して試してみてください。</p>
<p><a class="blank" href="http://webbingstudio.com/souvenir/theme_posttest.zip">記事情報解析用のテーマ「posttest」ダウンロード</a></p>
<h3>１：サーバー情報を得る</h3>
<p>サーバー情報を取得、出力します。<br />
これはWordPressの独自タグではなくPHP標準の関数です。<br />
<strong>※第三者が閲覧できるページで実行しないようにしてください。</strong></p>
<pre><code>&lt;?php
	print_r($_SERVER);
?&gt;
</code></pre>
<h3>２：カテゴリー情報を得る</h3>
<p>カテゴリー情報を取得、出力します。<br />
出力内容は「$posts[0]のカテゴリー情報」なので、複数カテゴリーが指定されている可能性もあります。<br />
また、<strong>出力結果の記事が一件もないと、この内容もNULLになってしまいます</strong>。出力結果がゼロの可能性があるけれどカテゴリーの情報を取得したい…という場合は、<del datetime="2010-05-14T17:16:16+00:00">ちゃんと引数にカテゴリーIDを明示するようにしてください。</del>【訂正】この関数は引数がありません。すいません。DBから直接取得した方が早いかもしれません（汗）</p>
<pre><code>&lt;?php
	$cat = get_the_category();
	print_r($cat);
?&gt;
</code></pre>
<h3>３：記事情報を解析</h3>
<p>query_posts関数を実行していない状態では、<br />
オブジェクト「$posts」にはそのページに沿った記事情報が入っています。<br />
単純な出力は「&lt;?php while ( have_posts() ) : the_post() ?&gt;～&lt;?php endwhile ?&gt;」でできますが、PHPのforeach関数でも取得することができます。</p>
<pre><code>&lt;?php while ( have_posts() ) : the_post() ?&gt;
&lt;?php print_r ($post) ?&gt;
&lt;?php endwhile ?&gt;
</code></pre>
<h3>４：抽出条件の上書き</h3>
<p>query_posts関数を使用すると、出力される記事の条件を変更することができます。<br />
グローバル変数「query_string」を上書きするのが確実です。<br />
※ID「5」の記事を抽出するようになっています。構文の「cat=5」のところを任意で書き換えてください</p>
<p>指定できるクエリについては<a class="blank" href="http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts">WordPress Codex内「query posts」の解説</a>を参照してください。</p>
<pre><code>&lt;?php
	$Q = "&amp;category_name=&amp;cat=5";
	global $query_string;
	query_posts($query_string . $Q);
?&gt;
</code></pre>
<h3>５：the_postを再実行後記事情報を解析</h3>
<p>query_posts関数を使用後、もう一度<br />
「&lt;?php while ( have_posts() ) : the_post() ?&gt;～&lt;?php endwhile ?&gt;」を実行すると、記事情報が新しく定義したものに変更されます。<br />
（３の後に４→５と実行して内容を比較してみてください）</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		print_r ($post);
	}
?&gt;
</code></pre>
<h3>６：オブジェクト内容の取得</h3>
<p>記事タイトルだけ必要な場合は、「-&gt;」でキーを指定することで、文字列で習得できます。<br />
配列のように見えますが、<strong>$post['post_title']では取得できない</strong>ことに注意してください。</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		echo $post-&gt;post_title . '&lt;br /&gt;';
	}
?&gt;
</code></pre>
<h3>７：補足</h3>
<p>WordPressのpostに入っている値は、全てPHPエンコード処理がされています。<br />
このため、クォーテーションやバックスラッシュが含まれる記事を関数に投入しても問題は起きません。<br />
ただし、<strong>HTMLはエンコードされていない</strong>ので、HTMLタグが反映されると危ない状況で使用する場合は<br />
strip_tags関数やhtmlspecialchars関数を通すようにしましょう。</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		echo strip_tags($post-&gt;post_content) . '&lt;hr /&gt;';
	}
?&gt;
</code></pre>
<hr />
<p>WordPressはPHPの知識があれば、簡単にカスタマイズできるのが魅力です。<br />
ですが、他のCMSと違ってプログラムを直に扱うため、テーマファイルの見通しが利きにくく、予想外の不具合やセキュリティホールが発生する可能性が高い側面があります。<br />
趣味レベルなら問題ないですが、実務でWordPressを構築する場合は仕様やリスクを考慮して正しく利用したいものです。</p>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%82%92%E3%82%82%E3%81%A3%E3%81%A8%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%80%81%E8%A8%98%E4%BA%8B%E6%83%85%E5%A0%B1%E3%81%AE%E8%A7%A3%E6%9E%90%E6%96%B9%E6%B3%95+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F27yz45b&amp;in_reply_to_status_id=13987172930" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/05/wordpress_posts.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>地図追加機能を投稿画面に標準で実装しているCMS</title>
		<link>http://blog.webbingstudio.com/2010/01/entry_map.html</link>
		<comments>http://blog.webbingstudio.com/2010/01/entry_map.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 07:25:54 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[a-blog cms]]></category>
		<category><![CDATA[bingo!cms]]></category>
		<category><![CDATA[concrete5]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jumdo]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1300</guid>
		<description><![CDATA[
前回の記事で書いた通り、地図を追加する機能を標準で持っていないMovableTypeに、それを実装しようとすると、この記事を書いた時点では有力なプラグインがなく、面倒なカスタマイズが必要になります。
あんな長いチュート [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2010/01/map_alogcms.jpg"><img src="http://blog.webbingstudio.com/uploads/2010/01/map_alogcms-480x397.jpg" alt="" title="map_alogcms" width="480" height="397" class="alignnone size-large wp-image-1301" /></a></p>
<p><a href="http://blog.webbingstudio.com/2010/01/movabletype_googlemaps_thickbox.html">前回の記事</a>で書いた通り、地図を追加する機能を標準で持っていないMovableTypeに、それを実装しようとすると、この記事を書いた時点では有力なプラグインがなく、面倒なカスタマイズが必要になります。</p>
<p>あんな長いチュートリアルを書いておいてなんですが、どうしてもMovableTypeを使わなければならない案件でないなら、標準で実装しているCMSを提案した方が、予算・工数の面からも確実というものです。</p>
<p><span id="more-1300"></span></p>
<p>私が把握している、投稿画面に地図追加機能を実装しているCMSは下記の通りです。</p>
<ol>
<li><a href="http://www.a-blogcms.jp/" class="blank">a-blog cms</a></li>
<li><a href="http://concrete5-japan.org/" class="blank">concrete5</a></li>
<li><a href="http://www.bingo-cms.jp/" class="blank">bingo!CMS</a></li>
<li><a href="http://jp.jimdo.com/" class="blank">Jimdo</a></li>
</ol>
<p>このうち、bingo!CMSはYahoo!マップ、それ以外はGoogleMapsのAPI Keyを取得する必要があります。</p>
<p>地図の目的地を検索し、中心に持ってきて吹き出しのコメントを入力する、という操作感はどれもほぼ同じです。<br />
尚、冒頭のスクリーンショットはa-blog cmsの画面です（私の本サイトの投稿画面なので、デフォルトとはカラーリングが異なります）。</p>
<p>ただし、四つのCMSは設計思想が微妙に異なっています。<br />
a-blog cmsはMovableType・WordPressと同様に、カテゴリーや時系列のアーカイブでコンテンツを出力する更新方法が基本設計ですが、残りの三つは実際に表示されているコンテンツ内をクリックして、ホームページビルダーやDreamweaverのように、直感的に編集させる更新方法が基本になっています。</p>
<p>コンテンツが少なく、各ページの構成が異なるサイトであれば下の三つの方が構築しやすいですし、前の記事のような、入力フォーマットがが決まっているコンテンツを大量に生成するサイトであれば、a-blog cmsが適していると考えられます。</p>
<p>個人的には、MovableType・WordPressの代替として選択するのであれば、管理画面のカスタマイズのしやすさの点からも、機能面の近さからもa-blog cmsをお勧めしたいところです。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E5%9C%B0%E5%9B%B3%E8%BF%BD%E5%8A%A0%E6%A9%9F%E8%83%BD%E3%82%92%E6%8A%95%E7%A8%BF%E7%94%BB%E9%9D%A2%E3%81%AB%E6%A8%99%E6%BA%96%E3%81%A7%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%84%E3%82%8BCMS+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fykthzok&amp;in_reply_to_status_id=8270830070" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/01/entry_map.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>改修しやすいテンプレート作りを考える</title>
		<link>http://blog.webbingstudio.com/2010/01/template_developmen.html</link>
		<comments>http://blog.webbingstudio.com/2010/01/template_developmen.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 09:37:32 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Customize]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1267</guid>
		<description><![CDATA[複数人がチームを組んでCMS連動サイトを作る場合、テンプレートの担当者以外が後日、ソースコードの改修をすることがよくあります。

私の場合、制作会社から依頼を請けることが多いので、そこの担当者＝ディレクター、またはそ [...]]]></description>
			<content:encoded><![CDATA[<p>複数人がチームを組んでCMS連動サイトを作る場合、テンプレートの担当者以外が後日、ソースコードの改修をすることがよくあります。</p>

<p>私の場合、制作会社から依頼を請けることが多いので、そこの担当者＝ディレクター、またはその会社の、MovableType／WordPressのスキルを持つ制作の方がコードを見ることがあります。</p>

<p>個人でテンプレートの構築をしていた頃は、変数や独自タグを駆使してけっこう複雑なコーディングもしていたのですが、チーム制作に関わるようになってからは<br />
「自分以外のテンプレート制作者が見ても、理解しやすい構造になっているか」<br />
を考慮するようになりました。</p>

<span id="more-1267"></span>

<p>特に質問されることが多いのが、自分以外には見通しが利きにくい、以下の二つです。</p>

<ul>
	<li>何度も使い回す関係でモジュール化して、インクルードで読み込んでいる部分</li>
	<li>mt:SetVarやPHPの変数を使用している部分</li>
</ul>

<p>特にMovableTypeの「<a href="http://www.movabletype.jp/documentation/appendices/tags/include.html" class="blank">mt:Include</a>」には多彩な機能があり、下のようにモディファイアに変数の値を渡したり、</p>

<pre><code>&lt;$mt:Include module="Module_Hoge" foo="Var"$&gt;</code></pre>

<p>（↑読み込み先の「Module_Hoge」モジュールで変数名fooに値Varが渡されます）</p>

<p>「<a href="http://www.movabletype.jp/documentation/appendices/tags/includeblock.html" class="blank">mt:IncludeBlock</a>」という、変数の値を渡すことを前提としたタグもあります。</p>

<pre><code>&lt;mt:IncludeBlock module="Module_Hoge2"&gt;
Movable Typeへようこそ！
&lt;mt:IncludeBlock&gt;</code></pre>

<p>（↑読み込み先の「Module_Hoge2」モジュールで変数名contentに値「Movable Typeへようこそ！」が渡されます）</p>

<p>ですが、<strong>私はこういった変数の渡し方はできるだけ避けています。</strong></p>

<p>このような変数の渡し方をコード全体に渡ってやってしまうと、モジュール側の方のコードを見て<br />
「あれ？ここで参照されてる、変数fooってなんだろう」<br />
と思ったときに、読み込み元と思われるベーステンプレートを上から下まで探さなければいけなくなります。<br />
繰り返しや条件分岐などの一時変数以外は、わかりにくい場所で変数を宣言するのは避けるべきです。</p>

<p>私の場合、サイト内で頻繁に利用されることがわかっている固定値は、<br />
「<a href="http://www.movabletype.jp/documentation/appendices/tags/setvars.html" class="blank">mt:SetVars</a>」「<a href="http://www.movabletype.jp/documentation/appendices/tags/setvarblock.html" class="blank">mt:SetVarBlock</a>」などを使い、テンプレートの先頭でまとめて宣言してしまうようにしています。</p>

<textarea readonly="readonly" cols="60" rows="5">
&lt;mt:SetVarBlock name="Global_Aaaa">&lt;$mt:HogeHoge$&gt;&lt;/mt:SetVarBlock&gt;
&lt;mt:SetVarBlock name="Global_Bbbb">&lt;$mt:FugaFuga$&gt;&lt;/mt:SetVarBlock&gt;
&lt;mt:SetVars&gt;
Global_Cccc=値C
Global_Dddd=値D
Global_Eeee=値E
&lt;/mt:SetVars&gt;</textarea>

<p>全テンプレートに使用する変数はやはりモジュールとなりますが、少なくとも変数について訪ねられたら<br />
「グローバルテンプレートの『Module_Config』を見てください」<br />
とか<br />
「テンプレートの文書宣言の次辺りに書いてあります」<br />
と、簡単に変数を宣言している場所を答えることができます。</p>

<p>モジュールの呼び出し方に関しても、</p>

<textarea readonly="readonly" cols="60" rows="5">&lt;div id="header"&gt;
&lt;$mt:Include module="Module_Header"$&gt;
&lt;!-- /#header --&gt;&lt;/div&gt;

&lt;div id="main"&gt;
（本文）
&lt;!-- /#main --&gt;&lt;/div&gt;

&lt;div id="footer"&gt;
&lt;$mt:Include module="Module_Footer"$&gt;
&lt;!-- /#footer --&gt;&lt;/div&gt;
</textarea>

<p>と、<strong>外側のレイアウト用のdivが残るように、かつHTMLタグを分断しないように</strong>呼び出し、各テンプレートのHTML構造を見通せるよう気を付けています。</p>

<p>また、複雑な条件分岐などをしているところでは、<a href="http://www.movabletype.jp/documentation/appendices/tags/ignore.html" class="blank">mt:Ignore</a>やPHPコメントなどで説明を添えることも多くなりました。</p>

<pre><code>&lt;mt:Ignore&gt;### ○○のときは△△を表示します ###&lt;/mt:Ignore&gt;</code></pre>

<p>これまでのTipsでもう出てきていますが、変数やモジュールの命名に関しても<br />
「Global_」や「Module_」などの<strong>接頭語を統一して、それらが何に使われているのかが名前を見ればわかるようにしている</strong>のも、テンプレートをわかりやすくするための工夫のひとつです。</p>

<hr />

<p>…と、何だか高度なことをやっているような書き方をしましたが、これらはシステムそのものを作り、かつ日常的にチーム制作をしているプログラマにとっては、基本中の基本だろうと思います。</p>

<p>「デザイナー」を名乗っていると、デザインをテンプレートで再現することに集中しがちになりますが、HTML/CSSコーディング同様、テンプレートの構築もプログラミングの一種です。<br />
テンプレートコーディングに関しても、より早い構築・改修ができるよう、定期的にブラッシュアップをはかりたいものです。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E6%94%B9%E4%BF%AE%E3%81%97%E3%82%84%E3%81%99%E3%81%84%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E4%BD%9C%E3%82%8A%E3%82%92%E8%80%83%E3%81%88%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F382fsaq&amp;in_reply_to_status_id=7588676418" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/01/template_developmen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a-blog cmsは「成長させるCMS」だと思う</title>
		<link>http://blog.webbingstudio.com/2009/12/ablogcms_120.html</link>
		<comments>http://blog.webbingstudio.com/2009/12/ablogcms_120.html#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:47:35 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[a-blog cms]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[これはいい]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1225</guid>
		<description><![CDATA[
「a-blog cms」の新バージョン、1.2.0がリリースされました。
主な追加機能は以下の通りです。

WYSIWYGエディタの追加
絵文字の入出力に対応
ショッピングサイト機能(メール通知のみのシンプルなカートが [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2009/12/acms_120.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/12/acms_120-480x380.jpg" alt="acms_120" title="acms_120" width="480" height="380" class="alignnone size-large wp-image-1226" /></a></p>
<p><a href="http://www.a-blogcms.jp/news/release/release120.html" class="blank">「a-blog cms」の新バージョン、1.2.0がリリースされました。</a><br />
主な追加機能は以下の通りです。</p>
<ol>
<li>WYSIWYGエディタの追加</li>
<li>絵文字の入出力に対応</li>
<li>ショッピングサイト機能(メール通知のみのシンプルなカートが標準搭載)</li>
<li>ルール(使用するテーマの条件分岐)に「正規表現」が追加</li>
<li>出力ソースのクリーンアップ</li>
<li>モジュールの追加</li>
</ol>
<p>入力形式にWYSIWYGが加わったことで、一般のブログやWordに慣れている更新担当者がいる案件にも対応しやすくなったと思います。<br />
制作する立場としては、やはりルールの正規表現対応や、モジュール追加が興味深いところです。<br />
<a href="http://www.a-blogcms.jp/showcase/" class="blank">導入事例紹介のページ</a>もどんどん厚みを増しているので、今後が楽しみです。</p>
<hr />
<p>前の記事にもある通り、私＝WebbingStudioは、a-blog cmsのビジネスパートナーになりました。</p>
<p>制作会社ではなく、しかも自分からCMSを選択する機会が少ない個人事業主の私がどうしてa-blog cmsを支援することにしたのかというと、<br />
「制作会社・クライアント双方の意識を変え、成長させる」<br />
可能性に強い興味を持ったからです。</p>
<p><span id="more-1225"></span></p>
<h3>制作会社側の意識</h3>
<p>MovableType・WordPress（特にWP）での小規模な構築案件を重ねると、制作者はこんな考え方に慣れてきてしまいます。</p>
<ul>
<li>テンプレート化すると、もうDreamweaverなどのオーサリングソフトで編集できない</li>
<li>HTML・CSSを完全に完成させてからでないと動的部分に手をつけられない</li>
<li>コンテンツは全てCMSの管理下に置くものだ</li>
<li>管理画面・投稿画面は配置が決まっているものだ</li>
</ul>
<p>大規模な案件を経験するとわかってくることですが、デザイン性が高く、かつクライアントが更新する可能性がほぼないコンテンツを無理にCMSの管理下に置く必要はありません。<br />
ぶっちゃけ、<strong>ウェブページテンプレートなんぞなくてもいいのです</strong>。<br />
むしろ今後更新依頼をもらえる余地を残しといた方が(ry</p>
<p>一般のブログ的なCMSは、これら静的コンテンツを動的コンテンツと切り分けるのが難しくなっていますが、a-blog cmsは特に意識しなくても、同時にオーサリングソフトで一括管理することが可能です。<br />
（実際、私の本サイトのうち「About」と「Work」は普通の静的コンテンツです）</p>
<p>また、a-blog cmsは投稿画面も制作できるため、いかに更新担当者が作業しやすくするかを考えることで、「インフォメーションアーキテクト」や「アクセシビリティ」に対する意識も持つことができます。<br />
これらは、今後のWEBデザイナー・コーダーに必須のスキルになっていくと思います。</p>
<p>プログラマはCMSに対する考え方が異なるので、彼らが加わるとまた事情が変わってきますが、少なくともプログラマがいない制作会社／プログラマが必要ない案件のワークフローを激変させる可能性を、a-blog cmsは持っているのです。</p>
<h3>クライアント側の意識</h3>
<p>私のように制作会社から協業依頼を請ける場合、<strong>はじめからMovableTypeに決まっている案件</strong>がひじょうに多いです。<br />
クライアントが以下のような固定意識を持ってしまっているパターンも散見されます。</p>
<ul>
<li>MovableType以外のCMSを知らない</li>
<li>管理画面の配置が公開サイトと違う＝CMSとはそういうものだ</li>
<li>MovableTypeとかいうのが有名だし実績も多いからとりあえずこれを採用すれば無難だ</li>
</ul>
<p>もちろんMovableTypeは拡張性が高く安定した、良いシステムです。<br />
管理画面の編集も可能です（a-blog cmsほど直感的でないですが）。<br />
ですが、提案する側が「MTを前提としたディレクション」を行ってしまうのは、カスタマイズを扱う私としては、あまり良い傾向とは思えません。<br />
更新手順が複雑になってしまっては意味がないです。</p>
<p>MTと同様に拡張性が高く、かつ設計思想が異なるa-blog cmsを選択肢に挙げることは、クライアントの意識を変えられる可能性もあるのです。</p>
<hr />
<p>CSS Nite LP6に参加する前から、何らかの国産CMSをMovableType・WordPressと同様にサポートしようと検討してきましたが、私のお仕事の傾向もあって、最終的に、a-blog cmsがメインとなりました。</p>
<p>a-blog cmsは、制作会社とクライアントを「成長させる」CMSです。</p>
<p><a href="http://www.a-blogcms.jp/download/" class="blank"><strong>a-blog cmsを触ってみてください。</strong></a></p>

<a href="http://twitter.com/?status=RT+%40%3A+a-blog+cms%E3%81%AF%E3%80%8C%E6%88%90%E9%95%B7%E3%81%95%E3%81%9B%E3%82%8BCMS%E3%80%8D%E3%81%A0%E3%81%A8%E6%80%9D%E3%81%86+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fyjd39a5" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/12/ablogcms_120.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>works:WebbingStudio(a-blog cms)</title>
		<link>http://blog.webbingstudio.com/2009/11/works_webbingstudio0911.html</link>
		<comments>http://blog.webbingstudio.com/2009/11/works_webbingstudio0911.html#comments</comments>
		<pubDate>Fri, 13 Nov 2009 06:54:42 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[a-blog cms]]></category>
		<category><![CDATA[illustration]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1195</guid>
		<description><![CDATA[
WebbingStudioのメインサイトを、MovableType4からa-blog cmsにベースを変えてリニューアルしました。
商用ブログ ホームページ作成 CMSデザイン 札幌のWebデザイナー &#124; Webbin [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2009/11/webbingstudio0911.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/11/webbingstudio0911-480x322.jpg" alt="webbingstudio0911" title="webbingstudio0911" width="480" height="322" class="alignnone size-large wp-image-1197" /></a></p>
<p>WebbingStudioのメインサイトを、MovableType4から<a href="http://www.a-blogcms.jp/" class="blank">a-blog cms</a>にベースを変えてリニューアルしました。</p>
<p><a href="http://webbingstudio.com/" class="blank">商用ブログ ホームページ作成 CMSデザイン 札幌のWebデザイナー | WebbingStudio</a></p>
<p>a-blog cmsは、Dreamweaverを使ってスムーズな構築ができるのと、管理画面とカスタムフィールドを一括してカスタマイズできる点に惹かれて選びました。<br />
既存のテーマファイルは流用せず、いったん静的コンテンツで作成してからCMS化する、実務的な手順で構築しています。</p>
<p>今後、a-blog cmsのデモサイトとして、カスタマイズした投稿画面、テーマファイル内のコード・モジュール設定の公開などを行っていく予定です。<br />
もちろん私自身もまだわからないことが多いので完璧な内容ではないですが、a-blog cmsを勉強中の方の参考になれば幸いです。</p>
<p>追記以降はデザインの話など。</p>
<p><span id="more-1195"></span></p>
<p>6月頃に、「これまでの自分がやらなかったデザインに挑戦してみよう」と思ってデザインをリニューアルしたものの、やっぱりそれは本来の私のテイストではないわけで、納得が行きませんでした。<br />
なので今回は、素材配布やFC2の共有テンプレートを作っていた頃の原点に戻り、ベクターグラフィックを多用し、背景素材・イラスト以外を全てモノクロでまとめた、シンプルなサイトにしました。</p>
<p>また、画風が固まってきたのでイラストの案件も受けられるようにと、サイト内にイラストを多用しました。<br />
これまできちんと公開してこなかった自分の顔も、イラストでかなり近いものを載せています。</p>
<p>背景画像はコンテンツごとに異なっているのですが、一部はFC2の共有テンプレートで配布していた素材をリメイクしたものです。</p>
<ul>
<li>About　・・・　<a href="http://webbingstudio.blog10.fc2.com/?template=beads_1&#038;index" class="blank">beads</a></li>
<li>Work　・・・　<a href="http://webbingstudio.blog10.fc2.com/?template=lace_1&#038;index" class="blank">lace</a></li>
<li>Information　・・・　<a href="http://webbingstudio.blog10.fc2.com/?template=cycle&#038;index" class="blank">cycle</a></li>
</ul>
<p><a href="http://blog.webbingstudio.com/uploads/2009/11/info_header.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/11/info_header-480x85.jpg" alt="info_header" title="info_header" width="480" height="85" class="alignnone size-large wp-image-1196" /></a></p>
<p>Informationの背景画像(cycle)は、他のコンテンツと雰囲気が異なっています。<br />
子供っぽさを感じる方もいるかもしれません。</p>
<p>これは私が好きな北海道の<a href="http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%82%A2%E3%83%AF%E3%83%BC_%28%E5%86%99%E7%9C%9F%29" class="blank">マジックアワー</a>をイメージして描いたもので、趣味でサイトを運営していたころから繰り返しリメイクしています。<br />
思い入れの強いモチーフなので、敢えて加えました。</p>
<p>最後に、このブログを見に来ている方は気付かなかったと思いますが、IE6非対応となりました。<br />
暇な方はIE6でアクセスしてみてください。閲覧はできますが専用のメッセージが出てひどいことになります。<br />
どこに透過PNGを使用しているかわかって面白いかもです。</p>
<p>最近は、IE7以降へアップグレードする人も増えてきました。<br />
私のメインクライアントは<strong>「制作会社」か「ネットリテラシーの高い個人」</strong>なので、自分のサイトでは切り捨てる決断をしました。<br />
もちろんお仕事では忌々しいと思いつつも、もうしばらく対応していきますけどね…</p>
<hr />
<p>相変わらず長い記事を、ここまで読んでいただいた方、ありがとうございます v_v<br />
これからも少しずつ、WEB制作者として精進していきたいと思います。</p>

<a href="http://twitter.com/?status=RT+%40%3A+works%3AWebbingStudio%28a-blog+cms%29+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fyarvr5f" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/11/works_webbingstudio0911.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>a-blog cmsではてなブックマークの新着を出すモジュール</title>
		<link>http://blog.webbingstudio.com/2009/11/ablogcms_twitter_hatenab.html</link>
		<comments>http://blog.webbingstudio.com/2009/11/ablogcms_twitter_hatenab.html#comments</comments>
		<pubDate>Mon, 09 Nov 2009 17:49:30 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Customize]]></category>
		<category><![CDATA[a-blog cms]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[おみやげ]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1180</guid>
		<description><![CDATA[
私の本サイトでは、トップページ下部にTwitterとはてなブックマークの新着を掲載していました。
a-blog cmsに移行する新サイトでも引き継ぐ予定です。
a-blog cmsはテーマファイル内にPHPスクリプトを [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2009/11/acmsmodule.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/11/acmsmodule-480x246.jpg" alt="acmsmodule" title="acmsmodule" width="480" height="246" class="alignnone size-large wp-image-1181" /></a></p>
<p>私の本サイトでは、トップページ下部に<a href="http://twitter.com/webbingstudio">Twitter</a>と<a href="http://b.hatena.ne.jp/webbingstudio/">はてなブックマーク</a>の新着を掲載していました。<br />
<a href="http://www.a-blogcms.jp/" class="blank">a-blog cms</a>に移行する新サイトでも引き継ぐ予定です。</p>
<p>a-blog cmsはテーマファイル内にPHPスクリプトを直接書くことはできませんが、外部のRSSを整形して表示できる「<a href="http://www.a-blogcms.jp/support/reference/build_in.html" class="blank">Feed_ExList</a>」モジュールがあります。<br />
これを使えばすぐ移行できる…と思ったのですが、うまく表示できません。</p>
<p><del datetime="2009-11-10T03:51:41+00:00">TwitterのRSSは本文が全てURLエンコードされているため、デコードされずそのまま出力されてしまいます。</del><br />
はてなブックマークはRSS1.0(rdf)形式なので、Feed_ExListモジュールのサポート外です。</p>
<blockquote><p>2009.11.10追記：<br />
開発元様に、[urldecode]という校正オプションを教えていただきました！<br />
Twitterに関しては、<strong>{description}[urldecode]</strong> と記述すればFeed_ExListモジュールが使用できます。<br />
<a href="http://www.a-blogcms.jp/support/reference/proofreading.html">リファレンスに追加されています</a>ので、こちらも参考にしてください。</p></blockquote>
<p>もしかしたら解決方法があるかもしれませんが、今回のところはビルトインモジュールを使うのを断念し、これまで使っていたPHPスクリプトをそのまま自作モジュールに変換する方法を取りました。</p>
<p>追記以降で配布しますので、とりあえず<del datetime="2009-11-10T03:51:41+00:00">Twitterや</del>はてブの新着を掲載したい方、モジュール作成について勉強したい方はご利用ください。</p>
<p><span id="more-1180"></span></p>
<h3>Getdataモジュールについて</h3>
<p>このセットは、下記の外部コンテンツをリストアップするモジュールを追加します。</p>
<ol>
<li>【Contents】　任意URLのファイル内容全て</li>
<li>【Twitter】　任意IDのTwitter新着</li>
<li>【HatenaB】　任意IDのはてなブックマーク新着（コメントを含む）</li>
</ol>
<p>「Getdata」モジュールは、こちらからダウンロードできます。<br />
<strong><a href="http://webbingstudio.com/souvenir/acms_module/Getdata.zip">http://webbingstudio.com/souvenir/acms_module/Getdata.zip</a></strong></p>
<p>モジュールの作成方法は、開発元のコンテンツを参考にしました。</p>
<ul>
<li><a href="http://www.a-blogcms.jp/support/tutorial/develop/acms_module.html" class="blank">a-blog cmsのモジュール | 拡張機能の開発 | a-blog cms</a></li>
<li><a href="http://kazumich.com/index.php?ID=4898" class="blank">a-blog cmsのモジュールの書き方 その1 － kazumich.log</a></li>
</ul>
<h3>使用方法</h3>
<p>解凍直後の状態では動作しません。<br />
フォルダを、<strong>php > ACMS > GET > Getdata</strong>　と開いていき、最下層に入っている 「Contents.php」「Twitter.php」「HatenaB.php」の必要な箇所を編集してください。</p>
<ol>
<li>Contents.php・・・読み込み先のURLを指定</li>
<li>Twitter.php・・・TwitterIDを書き換える（注意：二ヶ所あります）</li>
<li>HatenaB.php・・・はてなIDを書き換える</li>
</ol>
<p>編集したら「php」フォルダごと、a-blog cmsを設置したディレクトリに転送してください。</p>
<h3>テーマファイルへの記述</h3>
<p>下記のように記述するだけで動作します。<br />
Contentsは読み込み元がそのまま、Twitter・HatenaBはリンク付きのul要素で出力されます。</p>
<pre><code>&lt;!-- BEGIN_MODULE Getdata_Contents -->
&lt;!-- END_MODULE Getdata_Contents --></code></pre>
<pre><code>&lt;!-- BEGIN_MODULE Getdata_Twitter -->
&lt;!-- END_MODULE Getdata_Twitter --></code></pre>
<pre><code>&lt;!-- BEGIN_MODULE Getdata_HatenaB -->
&lt;!-- END_MODULE Getdata_HatenaB --></code></pre>
<h3>注意</h3>
<p>※下記の関数が有効になっているサーバーでなければ動作しません。<br />
Contents・・・file_get_contents関数<br />
Twitter / HatenaB・・・file_get_contents関数・SimpleXML関数</p>
<p>※Getdata_Contentsモジュールは、対象のHTMLファイルの内容全てを「<strong>そのまま</strong>」出力します。エンコード・サニタイズも一切行いません。対象URLの内容を確認のうえ、慎重にご利用ください。</p>
<p>※このモジュールは試作品です。今後のa-blog cmsのバージョンアップで、不要となる可能性があります。<br />
商用・非商用を問わず、自由にご利用ください。</p>
<hr />
<p>注意に書いてある通り、PHPのfile_get_contents関数は便利ですが、有効にする際は慎重に取り扱わなければいけません。<br />
もしも悪意ある第三者にPHPファイルを改ざんされてしまった場合、サーバー内の重要データを持っていかれてしまう可能性もあるからです。</p>
<p>ですが、a-blog cmsは一般に公開されているコンテンツにPHPスクリプトを記述せず、深い階層で一括管理を行うので、WordPress等のテーマに直接PHPを書けるCMSよりもやや学習コストがかかる分、安全と言えます。</p>
<p>開発元のブログや私のモジュールを見ればわかりますが、単に出力するだけならとても簡単に作れます。<br />
（テキストをランダムに出力するとか）<br />
皆さんも挑戦してみてください。</p>

<a href="http://twitter.com/?status=RT+%40%3A+a-blog+cms%E3%81%A7%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%AE%E6%96%B0%E7%9D%80%E3%82%92%E5%87%BA%E3%81%99%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fybjdomq" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/11/ablogcms_twitter_hatenab.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>エックスサーバーにSOY CMSをインストールする：1.2.6版</title>
		<link>http://blog.webbingstudio.com/2009/10/xserver_soycms126.html</link>
		<comments>http://blog.webbingstudio.com/2009/10/xserver_soycms126.html#comments</comments>
		<pubDate>Thu, 22 Oct 2009 06:26:04 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[SOYCMS]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1159</guid>
		<description><![CDATA[
「WebSite expert」26号でも巻頭特集が組まれ、
イメージキャラ「まめ蔵」も舌好調（夜はツンデレ属性に変化する）のSOY CMSですが、私が本サイトを置いているエックスサーバーは動作環境を満たしていませんで [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.webbingstudio.com/uploads/2009/10/soycms_xserver.jpg" alt="X SERVERのみなさま！SOY CMSがエックスサーバーでも使えるようになったソイ！" width="480" height="120" class="alignnone size-full wp-image-1160" /></p>
<p>「WebSite expert」26号でも巻頭特集が組まれ、<br />
イメージキャラ「<a href="http://twitter.com/SOY_CMS" class="blank">まめ蔵</a>」も舌好調（夜はツンデレ属性に変化する）の<a href="http://www.soycms.net/" class="blank">SOY CMS</a>ですが、私が本サイトを置いている<a href="http://www.xserver.ne.jp/" class="blank">エックスサーバー</a>は動作環境を満たしていませんでした。</p>
<p>会社に要望を出しても、個別対応は承っておりません、のつれない返事。<br />
それなら無理やり設置してやる！と<br />
「<a href="http://blog.webbingstudio.com/2009/03/%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%ABsoycms%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B.html" class="blank">エックスサーバーにSOY CMSをインストールする</a>」という検証記事を書いたのが数か月前。<br />
インストールまでは成功したのですが、管理画面の不具合が直らず断念していました。</p>
<p>そんなSOY CMSが、先月の1.2.6へのバージョンアップで、ついにエックスサーバーでも正常に動作するようになりました！<br />
インストーラーなし・SQLite版で基本的な動作を確認しています。<br />
開発の皆様、ありがとうございます。</p>
<p><span id="more-1159"></span><br />
設置手順は以前書いた記事と変わりませんが、不具合を回避する作業がひとつ増えます。<br />
SOY CMSフォーラムのスレッドを更新していますので、詳細はこちらをご参照ください。</p>
<p><a href="http://www.soycms.org/viewtopic.php?f=6&#038;t=144#p430" class="blank">エックスサーバー(X20)にインストールする方法について</a></p>
<p>また、正常に動くようになったとはいえ「動作環境を満たしていないサーバーに強引に設置している」という状況は変わりません。<br />
設置する場合は、使用予定の機能・プラグインをチェックしなおしてくださいね。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E3%82%A8%E3%83%83%E3%82%AF%E3%82%B9%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%ABSOY+CMS%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%EF%BC%9A1.2.6%E7%89%88+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fykagqgv" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/10/xserver_soycms126.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>個人利用フリーになったa-blog cmsは、現場にじわじわ効いてくる</title>
		<link>http://blog.webbingstudio.com/2009/10/ablogcms_free.html</link>
		<comments>http://blog.webbingstudio.com/2009/10/ablogcms_free.html#comments</comments>
		<pubDate>Sun, 11 Oct 2009 11:08:04 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[a-blog cms]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[これはいい]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1129</guid>
		<description><![CDATA[
個人の非商用に限り、a-blog cms は無料でご利用頂ける事になりました &#124; a-blog cms
これまで30日間限定の試用までしかできなかったa-blog cmsが、個人非商用であれば自由にダウンロード・利用で [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.a-blogcms.jp/news/openOneLicense.html"><img src="http://blog.webbingstudio.com/uploads/2009/10/ablogcms_one1.jpg" alt="ablogcms_one" title="ablogcms_one" width="480" height="350" class="alignnone size-full wp-image-1139" /></a></p>
<p><a href="http://www.a-blogcms.jp/news/openOneLicense.html" class="blank">個人の非商用に限り、a-blog cms は無料でご利用頂ける事になりました | a-blog cms</a></p>
<p>これまで30日間限定の試用までしかできなかったa-blog cmsが、個人非商用であれば自由にダウンロード・利用できるようになりました。<br />
評判がいいらしいけど、忙しくて30日じゃ検証しきれない…と思っていた方、とりあえず趣味で使ってみたいんですが、という方は是非お試しを。</p>
<p>ちなみに私は、30日間の試用期間ではほとんどいじれなくて結局ライセンス取っちゃいましたwちきしょうめwww</p>
<p>今回のアップルップルさんの英断を、私は金銭面とは違うところでとても期待しています。<br />
私が把握している範囲では、a-blog cmsというのは「<strong>じわじわ良さがわかってくる</strong>」CMSであるからです。</p>
<p><span id="more-1129"></span></p>
<p>a-blog cmsは「Web制作者のためのCMS」と銘打たれています。<br />
特にアピールされているテンプレート仕様や、投稿画面もカスタマイズできる点などを見ると、なるほどと思います。</p>
<p>ですが、スキルがあればなんでもありになりつつあるMovableTypeやWordPress、やたら構築方法がわかりやすいSOY CMSと比べると、「何がどういいのか」をなかなか一言で説明できない面があります。</p>
<p>その「じわじわくる良さ」の例をひとつ。</p>
<p>二人以上のチームを組んでお仕事をしている制作会社は多いと思います。<br />
大規模なCMS構築の場合、制作を始める段階でテンプレートの構成等をきちんと書類化して、擦り合わせをしてから始めるのですが、諸々の事情で、かなりの確率で途中変更が入ります。</p>
<p>そのひとつ、<br />
「特定のカテゴリーの記事を書いたときだけHTMLの構造を変えたい」<br />
という話になり、その構造を変える範囲が広い場合。</p>
<p>CMSがMovable Typeの場合で、ディレクターがコーダーにどう指示を出すかを考えてみました。</p>
<p><img src="http://blog.webbingstudio.com/uploads/2009/10/mt_shiji.jpg" alt="個別エントリーのテンプレートに条件分岐追加して、○○のカテゴリーのとき、構成が変わるようにして。ソースが長くなりそうだったらモジュール化して。できたら再構築かけて、画像とか、ちゃんとつながってるかチェックしてね。" width="480" height="369" class="alignnone size-full wp-image-1131" /></p>
<p>意味がわかんねえよという人すみません…<br />
MovableTypeは専門用語多いんで…＠＠；</p>
<p>これが、a-blog cmsだった場合、たぶんこうなります。</p>
<p><img src="http://blog.webbingstudio.com/uploads/2009/10/ablog_shiji.jpg" alt="「aaa.html」を元にして、同じ階層に構成の違う「bbb.html」を作って。独自タグはaaa.htmlに書いてあるの参考にしてね。putしたら教えてくれる？" width="480" height="340" class="alignnone size-full wp-image-1132" /></p>
<p>どこが違っているかわかるでしょうか。</p>
<p>まず「条件分岐」について全く触れていません。<br />
a-blog cmsには「<strong>ルール</strong>」という機能があり、特定の条件下で表示するテンプレートを、管理画面側でごっそり変えてしまえるのです。<br />
（もちろん、変わる箇所が少ない場合は他のCMSと同様のテンプレート内条件分岐が使えます）<br />
なので、コーダーにテンプレートさえアップしてもらえば、あとはディレクターが管理画面に入って<br />
「カテゴリーが○○のとき」「bbb.htmlをテンプレートに使用する」<br />
という設定を追加するだけなのです。</p>
<p>もう一点が<br />
「画像のリンク切れについて触れていない」のと<br />
「<strong>putして</strong>と指示している」ことです。</p>
<p>Dreamweaverでは、FTP等を使ってサーバーにファイルをアップすることを「PUT」と呼びます（コマンドラインと同じですね）。</p>
<p>「PUT」は、<a href="http://blog.webbingstudio.com/2009/08/soycms_example.html">SOY CMSのカスタマイズ解説</a>のときにも触れましたが、サーバーとローカルの構造を同じに保ったままファイルをアップします。<br />
なので、実際のサイトルートとは違う箇所にテンプレートをアップしなければならない一般のCMSでは「PUT」を使うことができません。<br />
テンプレートができたらドラッグか他のFTPソフトでアップして画像やリンクが切れてないかチェック…となるわけです。</p>
<p>ですが、a-blog cmsはいろいろなところで紹介されている通り、画像やJavaScriptも含め、全てのサイト構造を崩さないままテンプレート化できます。<br />
なので、Dreamweaverのサイト設定時に<br />
「<strong>サイトのルート＝a-blog cmsのテンプレートを置くディレクトリ</strong>」<br />
とすれば、あとは画像のチェックもほとんど必要なく、更新しては保存→PUT（自動化してもいいかもしれないです）でサクサク進められるのです。</p>
<p>私のようにひとりで作業するのであれば、自分の中でワークフローが確定していればいい訳ですが、多人数の場合は意思の疎通が大変です。<br />
それを大幅に軽減できる可能性があるというのが、a-blog cmsのすごいところであり、なかなか他の人に説明しようとしたとき、わかってもらえないところです。</p>
<p>とにかく皆さん、なんか作ってみてください。<br />
放置サイトがあるなら、それを動的化してみるだけでもいいと思います。</p>
<p>「<a href="http://junnama.alfasado.net/online/2009/07/mt_11.html">もう、MTでいいじゃん</a>」というjunnamaさんの名言があります。<br />
まあそれも確かに正論ですが、<br />
「これでいいのか？」<br />
「もっと良い作業の進め方があるのでは？」<br />
「この案件には別のCMSの方が良くね？」<br />
と考える機会を持つことが、この流れの速い業界では必要なことと思います。<br />
いいじゃんなどと言っていいのは、junnamaさんのようにそのCMSにどっぷり浸かる覚悟がある人だけです。</p>
<hr />
<p><img src="http://blog.webbingstudio.com/uploads/2009/10/ablog_manual.jpg" alt="ablog_manual" title="ablog_manual" width="480" height="268" class="alignnone size-full wp-image-1133" /></p>
<p>a-blog cmsは、「用語の統一」が徹底している点も評価できると思います。<br />
<a href="http://www.a-blogcms.jp/support/manual/" class="blank">マニュアルインデックス</a>を見ると、ほとんどの主要な独自タグにタグ名と口語名が併記されています。</p>
<p>CMSの細かいところについて、人にメールや口頭で説明するのはなかなか難しいものです。<br />
こういった地味でも重要なポイントが、今回のoneライセンス自由化でもっと評価されてほしいと思います。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E5%80%8B%E4%BA%BA%E5%88%A9%E7%94%A8%E3%83%95%E3%83%AA%E3%83%BC%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9Fa-blog+cms%E3%81%AF%E3%80%81%E7%8F%BE%E5%A0%B4%E3%81%AB%E3%81%98%E3%82%8F%E3%81%98%E3%82%8F%E5%8A%B9%E3%81%84%E3%81%A6%E3%81%8F%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fylmqddg" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/10/ablogcms_free.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
