Drupal導入メモランダム(さくらインターネット スタンダード)
CMSを運営する機会があったので、勉強することになりました。
CMSがいろいろある中で迷ったのですが、「Drupal(ドルーパル)」を選択。
選択理由は、
- フリーである
- 多くのサイトで導入されている
- 将来性が高そう
といったところ。機能的に他のCMSと比べてどの程度違いがあるかまではまだわかっていませんが、多数のモジュールが公開されてることも考えると、普通に使う分には十分な機能がありそうです。
速度とか使いやすさとか、やたらめったらと使い倒すわけでもなければ気にならないし。
Drupalを設置する
英語のドキュメントが充実しているので読める方はそちらのほうがいいですが、私のように苦手な人は、下のリンクを参考にするとよいでしょう。
さくらインターネット スタンダードでの場合、少し癖があって、そのまま設置するとうまくいきません。
Drupal.0829.info さくらインターネットのとおりにやれば設置できます。
上記のリンクには書かれていないこと(主にさくらの仕様に関すること)を補足しておくと、
- さくらの場合DBサーバは別なので、インストール時にホスト名を入力。DBサーバはさくらのサーバ設定から見れます。
- cronの設定にも制限があります。DB同様サーバ設定からcronを設定しましょう。
- クリーンURLを使用する場合、.htaccessを少し書き換える必要があり。具体的には、
# Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
を
# Rewrite current-style URLs of the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
にする。
テーマの導入
テーマ(Webのデザインを設定するスキンのようなもの)はDrupal.org Themesからいろいろとダウンロードできます。気に入ったものをthemasディレクトリに保存しましょう。
自分でいじる場合は、各テーマを参考にしてPHPとCSSのファイルを書き換えるとよいです。
デフォルトでは、
- page.tpl.php
- ページ全体のテンプレート
- block.tpl.php
- サイドバーのブロックテンプレート
- box.tpl.php
- メインのコンテナのテンプレート
- comment.tpl.php
- コメントのテンプレート
- node.tpl.php
- ノードのテンプレート
で設定できます。また、○○.tpl.phpというファイルを作って、templete.php内で$variables['template_file'] = '○○';とでもすれば、テンプレートを書き換えられるっぽいです。
あと、特定のノードタイプに対して書き換える場合はnode-○○.tpl.phpを使うとよいみたい。
テンプレート周りはまだ不確かなので間違ってたらすみません。とりあえず、page.tplとcssだけでもいじっておけば大体大丈夫です。
にいろいろとTipsが書かれています。
モジュールの導入
5.xでの場合です。
デフォルトでは最低限のモジュールしか入っていないので、インストールしましょう。とりあえず私が入れたのは、
- Views
- ノードを抽出して表示できる
- Spam
- スパム対策
- PEAR Wiki Filter
- いくつかのWiki記法が使えるようになる。別途PEARのパッケージをダウンロードする必要あり
- Pathauto
- PathモジュールでのURLエイリアス設定を自動化
- jTooltips
- ツールチップの見栄えがよくなる。Javascript使用
その他のモジュールに関しては、
あたりをどうぞ。でもモジュールは本家を見たほうが早いかもしれない。
サイト構築
コンテンツの作成でページを作成。階層関係があるなら、ブックがオススメ。ページとかストーリーでも似たようなものです。
メニューも追加すれば普通の見た目のサイトは大体構築できるはず。
Tips
自分で困ったときの改善点のメモ
3階層以下のサイトメニューを表示
テンプレートのなかに$secondary_linksなるものがあって、メインのメニューで2階層目にあたるもののリストが格納されてます。
デフォルトでは現在のページがメニュー階層に当てはまるときリスト表示してくれるのですが、2階層までしか表示してくれません。
3階層目以下にもメニューがある場合は、テンプレートに
<?php $msn = variable_get('menu_primary_menu', 0); $tertiary_links = menu_primary_links(3, $msn); if (!empty($tertiary_links)){ print '<div id="tertiary" class="clear-block">'; print theme('menu_links', $tertiary_links); print '</div>'; } ?>
みたいな感じで追加すればOK。数字を変えれば4階層以下も同様。
おわりに
まだ勉強中なので間違ってるところがあったらすみません。日本ではまだあまり普及していないので、まともにやろうとすると英語を勉強しなければなりますまい。