2011.5

QuicKeysでアプリケーションの表示&非表示アクションを作成。

2011.05.26 / Notes

QuicKeysは、Mac上でのいくつかの処理をまとめ一つのアクションに登録して、作業を自動化することができるユーティリティです。
またMacでの状態をある程度チェックできるので、状況に応じて処理を振り分け、簡単なシーケンスのアクションも作成できます。

 

次の例は、Safariのアクティブ、非アクティブの状態をチェックして、表示、または非表示にするアクションです。
QuicKeys
上記のような小さなアクションでも、自分に合わせてたくさん作っておくと、Macの操作性はぐっと良くなるのでおすすめです。

CakePHPで「home.ctp」のレイアウトを変更。

2011.05.25 / Notes

CakePHPでトップページの表示を変更するには「app/views/pages/home.ctp」を書き換えることで可能です。
この場合レイアウトは、自動的に「app/views/layouts/default.ctp」を利用します。

 

通常レイアウトの変更には、コントローラーのアクションに「$this->layout = ‘default’;」といった感じで、任意に変更ができるのですが、もともとコントローラーを作成しないトップページの場合では、簡単にレイアウトの変更ができません。

 

そのための解決方法として、トップページの表示を担うコントローラーをCakePHPコアのライブラリからコピーして、一部修正することにします。
はじめに、コアに含まれるライブラリ「cake/libs/controller/pages_controller.php」を、「app/controllers」にコピーします。

 

「pages_controller.php」内のdisplayアクションは次のようになっています。(バージョン1.3.8)

このdisplayアクションに、レイアウトを指定する記述を追加することで、トップページ用のレイアウトを変更できます。

上記の例では、ページのパスが「home(トップページ)」の場合に、「home」レイアウトを利用するようにしています。
後は「app/views/layouts」フォルダに、テンプレート「home.ctp」を作成すればレイアウトの変更が可能になります。

DrupalとWordPressについて。

2011.05.24 / Notes

現在人気の高い2つのCMS、DrupalとWordpressですが、同じくCMSという括りではあるものの、実際には両者でかなり性格の異なっているように思います。
大きく分けると、サイトの構築、更新作業において、Drupalは複雑なサイト、Wordpressはシンプルなサイトに向いているようです。

 

どちらのCMSも長く利用していますが、それぞれに得意なところ、不得意なところがあるので、構築するサイトの構成によって使い分けるようにしています。
これまで2つのCMSを自分が使ってきた中で、それぞれ次のような特徴があると思います。

 

 

DrupalDrupalで最も優れているところは、コンテンツの柔軟性にあります。
通常のブログタイプのCMSでは、一つ記事にタイトル、本文のみの構成ですが、Drupalでは様々なタイプの追加フィールドを任意で設けることができます。なので、例えば不動産サイトのような複雑な情報サイトでも、比較的容易に構築することが可能です。

 

もう一つ大きな特長として、ユーザー権限の管理があります。
複数の階層によるユーザーグループの権限を作成でき、ユーザー毎に、きめ細かくサイト内ページの閲覧権限などを設定できます。会員制サイトなどの構築には威力を発揮します。

 

逆にマイナスと感じるところは、やはり学習の難しさにあると思います。
初めてインストールした直後では最小構成の機能しか使えない状態なので、ブログとして利用する場合でも、画像の挿入さえままならない状況です。
いくつかのモジュールを組み合わせれば、基本的なブログとして利用できるようになりますが、初めて利用した際には、かなりハードルが高いように思います。
さらにサイト構築となると、テーマ作成も必要になりますが、これがまた簡単ではありません。
Drupalのルールに基づいてテンプレートファイルなどを作成していきますが、理解するにはそれなりの時間がかかってしまいます。
ただ一度覚えてしまうと、とても理にかなったルールなので、開発も楽しく?なります。

 

 

