blosxomを掲示板化 #4 Posted at 2005/08/15 (Mon) 09:17 [Blosxom]
気になる点や、今後改造したいメモ
URLやメールアドレスが入力されていた場合、ブラウザのタイトルにたとえばこんな感じで、タグもタイトルに付いてしまうのを除去したい。解決*1nameとURLやメールアドレスやタイトルを切り離したい。(metaプラグイン辺り持ってくればできそう。)解決*2RSSにコメント件数(レス)を表示させたい。解決*3
ぬぅ、どれも自分1人で改造無理っぽい。(´д`)
追記:*1
またもやmizzyさんが教えて下さいました!いつもいつも本当にありがとうございます!との事で、タイトルに付いてしまうタグの除去方法は、entry_titleプラグインの最後の方の
if (defined $title) {
$title = "$title";
}
を、↓
if (defined $title) {
$title = "$title";
$title =~ s|<a[^>]*>.*</a>||;
}
↑に書き換える事で解決。
追記:*2
mizzyさんが改造してくれたプラグインをちょっとだけ修正して無事切り離して表示できました!だけど、名前の表示の時、名前にリンク(URLやメアド)を付けようとして、interpolate_fancyを使って条件分岐させようとして挫折。どなたか親切ど親切な方、URLの場合、メアドの場合、URLもメアドもない場合という風に条件分岐させるには、どう記述したらよいか教えて下さい。orz
追記:*3
<content:encoded> の中に$writeback::countを仕込む事でできました。
追記:
すべて解決。次のエントリにまとめました。
No trackback.
タイトルの表示はentry_titleプラグインをご利用でしょうか?それであれば、最後の方の
if (defined $title) {
$title = "$title";
}
を
if (defined $title) {
$title = "$title";
$title =~ s|<a[^>]*>.*</a>||;
}
としてやればタグの除去ができると思います。
2番目のやつはおっしゃる通り、metaプラグインと組み合わせればいけそうですね。newentryの改造も必要ですが、手があいたらやってみます。
おお!またもやありがとうございます!一つ目解決しましたー 。・゚・(ノ∀`)・゚・。
2つ目ですが、newentryを改造してみました。
» http
エントリファイルの2行目以降に、
meta-title: タイトル
meta-name: 名前
meta-url: » http
meta-mail: » mailto
といった形で書き出すようにしました。171行目から181行目あたりが追加した部分です。
で、metaプラグインを入れれば、フレーバ中で$meta::titleとかやれば、値が取り出せるはずです。
動作確認はしてませんので、動かなかったらごめんなさい。
3つ目ですが、rssは何を使って吐き出していますか?おそらく、適当なところに$writeback::countと入れてあげればOKだと思うのですが。
ありがとうございます!できましたー。めちゃめちゃ感謝です。[lol]
たぶん、interpolate_fancyでは無理だと思うので、改造済みnewentryプラグインの「# metaでtitle, name, url, mailを記述」の部分、一番最後辺りに以下の様につけ加えてください。
$secondline .= "meta-link: $pref_name_a\n";
そうすると、$meta::linkで、リンクつきの名前が得られると思います。(url, mailの入力がなければ、自動的にリンクなしになるはずです。)
お手数おかけしてすいません。そしてありがとうございます。
どうやら、それでは名前は呼び出せないみたいです。$meta::linkでも$meta::nameでも呼び出せません。タイトルとURLなどは大丈夫みたいです。
なぜなのか、私にはサッパリで..... [cry]
あれ、なんでだろ?書き出されたエントリファイルには、meta-nameとかmeta-linkは存在しますか?
ひとつ間違いが。
$secondline .= "meta-name: $name\n";
ではなく、
$secondline .= "meta-name: $pref_name\n";
ですね。
修正してみました。すると、名前の後ろにURLがくっつく感じで取り出せました。名前自体にリンクはできないんでしょうか?
あ、ちなみに、meta-nameとかmeta-linkは、ちゃんとデータファイルに保存されていました。
> 名前自体にリンクはできないんでしょうか?
それでしたら、
if ($pref_url =~ » mailto {
$pref_name_a = qq!$pref_name<a href="mailto:${pref_url}">Mail</a></a>!;
} elsif ($pref_url ne '') {
$pref_name_a = qq!$pref_name<a href="${pref_url}">URL</a>!;
}
を
if ($pref_url =~ » mailto {
$pref_name_a = qq!<a href="mailto:${pref_url}">$pref_name</a></a>!;
} elsif ($pref_url ne '') {
$pref_name_a = qq!$<a href="${pref_url}">$pref_name</a>!;
}
という風に変えてみるといけると思います。
そこ、私が勝手に改造しちゃった所ですね。戻しました。しかし、戻しても名前の後ろに来てしまいます。しかも、URLやメアドがない場合、表示もされません。あぅぅぅ
いま、試しに書いてみたのですが、惜しい感じですね。
エントリファイルのmeta-linkには、どんな風に書かれていますか?
ああ、わかりました。
$pref_name_a = qq!$<a href="${pref_url}">$pref_name</a>!;
を
$pref_name_a = qq!<a href="${pref_url}">$pref_name</a>!;
修正して下さい。qq!の後の、$が余分でした。すみません。
あと、勝手にテスト書き込みしてすみません。お手数ですが消しておいて頂けますでしょうか。
おお!できましたー!!![lol]
なんか、いろいろお世話になっちゃってすいません。ほんとにありがとうございました。これで、完璧ですー!
おつかれさまでしたー。お役に立ててうれしいです。
マジでホントに感謝です!ありがとうございました![razz]





