| 取扱説明書 | 吉見直人(管理人) | お便り | Nucleus CMS Japan |

2009年02月26日

NP_CustomURL導入記録

[ 投稿者 : fratdrive ブログ : [ f ]雑記系 カテゴリー : Nucleus ]

詳しいドキュメントはあとで書きますが、各記事URLが変更になってます。feedのURLも変更になっています。

また、これまではfratdrive.netのトップページに表示される全ブログをまとめたfeedのみでしたが、各ブログ単位のfeedもあらたに作りました。

以下、2009-03-13 10:00追記。★印は、個人的につけたマーク。

NP_CustomURL導入にあたって参照したのは、[ pluginscustomurl [Nucleus CMS Japan Wiki] ]と、プラグインをインストール後に管理画面から読めるヘルプページ。NP_CustomURLのバージョンは0.3.7。

index.phpはこうした。
<?php
$CONF = array();
$CONF['Self'] = '';

include('./config.php');

selector();
?>
インストール後、
http://fratdrive.net/ブログ名/カテゴリー名/
http://fratdrive.net/ブログ名/アイテムURL
にアクセスできない。ん。
複数blogの設置に必要な *.phpファイルが不要になります。
ってことなんでルート以外のindex.phpを削除してみたら表示できた。そういうことか。

あ。トップページへのリンクが
http://fratdrive.net/fratnet
になってる(fratnetはトップブログの短縮名。トップブログは各アイテムをまとめて表示させるだけ)。
blogsetting(url)をsitevar(url)に。
つまり
<a href="<%sitevar(url)%>"><%blogsetting(name)%></a>

となる。
(グローバル設定で「サイト名」は「ふらっとどらいぶネット」、トップブログ設定でBlogの名前は「ふらっとどらいぶネット[メインページ]」としてある。ページタイトルやバナー表記の関係上。このへん、ちょっとややこしい)

テンプレートを修正。カテゴリーへのリンクは
<a href="<%categorylink%>/blog/<%blogsetting(id)%>"><%category%></a>
から
<a href="<%categorylink%>"><%category%></a>
に。

カテゴリー選択後の記事URLは、
/ブログ名/item/アイテム番号/catid/カテ番号
から、
/ブログ名/category_カテ番号/item_アイテム番号.html
になった。(デフォルト設定にて)

以前は
/ブログ名/category/カテ番号/blog/ブログ番号
でカテゴリーページを開けたが、
いまはこれだとブログトップページに。
また、
/ブログ名/item/アイテム番号/catid/カテ番号
だとカテゴリーページに。
つまり、カテゴリー指定のURLが変わってしまった。うーん。

それから、カテゴリー選択後のアイテムページは
/ブログ名/category_カテ番号/item_アイテム番号.html
となり、カテゴリー未選択のアイテムページ
/ブログ名/item_アイテム番号.html
となる。この、同じアイテムページでありながら複数URLが存在する問題は以前のFancyURLと変わっていないのだけど、なんとかしたい。URLにカテゴリー名を含めることに。
<%categorylink%><%CustomURL(path)%>
とする。テンプレートの
<%itemlink%>
をこれに。

★「コメントがない場合」「コメントが多すぎる場合」はなぜかエラーが出るので、%itemlink%を引き続き使うことにする。

★ブログへのリンク
<a href="<%blogsetting(url)%><%blogsetting(id)%>"><%blogsetting(name)%></a>
だけど、
/ブログ名/blog/ブログ番号
にアクセスしても表示されるのは
/ブログ名/
だから、これをなんとかしたい。
でも、
<a href="<%blogsetting(url)%>"><%blogsetting(name)%></a>
だと、
/ブログ/blog/
となってしまい無効。とりあえずこのままで。

カテゴリーへのリンクは、
<a href="<%categorylink%>/blog/<%blogsetting(id)%>"><%category%></a>
から
<a href="<%categorylink%>"><%category%></a>
に。

なお、カテゴリー名やアイテム名(…/item_アイテム番号.htmlの部分)は好きなように変えられるけど、変更後は旧アドレスにアクセスできないので要注意。「category_カテ番号」というのは風情がないし、そもそもわかりにくいので、カテゴリー内容にあわせて変更。★「about」というカテゴリー名が使えないのは、なんでだろう?

RSS/ATOMの記述も変更する。
これまで、全ブログをまとめたfeedのみを配信。デフォルトのxml-rss2.phpはiTunes独自タグを追加したので、独自タグなしのシンプル版はxml-rss2_ping.phpとして、2つのRSSにしていた。

