Nucleusで、できたらいいな

Nucleusで、できたらいいな

Author : pushman|Nucleus|2005-11-16 Wed 10:54

再開当初の目的を忘れ、Nucleus のプラグイン開発したり、どんどん表示項目を増やしてます。まあとにかく「気分が良くてなにが悪い?」っつうことですよ。

で、Blog するなら Nucleus と思っているのはもちろんですが、やはり不満な点もあります。でもその多くはちょこっと改造してみたり、プラグインの導入で回避できます。個人的には、欲しい機能は自分で導入するというスタイルが好きなので、Nucleus で十分満足してますが、一点どうしても不満なことがあります。

それは、個別アイテムページの URI です。

Nucleus はアイテムの呼出にアイテムの「ID」を使ってますよね。多くのブログツールもそうだと思うんですが、たしかMT は、キーワードを URI に指定することができたと記憶しています。多くの Blog は投稿年月日時分秒を URI にしてますよね。それでもいいんですが、僕はキーワードを URI に指定したいのです。

例えば「Heartfield、再び……(まえがきにかえて)」という記事の URI は「http://blog.heartfield-web.com/item_1.html」となってます。一番目の記事ということですね。で、僕の希望としてはこんな感じにしたいのです。

「http://blog.heartfield-web.com/about_heartfield.html」

これぐらい .htaccess を使えば簡単にできますよね。でも、各記事に .htaccess で指定するのも面倒だし、なにより前後の記事のリンクを手動で設定する羽目になったら、面倒くさくって管理しなってしまいます。なんか他にも弊害が出そうですし。

MT は静的ファイルを出力するのでこういうことが可能なんでしょうかね? Nucleus でもできそうな気がしてならないのですが。「NP_TagEX」の作る URI を見ると、なんかできそうな気がするので、僕の希望をかなえる動きを考えてみました。

  • アイテム投稿時にアドレスキーワードを入力(半角英数字のみ。全角の場合は自動変換するようにする)
  • キーワードが無い場合は、アイテム ID …(時間のほうがいいのかな…)
  • アイテム ID と関連づけてデーターベースに登録
  • キーワードを呼び出されたら、そのアイテム ID の記事を表示する

こういうことってできないもんでしょうか。

「NP_TagEX」と同じ様にすれば、URI はこんな感じかな?

「http://blog.heartfield-web.com/?key=about_heartfield」

…これはまたなんか SEO がどうのこうのになるのか。ならないのか。まあどっちでもいいけど、見た目はやはり「?」とかなしでいきたい。そして、こういうことができるかできないか、それを知りたい。できるとわかっても、僕では作れないでしょうけど(笑)。他の記事のなかに、別の記事の URI、前後のページとか、関連したページとかをつけるのがこれまたむずかしそうだなぁ…でも、いくら前後の記事とか関連記事を抽出しても、どうも読んでもらえてないようなので(笑→泣)、別に不要といえば不要。

やはりここまでするには Nucleus 自体を前面的に作り直す必要ありなのかな。もうまったく妄想の世界の願望なんですけど、これできたら、なんか気持ちが落ち着きそうです。

【追記】
dj k!ng さん作の「NP_Permalink」で、希望通りのアドレスに変更できました。ほんとにありがとうございます。

利用する際の注意事項をまとめてみました。
NP_Permalink|導入まとめ

Tag(s):

[Nucleus] Next & Previous

Comments

Posted by dj k!ng2005-11-16 Wed 13:46

|゚)つ http://nucleus.skooler.org/13/

mod_rewrite が使える環境なら, .htaccess に

RewriteEngine On
RewriteRule ^([a-z]+)/?$ index.php?item=$1

とでも書いておけば, "ttp://example.org/キーワード/" という感じで個別アイテム・ページにアクセスできると思います.

Posted by pushman|2005-11-16 Wed 22:18

dj k!ng さん
こんにちは。凄いタイミングで記事を書いちゃいましたね。ほんとに偶然です。

って、冷静でいられないぐらいの凄いプラグインですね! これです、これですよ、僕が欲しかったのは!

Magical URL でもまったく問題無く使えました。あとは前後の記事とかを呼び出せたら…いえ、自分でも模索しますが(笑)。

他のプラグインから呼び出せたりできるんのでしょうか。とにかくじっくりソースを見て勉強させてもらいます。ほんとにほんとにありがとうございます。

Posted by dj k!ng2005-11-17 Thu 09:39

どうも. 以前に Nucleus フォーラムで同様の要望が出ていたように思いますが, 今回この記事を読んで検索してみた限りそれっぽいプラグインが見当たらなかったので, 簡単に作ってみました. 作るとすれば "こんなもんかな?" 程度の実装しかしていないので, 機能的にはまだまだ実用的ではないですが. もし, この路線で不満が無ければ next/prev なども実装してみますよ.

# 他のプラグインから呼び出すなら, NP_Permalink クラスのオブジェクトを作って直接参照しちゃえば良いと思います.

Posted by pushman|2005-11-17 Thu 11:24

dj k!ng さん
こんにちは。

簡単に作ってみました.

うう、す、すごいですね。猛烈に憧れます。

もし, この路線で不満が無ければ next/prev なども実装してみますよ.

