Pathauto
概要
Drupalはデフォルトで"node/番号"というURLアドレスが生成されますが、本体のコアモジュールに含まれているpathモジュールを利用すれば、任意のURLアドレスを設定することができます。
例えば"node/105"というコンテンツが作成されたとします。
これを一般的なホームページっぽく"なんとか.html"にしたいとした場合、コンテンツを作成する際に"URLパスの設定"という項目1を目にすると思いますが、ここに"nantoka.html"と入力して保存すれば"http://sample.jp/nantoka.html"でアクセスできるようになります。
サイトのURLアドレスに統一性を持たせたい場合には、コンテンツを作成する度に、この項目を入力しなければならなくなり、ちょっと面倒になってきますよね?
そこで、Pathautoモジュールの登場となるわけです。
Pathautoモジュールは、設定したルール(パターン)でコンテンツのURLパスを自動的に作成して、URLパスのテーブルに追記するモジュールです。
blogモジュールを複数人で利用している場合、"blog/amayadori/2007/11/15"のようなURLパスが付けられると判りやすいですよね。pathautoモジュールに"blog/[author-name]/[yyyy]/[mm]/[dd]"に設定することでコンテンツの保存時に自動的に作成してくれるようになります。
PathautoモジュールそのものはpathモジュールのURLテーブルに書き込んでいるだけですので実際に運用するためにはpathモジュールが必要となります2。
また、pathauto-5.x-2.0より、tokenモジュールに依存して動作する仕様になりましたので、pathモジュール同様にtokenモジュールも別途必要になりました3。
- 1. 前述のpathモジュールを有効に設定している場合
- 2. 必須モジュールとなっているので、pathモジュールが有効になっていないとPathautoモジュールも有効にすることが出来ません。
- 3. tokenモジュールも必須モジュールとなっているので入手してインストールする必要があります。Token | drupal.org
設定
- 公開先に登録されている「5.x-2.0」の「Download」から、「pathauto-5.x-2.0.tar.gz」がダウンロードできます。※2007/11/15現在
- ダウンロードしたファイルを解凍します。
- 解凍して取り出された「pathauto」フォルダ以下をDrupalの「sites/all/modules」にアップロードします。
- モジュール管理メニュー(管理→サイトの構築→モジュール)にて「その他」グループに表示されている「pathauto」にチェックを入れて「設定の保存」で有効にします。
pathauto-5.x-2.0より、tokenモジュールに依存する仕様になりました。それに伴い、別名URLのパターンを設定するための書式に一部変更が生じしています。
**Upgrading from previous versions:
If you are upgrading from Pathauto 5.x-1.x to 5.x-2.x (or 6.x-2.x) then you will
probably need to change your patterns.For content patterns:
[user] is now [author-name]
[cat] is now [term]
とあるように、上記の2つは書式が変更になっています。blogなどの別名URLでは使用している可能性はかなり高いと思いますので注意してください。
また、pathautoの設定によっては、[author-name]ではなく、[author-name-raw]というtokenモジュールから得られる値を使うように設定しないとエラーになる場合があります。
- 管理(Administer) -> サイト設定(Site Configuration) -> Pathauto 画面でpathautoモジュールの設定をします。
- 設定項目のグループはモジュールのインストールの状態によって変化します。グループ内で設定出来る書式は入力欄群の後に表示されます。ただし、日本語化ファイルをインポートしても、書式によってはtokenが出力するものをそのままリダイレクトしているものもあるので、Pathautoモジュールの日本語化だけでは日本語表示にならない部分があります。
- 全体の設定
Pathautoモジュール全体の動作を設定します。
- 経過報告
コンテンツの作成・編集完了時にPathautoモジュールが行った別名URLの作成状況を表示します。
- セパレータ
次の項目グループで句読点などの置換動作を設定しますが、そこで使われるセパレータを設定します。
- 文字列の変換
tokenモジュールから得られる値をそのまま使うか、小文字に変換するかを設定します。
ここで、"小文字に変換する"に設定すると、別名URLの置換パターンの設定の際に"-raw"のついている書式を使わないとエラーが返ってくるようです1。 - エイリアスの最大文字数
pathautoが作成するURLアドレスの文字数を設定します。
Drupalが扱う別名URLの長さの制限が128となっているようで、この長さから別名URLに追加されるアドレス(例: RSS配信のアドレスは別名URLの最後に"/feed"が付加される)の分を差し引いた文字数分を設定しなければなりません。
Pathautoモジュールではその分を余裕を持って考慮した値をデフォルトとしています。どうしても変更しなければならない理由がない限りはデフォルトのままにしておくのが推奨されています。 - コンポーネントの最大文字数
pathautoの置換パターン設定の欄に入力できる文字数です。こちらも前項と同じ理由で100がデフォルトになっています。
デフォルトのまま運用することが推奨されています。 - バルクアップデートに含めるオブジェクトの最大数
pathautoで既存の別名URLをまとめて変更する場合において、書式のユニット数の最大の数を設定します。
この数値に比例してサーバーに負荷がかかります。バルクアップデートを行っている最中に"タイムアウト"エラーや、"ホワイトスクリーン"になってしまう場合はこの値を減らすことで対処できる場合があります。 - アップデート動作
別名URLを持っている既存のコンテンツに対するpathautoの動作を設定します。
- 別名URLを作成する前に翻訳する
別名URLを作成する前にURLに使用できる文字列に翻訳を行う機能だと思われます。
コンテンツのタイトルなどからURLの文字列を作成したりする場合などに便利な機能のようです。モジュールのフォルダ内に"i18n-ascii.txt"というファイルが存在する場合2に選択できるようになります。 - ASCII-96以降の文字列および数字に置き換える
96番目以降のキャラクタ文字に置き換える機能だと思われます3
- 取り除く文字列
コンテンツのタイトルなどから別名URLを作成する場合に、ここで列記した文字列を削除した上で、別名URLを作成します。
取り除きたい文字列をコンマ(,)で区切って列記します。句読点等は項目グループ"句読点に関する設定"で設定してください。ここに列記しないでください。WYSIWYGエディターなどを使って記述しないように注意してください。
- 経過報告
コンテンツの作成・編集完了時にPathautoモジュールが行った別名URLの作成状況を表示します。
- 句読点に関する設定
パターンに設定した書式が展開されて得られた文字列のなかの句読点に関する動作を設定します。
句読点それぞれに動作を設定出来ます。
- 削除
その句読点は取り除きます。
- セパレータに置き換える
前項目グループの"セパレータ"項目で設定したキャラクタ文字に置き換えます。
- なにもしない(置き換えをしない)
置き換え動作はしません。その句読点はそのまま利用されます。
- 削除
その句読点は取り除きます。
- 全体の設定
Pathautoモジュール全体の動作を設定します。
- 設定が完了したら"設定の保存"で保存します。
- コンテンツの作成・編集画面にある"URLパスの設定"で個別に設定出来ます。
pathautoでの設定に沿ったグループ毎に設定済みの別名URLをまとめて削除することが出来ます。
日本語化
日本語化するためにはpoファイルのインポートが必要です。
- この下の項目にある"日本語化ファイル"内のリンク先に日本語化ファイルを登録してあります。
- Drupal日本語プロジェクト | Drupalを日本語で使いやすく!で公開されている日本語プロフィール+jBoxモジュールを利用している場合はモジュールをアップロードする前にモジュールのフォルダ「pathauto」内の「po」フォルダ内に、ダウンロードした日本語化ファイルを解凍して出てくる「po」フォルダ内の「ja.po」をコピーしてからアップロードしてください。モジュールを有効にした際に自動的にpoファイルがインポートされます。
※最新のjboxモジュールに同梱されている「Update Locale」を有効にしていた場合、サーバーより自動取得できます(予定)。
- 上記以外の方は、ローカライゼーションメニュー(管理→サイトの設定→ローカライゼーション)のインポートから、「ja-pathauto.po」ファイルをインポートしてください。