まずテンプレートを修正。上記同様、URLにカテゴリー名を含めるようにする。修正箇所については[ Web 酒 肴 - [Nucleus]ブログごとのRSS(ATOM)を出力 ※CustomURL使用環境 ]を参考に。

オートディスカバリーの記述も変更。

トップブログ。
<!-- link RSS 2.0 as alternate version -->
<link rel="alternate" type="application/rss+xml" title="RSS" href="<%CustomURL%>rss2.xml" />
<!-- ATOM -->
<link rel="alternate" type="application/atom+xml" title="Atom" href="<%CustomURL%>atom.xml" />
だと、出力htmlはこうなっちゃう★。
<!-- link RSS 2.0 as alternate version -->
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss2.xml" />
<!-- ATOM -->
<link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />
なので、こうする。
<!-- link RSS 2.0 as alternate version -->
<link rel="alternate" type="application/rss+xml" title="RSS" href="<%sitevar(url)%>rss2.xml" />
<!-- ATOM -->
<link rel="alternate" type="application/atom+xml" title="Atom" href="<%sitevar(url)%>atom.xml" />
問題は各ブログごとの個別feed。
<%blogsetting(url)%>rss2.xml
とか
<%blogsetting(url)%>atom.xml
にして、
/ブログ名/rss2.xml

/ブログ名/atom.xml
を出力しても、全ブログのfeedになってしまう。
それは同じスキンを参照しているからだ。
NP_CustomURL.phpを修正することにする。

各ブログ用にeachrss2.xml,eachatom.xmlを追加。それぞれの参照スキンをfeeds/eachrss20ping、feeds/eachatomとして、スキンを個別ブログ用に変える。
<%blog(feeds/rss20ping,10)%>
これでテストする…駄目。

結局、rss2.xml、atom.xmlは各ブログ用にし、トップ用feedは従来通りphpにする。NP_CustomURL.phpの修正は、
rss2.xmlとatom.xmlの参照スキンを変更するにとどめた。なんでだろう。拡張子は.xmlのままにしたんだけど。★

で、その通りに各スキンのオートディスカバリー修正。各ブログでは、
<%CustomURL%>rss2.xml
もちゃんと
/ブログ名/rss2.xml
となる。
…と思ったら、個別アイテムページでトップと同じ現象発生。結局、
<%blogsetting(url)%>rss2.xml
にしました。

サイドバーのリンクもちゃんとします。個別アイテムページにも表示するようにします。

トラックバック用URL出力も修正
<%CustomURL(trackback,ext)%>
にして、
/ブログ名/customurl.trackback
と出力。

ちなみに、他ブログ(MT)からトラバ打ってみると、ログメッセージには
「http://fratdrive.net/about/customurl.trackback」へのトラックバックは失敗しました: Sorry, trackback ping is not accepted.
と出るのだけど、「ブロックされたトラックバック」には表示され、ブロックを解除すると表示される。

ルートにあったtrackback.phpは「NP_Trackback」バージョン1.23bj7時代のものですでに過去のもの?このトラックバック受信専用ファイルは削除。

メンバー詳細ページはこれまでトップ用スキンだけで足りてたけど、
/ブログ/member/メンバー名.html
となってしまうので個別ブログ用に作ることにする。

メンバー詳細ページで使っていたNP_MemberItemsは全ブログが出てしまうので事情によりやめました。<%membermailform%>もやめました。届かないし、動作がわからないし。使わないし。

個別ブログ用スキンにエラーページも足す。

あと、NP_CustomURLのアイテム名を日付表記にしようかとも思ったのですが。アイテムのURIの接頭語をitemから<%year%><%month%><%day%>にしてみると、1本目投稿は20090228.htmlでいいのですが、2本目が20090228_1368.htmlになってしまうので戻す。★

以上、2009-02-28 16:55作業終了。

⇒この記事をふくむカテゴリー [ Nucleus ] もどうぞ。
at 19:02:00 | この記事のURL |


トラックバック

このアイテムのトラックバックURL:
http://fratdrive.net/about/customurl.trackback

このエントリにトラックバックはありません
もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。

コメント

コメントはありません

コメント記入



プレビュー

ブログ内新着記事

コメントの設定を変更しました - [ f ]雑記系
画像ポップアップウィンドウ変更 - [ f ]雑記系
レンタルサーバー移転(さくらスタンダード→CORESERVER「CORE-B」) - [ f ]雑記系
ふらっとどらいぶネットにメール購読機能をつけました。 - [ f ]雑記系
NP_CustomURL導入記録 - [ f ]雑記系