不満なんてあるはずがありません(笑)。ぜひぜひお願いします。これが実現できれば、山ほど下書きを書いていて、いざ公開するときに記事番号順を気にすることがなくなりそうです。

ぜひぜひお願いいたします。

Posted by dj k!ng2005-11-17 Thu 19:26

早速 next/prev 実装してみました. 変数タグ "<%Permalink(nextlink)%>" と "<%Permalink(prevlink)%>" でそれぞれ前後の記事の URI が出力されます. 個別アイテム・ページであれば, スキン上にも書くことができます.

mod_rewrite を使う場合など, 独自の URI を出力したい場合は, "<%Permalink(name)%>", "<%Permalink(nextname)%>" と "<%Permalink(prevname)%>" でそれぞれカレント・アイテムと前後のアイテムの名前 (無ければアイテム ID) だけ出力されます.

あと変更点が一つ. v1.0 では FancyURLs モードでは無い場合 (通常のモード) に "?item=アイテム名" というパラメータを使ってアイテム名を渡していましたが, v1.1 から "?itemid=アイテム名" に統一しました. このほうが何かと都合が良いと思うので.

他に必要そうな機能ってありますかね?

Posted by pushman|2005-11-17 Thu 19:59

dj k!ng さん
こんにちは。

あぁもうなんというか…凄すぎます。ありがとうございます。

他に必要そうな機能ってありますかね?

もう全然まったくありません。というか僕が望んでいた機能がどんどん追加されております。スキンにも書けたらなぁ、と思ってたんですよ、ほんとに。

ただ、今ちょっと試した限りでは、<%Permalink(nextname)%>"が動いていないかもしれません。"<%Permalink(prevname)%>"は動いてますが、カテゴリーでフィルタリングされているというか、直前の記事にはなっていませんでした。そういう仕様でしたらすみません。

個人的には mod_rewrite の正規表現で大苦戦してます。キーワードだけなら問題無くできましたが、静的ページっぽい URI(.html)の場合が実現できてません。また、「_」を入れてると、キーワードでもアクセス不可…知らない事が多すぎますね。勉強勉強です。

あまりに感激したので慌てて返信してしまいましたが、どうもおつかれさまです。そして、ありがとうございます。興奮してまだ全然いじれてないので、落ち着いてからもう一度試行錯誤してみます。

Posted by dj k!ng2005-11-18 Fri 04:29

あ, 前後のアイテムはご推測の通り同一カテゴリ内のアイテムでしぼってます. 同一ブログ内や全アイテムで選べるようにしましょうか.

ちなみに

RewriteRule ^key/([a-zA-Z0-9_]+)\.html$ index.php?itemid=$1

で, "ttp://example.org/key/Foo_2005.html" という感じでアクセスできます.

Posted by dj k!ng2005-11-18 Fri 06:56

上記の設定をプラグイン・オプションとタグのパラメータの両方で付けときました. 指定はタグのパラメータが優先されます.

Posted by まみお2005-11-18 Fri 09:09

http://wakka.xiffy.nl/Fanci...
これで普通にできませんでしょうか。
かなりメジャーなヤツですけど。
v4.0からはアイテムごとにurlに使うワードを指定できるらしいので日本語タイトルの場合は英字タイトルをここに入れればokかと。
(入れなかった場合の日本語タイトルのアイテムurlがどうなるのかは不明ですが)

Posted by pushman|2005-11-18 Fri 09:57

dj k!ng さん
こんにちは。

あぁ、もうほんともうなにからなにまで…ありがとうございます。もうばっちりでございます。なんの問題もありません。

「^key」これですね、これ。直下に置こうとしたのですが、いろいろおかしくなってしまって…問題ないといっておきながらなんですが、「key」がカテゴリーごとに分けられると、はい、うれしいです(笑)。よろしくお願いします。

まみおさん
こんにちは。ご紹介いただいたプラグインですが、実は以前別サイトで試してみました。が、使い方がさっぱりわからず、僕の欲しているプラグインではないのだと即判断してしまいました。そして、未だ意味がわかりません(笑)。英語はどうも…苦手でして。

Posted by dj k!ng2005-11-18 Fri 10:28

やはりこの手のプラグインは既出でしたか. なんとなくそんな気はしていたんですが. :-(

ちょうどカテゴリにも名前を付けられるようにしたほうが良いかなと思っていたところなので, "カテゴリ + 名前" という路線で NP_FancierURL と別方向に進んでみることにします. NP_FancierURL は "日付 + タイトル" のようなので.

Posted by pushman|2005-11-18 Fri 10:33

dj k!ng さん
こんにちは。

すみません。僕の読解力不足で…お手間かけさせてしまって。

でもはっきりいって、NP_Permalink の方が、より直感的に使えますし、URI も「カテゴリ + 名前」の方が分かりやすいと思います。今のままでも十分使えるとおもいますので、無理ない範囲でよろしくお願いいたします。

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_znItemFieldEXとNP_ifの連携

NP_znItemFieldEX|PHP 5で検索機能を有効にする

NP_GoogleMaps|最大ズームレベルを変更

NP_ImageExtractor|エラー修正

NP_ImageExtractor|画像を抽出するプラグイン

Web Service

Google Mapsで緯度と経度を測定

Nucleus CMS: Pure Publishing