WordpressWordPressはブログタイプのCMSで、固定ページ機能を組み合わせることで、大抵のWebサイトの構築には十分な能力を持っています。

 

またブログをベースにしていることもあり、シンプルな管理画面に加え標準でのWYSWYSエディタが搭載されていて、とても親しみやすい印象を受けます。
テーマを含むサイトの開発においても、HTMLの知識と、Wordpressの出力を担うテンプレートタグをおおまかに理解していれば、独自のサイト構築も難しくはありません。

 

WordPressにとってもマイナス部分は、これは良いところでもありますが、あくまでブログベースのサイトしか作れないことです。
基本的にタイトル、本文の構成なので、イレギュラーなコンテンツの作成ができません。
カスタムフィールドを使う方法もありますが、更新作業の際にパソコンに詳しい人だったら問題ありませんが、そうでない人にとっては、かなりストレスが溜まるように思います。

 

 

2つのCMSを比較すると、自分の中では上記のような特徴が挙げられますが、あくまで性格の異なるもととしてとらえています。
例えるなら、自動車とバイクのような違いがあるように思います。

 

サイトの構築では、いろいろなケースがあるので、どのように構築するかは毎回悩みます。
ただ一つのCMSのみで構築を考えるより、CMS利用の有無も含めて、複数のCMSを使い分けていくことがベストのようです。ケースによってはJoomla!やMoodleが向いている場合もあります。
とりわけ、DrupalとWordpressは開発も盛んで将来性が高いので、時間をかけて学習するだけの価値はあるように思います。

Drupal 7でユーザープロフィールの項目をノード内に出力。

2011.05.23 / Labs

Drupal 7から標準で実装されたユーザープロフィールの項目を、ノードの投稿者情報に関連づけて出力する方法です。

 

一般的にユーザーアカウントの名前には英数字のみで構成されるので、それとは別に日本語での名前を、ユーザープロフィールに「field_name」として追加しています。
Drupal 7 User Profile
ユーザープロフィールを出力する一番簡単な方法は、ビューを使うことですが、今回はテーマに組み込む方法で出力を行います。

 

テーマに変更を加えるのは次の2つです。

  1. 「template.php」にpreprocess関数を追加
  2. 「node.tpl.php」にユーザープロフィール変数の出力コードを追加

 

テーマフォルダの中に含まれている「template.php」ファイルに、次のようにpreprocess関数を追加します。

関数名の「THEMENAME」の部分は、実際のテーマ名に置き換えます。
ここでは投稿者の「uid」からユーザープロフィール「field_name」を参照して、「node.tpl.php」に渡す変数の配列に値を追加しています。

 

次に「node.tpl.php」にて、上記で渡された変数を出力します。

「node.tpl.php」ファイルを書き換え後は、「パフォーマンス」でキャッシュのクリアをしないと、うまく反映していないかもしれません。

Drupal 7のスクラッチテーマ作成。

2011.05.21 / Labs

Drupal 7正式版が登場して5ヶ月あまり経ちますが、そろそろ主要モジュールも整ってきたので、Drupal 6からDrupal 7へ移行を進めています。
Drupal 7でサイトを構築するにあたり重要となるテーマ作成ですが、基本的な構成のみをまとめたスクラッチテーマを作成してみました。
Drupal 7のスクラッチテーマ

 

drupal 7ではテーマを継承してサブテーマを作ることができるので、上記の基本構成以外はサブテーマにて装飾を加えていくことで、効率的なサイト構築が可能です。

 

テーマ制作の流れは、おおむねDrupal 6の場合と変わっていないように感じました。
ただしテンプレートファイル内で利用するメソッド、パラメータには変更があったので、Drupal 6のテーマをDrupal 7用に書き換えるのは、少し大変かもしれません。

 

またDrupalオフィシャルサイトでは、テーマ作成のためドキュメントが充実しているので、とても参考になりました。
Theming Drupal 6 and 7 | drupal.org