CMS Made Simpleを試す2

引き続きCMS Made Simple(CMSMS)を試していきます。
今回はフレンドリーURLとニュースのテーマや階層構造などについてちょっと書いていきます。

CMSMSでは特に管理画面から、URLの構造を変更するとかはできないようです。
なので、フレンドリーURLの設定をするにはconfig.phpを触らねばだめなようですねー。

フレンドリーURLの設定

http://wiki.cmsmadesimple.org/index.php/FAQ/Installation/Pretty_URLs#Pretty_URL.27s
に英語で書いてありますので、英語読める人はそちらをご覧下さい。

まずはconfig.phpの139行目

に変更。mod_rewrite以外をお使いの方はお使いのモジュール名を設定してあげれば良さそうです。

そして、.htaccessを作成。
wikiに乗ってた文書をコピペでとりあえず、動作しました。
[plain]
Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 301 Redirect all requests that don’t contain a dot or trailing slash to
# include a trailing slash
# except for form POSTS
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_METHOD} !POST$
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
[/plain]

これだけで、URLがRewriteされるようです。

ページのURL

デフォルトだとページは
[plain]
http://hoge.hoge/エイリアス
[/plain]
となります。
また、親ページがある場合
[plain]
http://hoge.hoge/親のエイリアス/エイリアス
[/plain]
エイリアスというのはWordPressで言うところのスラッグです。半角英数、一部の記号、数字しか使えません。
タイトルが英語ならば自動生成してくれるのですが、日本語だと手動で入力する必要があるようです。しっかりエラーメッセージも出力されるのが素敵。

ニュースのURL

また、ニュースは
[plain]
http://hoge.hoge/news/[article_id]/[content_id]/エイリアス
[/plain]
となっています。

[article_id]はニュース記事に割り当てられる固有の番号です。
[content_id]はページ記事の番号です。
パンくずなどを見てもらうと解るかと思いますが、ニュースはページの下層コンテンツという位置づけのようです。
ここに入る数字は、エイリアスが”news”のページのidが入ります。もしそれが存在しない場合、エイリアスが”home”の数字が入ります。

また、
[plain]
http://hoge.hoge/news/[article_id]
[/plain]
でもアクセスできるようです。その場合、[content_id]はhomeのものが指定されているときと同じ動作になります。

また、ニュースページのテンプレートは[content_id]で指定されているページのものが適用されます。[content_id]に他のページのを入れると、そのページの子ページとして表示されます。
これをうまいこと利用して同じコンテンツを違うテンプレートで表示なんてこともできそうです。どこで使うのかどうかは知りませんが。

ちなみにnewsに親が存在している場合でもnewsページそのもののURLは親ページのエイリアスを吐きますが、ニュースページのエイリアスは変更しません。
基本的にニュースページはトップレベルに置くことがきれいなURLを作るには望ましいようです。

また、カテゴリー一覧などのページにはフレンドリーURLが提供されていないようです。
何か追加モジュールで解決できるんですかね。今後の発展に期待したいところですね。