CMS

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

CKEditorのスマイリー画像を追加する方法。

2011.03.20 / Notes

ブログやCMSなどでWYSIWYGエディタはよく利用されていますが、オープンソースのCMSであるdrupalでも、モジュールとしてCKEditorを利用することができます。drupalにはいくつかのWYSIWYGエディタをモジュールとして利用できますが、自分的にはCKEditorが一番でしっくりきます。

 

CKEditorには機能の一部として、スマイリーアイコン画像を本文中に使うことができますが、標準のアイコンは種類が少なく、絵柄も日本向けではないので、あまり実用性はないように思います。

 

このスマイリーアイコンをカスタムで追加するには、下記のようにアイコン画像ファイルを指定のフォルダに追加し、ソースコードに画像のファイル名を記述することで、アイコン画像を追加することができます。

 

追加するアイコンの画像ファイルは、下記のフォルダに格納します。
ckeditor/plugins/smiley/images

 

追加した画像ファイルをCKEditorに登録するために、次の2カ所に記述をします。いずれも配列として続けて追加します。
ckeditor/_source/plugins/smiley/plugin.js

ckeditor/ckeditor.js

以上でCKEditorのスマイリーアイコンに、カスタムの画像を追加することができます。

 

また必須ではないですが、画像のalt属性、title属性として利用するための、説明文も追加することもできます。
ckeditor/_source/plugins/smiley/plugin.js

ckeditor/ckeditor.js

先に追加した画像ファイル名の配列と同じ順番で、説明文を追加します。

 

CKEditor

Drupal 7のフィールドでユーザ&ノード参照について。

2011.01.29 / Notes

Drupal 7からCCKモジュールが統合されて、Fieldモジュールとして利用できるようになりました。
ですがDrupal 6+CCKで使えたユーザ参照、ノード参照がサポートされなくなり心配していましたが、他の関連モジュールを探したところ「Reference」というモジュールで実現することができるようです。
比較的に新しいプロジェクトでまだ開発バージョンのようですが、Viewsでのリレーションシップにも対応しています。
既存サイトのアップグレードの際には、重要になってくるかもしれません。