tDiaryスレッド その1
Ruby で書かれたWeb日記プログラム tDiary のスレッドです。 本家 tDiary.org http://www.tdiary.org/ 日記貸し出し tDiary.net http://www.tdiary.net/ >>281 そこのサイトに -------- RSS::Simple は適当にでっち上げた、XML::RSS 代替。なんとなく XML::RSS 使いたくなかったので。 -------- と書いてあるのだが そのスクリプト Global symbol "$cache" requires explicit package name とエラーがでるな ruby 1.8.2 で動いている人いますか? rubyのバージョン上げてたら,しばらく日記表示させていなかった間にいつの間にか 動かなくなってしまいました@local. tdiary自体のバージョンも最新版か分からなくなってしまったので,とりあえず2.0.0を入れ直し, ついでにapache+phpがおかしくなってたのも直すために両者を入れ直し.こちらはpukiwikiが動くように なったのですが,tdiaryは動きません. [症状] http://localhost/tdiary/ を表示させると,index.rb の中味がテキストで表示される. -rwxr-xr-x 1 apache apache が index.rb の権限です. .htaccess には Options +ExecCGI AddHandler cgi-script .rb DirectoryIndex index.rb とデフォルトのdot.htaccessのまま記述してあるし,htpasswdの部分は更新する場合の話なので とりあえずここでは関係ないだろうし,あっても.htpasswdは存在&パスも指定しているし... [やったこと] tdiaryの公式ページから案内のあるFAQやインストール-HOWTOからのリンク(共通ノウハウ集)は すべて目を通して確認しました.このスレも全部レス目を通しました. あとは公式ページの動作環境の "Ruby 1.6.[3-8], 1.8.[0-1](1.8系はtDiary 2.0以降のみサポートです)"ってところが合わないくらいで・・・ ほかにありそうな原因ってありますでしょうか? とりあえず、Index.rbは所有者権限でもおkです。 自鯖と思うので、cgi-binに直行で入れると、うまくいかないよ。 一度、httpd/htmlのほうに入れてみるといいかも。 あとは、Rubyのパスさえ間違わなければ、動くと思われ。 >>288 入れてある場所は, /home/user/tdiary 以下で,ここに /var/www/localhost/htdocs/t からソフトリンク貼ってあります. /var/www/localhost/htdocs は apache で httpd/html のトップディレクトリとして指定してあるものです. rubyのパスはwhichで確認して,/usr/bin/ruby ということで確認取りました. 実際は /usr/bin/ruby18 へのリンクなのですが,これもコマンドラインから /usr/bin/ruby を指定して 実行できることを確認しました. うーん,どこが原因なのかまだ不明です, エラーの種類は? InternalServerErrorか? 一度シェルで $ ruby tdiary/index.cgi とやってみれ >>290 エラーというか,ブラウザ上では index.rb の中味がそのまま表示されています. シェル上で $ ruby ./index.rb を実行すると (offline mode: enter name=value pairs on standard input) と表示されます. 追加,()内が表示されるとコンソールに戻らないので,ctrl+cで実行停止すると 次の表示が現れます. (offline mode: enter name=value pairs on standard input) <--ここはすでに表示 Content-Type: text/plain (Interrupt) /usr/lib/ruby/1.8/cgi.rb:1081:in `readlines' /usr/lib/ruby/1.8/cgi.rb:1081:in `read_from_cmdline' /usr/lib/ruby/1.8/cgi.rb:1118:in `initialize_query' /usr/lib/ruby/1.8/cgi.rb:2269:in `initialize' tdiary/index.rb:20:in `new' tdiary/index.rb:20 どうもapacheの設定間違いみたいね。 dot.htaccessは書き換えた? $ chmod +x index.rb とかした? インストールのドキュメント読んだほうがいいよ >>293 あれ?そうですか。。。 dot.htaccessはリネームして .htaccess に mv しました。 内容は >>287 にあるとおり、自分の環境にしたがって設定したつもりです。 index.rb の権限は同じく>>287 のように -rwxr-xr-x 1 apache apache で問題無さそうですし。 とりあえずいまWindowsなので、もう一度動作環境のあるLinuxに戻って確かめてみます。 ひとつ気が付いたことがあります. .htaccess に # if you run tDiary with symbolic link, use settings below. という記述があり,自分のケースでは,/var/www/以下よりホーム以下にリンクさせているので Options +FollowSymLinks ここのコメントを外しました.が,依然動かず・・・スクリプトがテキストのまま 表示されてしまいます. >>292 それはコンソール上で入力を試せるモード。 ctrl+c じゃなくて ctrl+d で EOF 送って入力を終了させれ。 AllowOverride None になってない? >>297 あ, /etc/apache2/httpd.conf にて <Directory /> Options FollowSymLinks AllowOverride None </Directory> こういう記述がありました.トップ以下すべてに関わってきますか? AllowOverride All に変更しても変わりはなかったですが・・・ >>296 Content-Type: text/html; charset=EUC-JP Vary: User-Agent Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache Content-Length: 1537 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd "> みたいにそのあとずっと正常っぽい出力が出てきました!!! でも,サーバ上ではどうすればよいのでしょう・・・ToT 再度申し訳ありません unless ($html = $cache->get($url)) の所でどうしても Can't call method "get" on an undefined value at tdiary2rss.cgi というエラーが出ます。 どなたか解決方法をご存じないでしょうか? >298 # apachectl restart ところで最新のrubyだと変数名とメソッド名が 衝突してちょこちょこエラーでるようになったね。 >>300 あ,もちろん毎回 /etc/init.d/apache2 stop|start はやっていますよー.T_T あ、やってたのねスマソ うーんでもこれ以上はわかんないな。ウチではuser_dirで使ってるし。 スーパーリロードとかはしてみた? スーパーリロードというのがどういうものなのか知りませんが, Shift押しながらのリロード(キャッシュを使わない)なら毎回やっています. とりあえず,インストール場所を説明書通りにしてもう一度やってみます. いろいろ御指南有り難うございました. とりあえず,index.rb とファイル名まで決め打ちであれば,動かすことに成功しました! ツボは,/etc/apache2/httpd.conf 中の ScriptAlias /tdiary/ /var/www/localhost/htdocs/tdiary/ これが抜けていたことでした. ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/ という記述がすでにあり, /var/www/localhost/cgi-bin/ 以下にインストールしたところ,うまく動いたので気が付きました. ・・・が,問題が・・・ index.rb を指定すると実行できるのですが,http://localhost/tdiary/ だと Forbidden You don't have permission to access /t/ on this server. となります. .htaccess には DirectoryIndex index.rb を指定してあるので,ディレクトリブラウズしたら index.rb を読みに行って実行してくれそうなものですが・・・. [Thu Mar 17 10:50:34 2005] [error] [client 127.0.0.1] attempt to invoke directory as script: /var/www/localhost/htdocs/tdiary/ とあるので,その通りなのでしょうが... あれ,もう一度過去ログ読んだら,>>265 さんとまったく同じですね. 問題の所在が分かったと思ったら,そういうことだったのですか・・・. あっれ?っていうか, #ScriptAlias /tdiary/ /var/www/localhost/htdocs/tdiary/ とコメントアウトして, DirectoryIndex index.html index.html.var index.php と,index.rb を消したら,ディレクトリブラウズでも行けるようになった! えーと,めちゃくちゃ謎なんですけど,とりあえず動くようになりました. Ruby-1.8.2 でも動きます. >306 っつーかapacheのこともう少し勉強しろ 自由に改行を入れられるようにしたいのですが スタイルのどこをいじったらいいのでしょうか? 入力したとおりに表示したいんです。 >>308 etDiaryスタイルを使う、じゃだめなの? 2.0.1キタ >>310 比較回数が多くなれば重くなるのは必然 未来の日付の日記を編集したとします。 たとえば、その日に見たいテレビ番組があるとして、 その番組についてその日に「何か」を書くことが分かっていて、 その日に番組があることを万が一忘れていた場合に思い出したい・・・というようなケースです。 すると、トップを表示させた場合、現在の日付ではなく、いちばん未来の日付がトップに表示されます。 これを、未来の日付はその日が来るまで表示しないようにすることはできますでしょうか? todo プラグインは別途使っているのですが、 todoの方に入れる用事とかは、期限過ぎたら記録上消してしまっていいようなものに使っています。 日記として予め書いておくものは、期限が来たらあらかじめある程度書いておいた内容に 書き足すような行事とかです。 tdiary.confを見てみましたが、希望にかなう設定はなかったみたいです。 実現できないなら、手動で現在日時に移動するという解決法にします。 ちょっと面倒ですが、未来期日に書くことは避けられないので。 tDiaryが生成するHTMLの<head>に、metaタグのkeywordやdescriptionを 含ませたいのですができますか? >>316 descriptionは、やり方がわかりました。 keywordは、わからないので教えてください。 ツッコミした人のホスト名を記録して メールアドレスのように管理画面のときだけ表示するようにしたいのですが できますか? 改造しないといけないとすると、 どうやればいいかポインタだけでもどなたかヒントをくださいませんでしょうか。 やった事がないからヒントも何も書けないわけだが、とりあえずその情報は「記録 されてない」ので、改造するなら記録する所からはじめてください。 httpdのアクセスログを見たほうが楽だと思うので個人的にはそうしている。 >>320 なるほどそもそも記録するように改造ですね。 ありがとうございます。 確かに時刻をみてアクセスログみた方が、改造するより楽ですね。^^; 改造した後は時刻を見なくていいので改造した方が楽になりますね。うーむ悩ましい 日記に半角カナ文字を使いたいのですが、可能でしょうか? 例えば キタ━━━━(゚∀゚)━━━━!! と投稿すると、実際の文では キタ━━━━(°∀°)━━━━!! になってしまうのです(´Д⊂グスン shoのヒトが嫌いらしいのですが shoのヒトの日記検索すると対処法出てくる ruby1.8以上ならってかんじだっけか shoの人嫌いならtDiaryつかうのやめたほうがいい。 shoの人が半角カナの存在を嫌ってるって話じゃねーの? tDiaryでページ全体を作って行きたいんですが、 http://www.tdiary.org/ このようなデザインにするにはどうすればいいのでしょうか。 はてなDiaryみたいに各記事ごとに登録した時間とか書き込むプラグインない? はてなダイアリーつかえば?無料なんだし ちなみにいうとtDiaryには日付があるのみで記事という概念はない。だから無理。 ここだけの話、はてなスタイルのこれ以上の発展はさせないつもりなんだ。 自分自身はてなスタイルで書いてるから、メンテナンスは続けるけどね。 今後はてな側で記法にどんな拡張を行ったとしても、それははてなスタイル には反映されないよ。 それを理解した上でなら、どうぞお使いください。 えっと、地味に感動。 んでもって僕は wiki スタイルゆざ tDiary-Users Wikiいい加減にしてくれ。 管理できないならwalwiki使うの止めてくれよ。 コメントSPAMにうんざり。 recent_trackback3.rb が使えません。 具体的には ・プラグイン選択画面でrecent_trackback3.rbをチェック ・ヘッダーに <%=recent_trackback3.rb%> を追加 としました。しかしヘッダに何も表示されません。 既存のトラックバックを表示してくれるわけではなく、新しくトラックバックをうけないとだめなのかなと思い、 自分でトラックバックしてみましたが、やっぱり何も表示されませんでした。 エラーは特にでてないようなので、なにか心当たりがあればお願いします。 質問です。 ツッコミメール使ってるんですが、fromが設定した送信先、 つまりtoと同じになってしまいます。 これって変更できないんですか? ポートを指定していると、 update.rb が URL にポート番号を重複してて不正だの文句いってエラーを吐く。 オマイが阿呆だろと。 まぁ、しょうがないからポートを 80 にしてサーバを起動し、 URL にはポート番号を無指定してみると CSRF 対策だと出てくる。 設定にそれらしいものがあるので(グレーアウトしてるが)変更してみようと思ったら、 CSRF 対策による拒絶うんぬん。 もう、阿呆かと。 つか、ただただショボすぎて泣けてきただよ 2.0.2 なんだけど、 プラグインは plugin ディレクトリになければならないとドキュメントに書かれてるが、 misc/plugin の方に入れないと認識されないんですが? そこにコピーしたら、ローカルでテストしたみた時には組み込まれたが、 サーバだと、どうやっても使えない。 新入荷!お試しください > チェックして OK > 使用中 > 適当にページ変更してプラグイン選択に戻る > チェックが外れてる おい、何なんだよコレ? >>340 の方は、tdiary.conf.sample の方に追記されていた、 # Refererの検査において、正しい参照元と見なすURLにマッチする正規表現。 を使って対処できた。設定項目やドキュメントなど中途半端だし、設定が分散してたり中途半端だな。 >>341 の方は、勝手に作られる方の tdiary.conf の権限を緩くしたら反映される様になった。 こっちは、今まで問題なく使えてたのは何だったんだ? misc/plugin の方に放り込まなきゃならなくなったのは、いぜん謎だし。 つか、反映にミスしたなら警告くらい出してくれても良いだろうに。 設定ってかどのファイルをいじれば 吐き出されるhtmlを変えられるのかってことです 何をいじるかによるけど...プラグインでダメなものは skel/*.rhtml をいじってる サンクス てかこんな過疎スレでこんなに速く回答もらえるとは思わんかった 前??件分の日記を表示してくれるプラグインってありますか? いつのバージョンからできるようになったかわからないけど、2.1 系だと index.rb?date=20060210-5(html_anchor.rbを使っているなら20060210-5.html) と指定すると特定の日から前何日分の日記が表示できるよ。 特にプラグインを入れる必要はなかったはず。 上の例だと 2006/2/6 から 2006/2/10 までの日記が表示される。 求めていることを勘違いしてたらゴメン。 2.0 + html_anchor だと ?date= の方はうまく動くけど、20060210-5.html の方は Not Found になっちまった 20060210-5.html でアクセスできるようにするには mod_rewrite などの設定も 書き換えないとダメですね。 ttp://tdiary-users.sourceforge.jp/cgi-bin/wiki.cgi?html%A4%C7%A5%A2%A5%AF%A5%BB%A5%B9%A4%B7%A4%BF%A4%A4 >>350 詳細にありがとうございます。期待している動作です。 互換性の問題があると面倒だけど、ちょっと開発版を試してみます。 あとは、Ruby ならヘッダにアンカを埋め込むくらいのプラグインなら作れるかな…… 次世代地図サービス実験サイト ALPSLAB がスタート http://slashdot.jp/article.pl?sid=06/03/02/035230 ALPSLAB clip! http://www.alpslab.jp/clip.html > Movable Type、tDiary、Hikiをご利用のお客様は、 > 地図プラグインをダウンロードし、セットアップしていただくと、 > ブログやWikiで、地図画像を直接指定できるタグが利用可能となり、 > さらに簡単、便利に、地図を貼り付けることができます。 > もちろん、地図画像のサイズや縮尺の指定も可能です。 makerssを使おうとしてるんですけど、日記を更新しようとすると undefined method `categories' for #<Paragraph:0x4022ed2c> (NoMethodError) 間違って送信…。 もう一度。 makerssを使おうとしてるんですけど、日記を更新しようとすると undefined method `categories' for #<Paragraph:0x4022ed2c> (NoMethodError) と出ます。 また、設定画面から「RSSの生成」をしようとすると undefined method `call' for "update":String (NoMethodError) と出ます。 misc/plugin/ja/makerss.rbの入れ忘れが原因でそうなることが多いそうなので /misc/plugin/makerss.rbと/misc/plugin/ja/makerss.rbは最新のものをCVS Repositoryからダウンロードし、それぞれコピーしましたが駄目でした。 tdiaryのバージョンは2.0.2で、サーバはXREAです。 原因がわかる人、教えてください。 CVSからダウンロードした最新版は 2.0 系向けのものですか。 単純に最新版をダウンロードすると 2.1 系向けがダウンロードできてしまいます。 2.0 系向けはこちらからどうぞ。 ttp://cvs.sourceforge.net/viewcvs.py/tdiary/plugin/makerss.rb?only_with_tag=Stable-2_0 ttp://cvs.sourceforge.net/viewcvs.py/tdiary/plugin/ja/makerss.rb?only_with_tag=Stable-2_0 なるほど確かに私の使っていたものは2.1向けだったようです。 そこで、1.15.2.2と1.1(ja/)に入れ替えてみましたが、やはりエラーが出ます。 そもそも、tdiaryはフルセット版をダウンロードして使ってるので、makerssは最初から入っていたんですが それでエラーが出たので最新版を入れてみたわけです。 普通、フルセットの場合はプラグインを更新したりしなくても使えるものなんですよね? だとすると、プラグイン自体ではなく何か他の原因があるのでしょうか… あと確認しておきたいんですが、 プラグインの追加・更新は、misc/plugin以下にこの2つのファイルを置く(そして追加の場合は設定画面で選択)だけでいいんですよね? >>358 他にどんなプラグインを入れてますか? プラグイン同士の相性が悪い物もあるので参考までに聞いてみたいかも。 doctype-html401tr.rb jdate.rb recent_comment3.rb を使ってます。 一度消してみましたが、やっぱり駄目みたいです。 cacheディレクトリ消しても変わりません。 日記を更新するときのエラーの内容ですが、全て書くと以下のようになります。 undefined method `categories' for #<Paragraph:0x4022ce3c> (NoMethodError) (plugin/makerss.rb):172:in `makerss_body' (plugin/makerss.rb):102:in `makerss_update' (plugin/makerss.rb):52:in `each_with_index' (plugin/makerss.rb):96:in `makerss_update' /usr/local/lib/ruby/1.8/pstore.rb:318:in `transaction' /usr/local/lib/ruby/1.8/pstore.rb:317:in `transaction' (plugin/makerss.rb):57:in `makerss_update' (plugin/makerss.rb):203:in `load_plugin' /virtual/USER/public_html/tdiary/tdiary.rb:693:in `update_proc' /virtual/USER/public_html/tdiary/tdiary.rb:692:in `update_proc' /virtual/USER/public_html/tdiary/tdiary.rb:1253:in `do_eval_rhtml' /virtual/USER/public_html/tdiary/tdiary.rb:1253:in `do_eval_rhtml' /virtual/USER/public_html/tdiary/tdiary.rb:854:in `eval_rhtml' /virtual/USER/public_html/tdiary/update.rb:62 最近 コメントキーフィルタ&プラグイン をすり抜けてくる コメントスパムがくるorz たぶんフォームを解析してるんだろうな.凝ったことしやがって... blogkit に附属の title-navi.rb なんですが、 next hopへのリンクが自動で更新されません。 次の記事Aがあるときに、今の記事Bを再度編集しないと、 次のこれってやっぱり、staticにデータ作ってるんすかね。 途中でしくった。スマソ。 blogkit に附属の title-navi.rb なんですが、 next hopへのリンクが自動で更新されません。 具体的には 次の記事Aがあるときに、今の記事Bを再度編集しないと、 Bのナビゲーションバーに Aへのリンクが作られません。 次のこれってやっぱり、staticにデータ作ってるんすかね… ガイシュツだったらすまんが、docに書いといて欲しいよ tDiary 2.0.2 + BlogKit + upload.rb に、記事IDが年月日時分秒になるように クイックハックしたものを下記にアップしました。 過去の記事データは使用できませんので注意してください。 http://www.fiercewinds.net/tdiary/upload/tDiaryBlog.zip 興味のあるかたはドゾー 「 > 」で始まる文章だけ色を変えたいのだけどどうすればいい? tdiary2.0.2で、last-modifiedっていうヘッダを出力しないようにしたいんだけど、 index.rbの59行目くらいにある head['Last-Modified'] = CGI::rfc1123_date( tdiary.last_modified ) をコメントアウトしたんだが相変わらず出力されてしまう。 解決法きぼんぬ。 それは HTTPレスポンスヘッダだね html なら plugin/00default.rb の add_header_proc サーチエンジンからやってくるときに、 その日のページの日記の内容ではなくて、そのページに書かれている他の記事のタイトルがヒットして 来ている場合が結構あるようです。 事前に自分で登録しておいたサーチエンジンのロボットの巡回のときは 基本的に日記の本文だけを表示させて、そういうメニューをかくしてしまうということをすれば サーチエンジンからやってくるページの精度が上がるのではないかと思っています。 こういうことをするにはどこから改造していけばいいのでしょうか。 tDiary 全体の書き換えが必要になるでしょうか。 tDiary の内部を良くご存知の方、何かご教授いただければ幸いです。 >>371 index.rb の出力直前を弄るのが一番楽かな? おおまかな方針を説明すると、出力内容は body に格納され print body で標準出力に吐き出される。したがってその直前で if 検索ボットだったら body.gsub!(/引用部分の正規表現/,'') end ってのを挿入する。bq プラグイン使って引用してる場合の例だと、 if /(Google|Yahoo! Slurp|msnbot)/i =~ ENV['HTTP_USER_AGENT'] body.gsub!(/<blockquote>.*?<\/blockquote>/,'') body.gsub!(/<p class="source">.*?<\/p>/,'') end head['Content-Length'] = body.size.to_s print @cgi.header( head ) print body ってな感じだと思う。ただし、頭の中でコレで動くだろうって思って書いてるので まんまコピペして「動かない」とかは勘弁してちょ それなりに ruby の文法を理解して、自分でアレンジとかヨロシクですよ 検索エンジンの判定部分もテケトーなんで、好きなように修正してね なるほどいったん body に格納されているものを消すという方法ですね。 これでちょっと格闘しております。 「日記の本文」だけ残して残りを消すのはなかなか難しそうですね。 「本文の中の引用部分」を消したいというわけではなく、 sidebarにあるような「他の日の日記の記事のタイトル」や「コメントされた方の名前」などを消したいので ひとまずsidebarを消せるようにいろいろ考えてみます。 内側にたくさん div があるので sidebar を <div class="sidebar">から</div>までを消すという方法は正規表現では難しいですよね。 あ、今思ったのですが、設定画面の「ヘッダ・フッタ」を出さないというようにできれば一番目的にあいそうです。 ひとまずヘッダ・フッタを body に入れている部分を探してみます。 それって、設定→ヘッダ・フッタで指定するやつですよね だったら、eruby で記述すればいいと思います <% if /(Google|Yahoo! Slurp|msnbot)/i !~ ENV['HTTP_USER_AGENT'] then %> <div class="sidebar"> 〜中略〜 </div> <% end %> ってな感じで出したくない部分を、<% if 条件文 then %> 〜 <% end %>で囲えばいいです ブラウザの設定画面で eruby の文法がそのまま使えますので、tdiaryのソース弄るよりは楽かも知れません それ以外の部分は tdiary の skel フォルダに雛型が入ってるんで、そっちを弄ってみてください おお! ここで eruby という php の ruby 版みたいな記法がそのまま使えるのですね! これは大変楽にできそうです。ありがとうございます! なんとなくソースを読んでいたのですが、skel の部分を読み込んで eval_rhtml している感じなのですね。 なんか ruby で CGI って書くのがおもしろいそうです。 とりあえず <% if /(Google|Yahoo! Slurp|msnbot|Steeler|NaverBot)/i !~ ENV['HTTP_USER_AGENT'] then %> と <% end %> でヘッダとフッタそれぞれかこってみました。 user agentをGoogleなどにしてチェックしてみたところきちんと作動しています。 これで検索から来る精度がもっとあがると思います。ありがとうございました! tDiary 2.1.4, Ruby 1.8.5 を使っています。 最近、 ttp://ws.mobile.yahoo.co.jp/bin/search?c=on&p=fuga ttp://sbs.mobile.yahoo.co.jp/union/search?p=hoge というようなモバイル用(?)検索エンジンから飛んでくるのが増えてきたので、 各日の下の「検索」というところに「.co.jpのGoogle検索」などと同じように並ぶようにしたいと思いました。 @data_path ではない、index.rb のあるディレクトリの tdiary.conf の中で @referer_table に ['^http:// ([^\.]*).mobile.yahoo(\.com|\.co\.jp)/.*?p=([^&]*).*', '\3(\2のMoblie Yahoo検索)'], を加えてみたところ、 「検索」の欄には入らず、少し上の「以前の日記へのリンク元」というところに入ってしまいました。 しかも、 hoge(.co.jpのMoblie Yahoo検索) ×1 となって「hoge(.co.jpのMoblie Yahoo検索)」の部分がリンクになっています。 「検索」のところに入るなら hoge ×1 : .co.jpのMobile Yahoo検索 となって「.co.jpのMobile Yahoo検索」の部分がリンクになってほしいです。 できれば他の「検索」と同じように並ぶようにしたいのですが、 どこを書き換えれば良かったのでしょうか。 ご存知の方是非教えていただければと思います。 その機能は使ったことないからテキトー言ってるかもしれないけど たぶん、misc/plugin/ja/disp_referrer.rb の DispReferrer2_Engines じゃないかな? 'yahoomobile' => [[%r{\Ahttp://.*? \.mobile\.yahoo(\.com|\.co\.jp)/}i, '".#{$1}のMoblie Yahoo検索"', ['p'], nil]], って感じで追加するのかな?間違ってるかも知れないので、自分で上手く調整してね ひとまずそのままではだめでした。 それからいじってはいるのですがどうもうまくいきません。 「その他のリンク元」に入ったままです。 そもそも極端に 'yahoomobile' => [[%r{\Ahttp://.* }i, '"Moblie Yahoo検索"', ['p'], nil]], としても検索に入ってこず、そのままの URL のままその他のリンク元になっています。 試しに他の部分の「のGoogle検索」を「のGooooooooooogle検索」などとしてみるとちゃんと変わるのでここ変数は有効なのは確かなのですが... なぜヒットしないのかがわからずにおります。 あらま、上手くいかなかったですか。どうもコードの読みが甘かったようでスンマセン 語気からすると、それなりにコード追える方みたいなので遠まわしに説明します misc/plugin/disp_referrer.rb のDispRef2String クラスのところで def self::company_name( str, hash_table ) hostname( str ).split( /\./ ).values_at( -2, -3, 0 ).each do |s| return s if s and hash_table.has_key?( s.downcase ) end nil end って関数があります。リファラのurlをピリオドで分割して、最後から2番目「co」、三番目「yahoo」 そして先頭部分「.*?」が、ハッシュのキーに含まれるか判定してるので「yahoomobile」にはヒットしない訳です なので「yahoo」のキーのほうに入れて試してみてください それと、もう一つ気になるのは、このプラグインは自前でキャッシュ使ってるようなので そいつが悪さしてソースの変更が上手く反映されないかもしれません キャッシュされてるファイルは 'volatile.tdr2.cache' と '%Y%m.tdr2.cache' なんですけど 私にはこれを削除していいのかどうか判断できません。おそらく大丈夫だと思うんだけど責任は持てないッス なので、キャッシュを一旦どこかに退避して、どういう動作をするかはご自身で判断してください これでも上手くいかなかったらごめんなさい 大変丁寧で詳しい解説をありがとうございました。 なるほどホスト名からハッシュにまわしているのですね。 無事 'yahoo' => の中に [%r{\Ahttp://.*? \.mobile\.yahoo\.([^/]+)/}i, '".#{$1}のMobile Yahoo検索"', ['p'], nil], を追加することでうまくいきました! ちなみに、キャッシュは削除することなく即座に変更されました。 それと、見ていたら Google で /search ではなく /hws/search というものがあり、キーワード不明となっていたので google の欄の、/(search|custom|ie)}i の部分を/(hws/search|search|custom|ie)}i と改造してみたところこれもうまく検索語が解析されましたのであわせてご報告いたします。 詳しい解説、重ね重ねありがとうございました。 何気にCVSが、嵐の様に激しくうpしていく拳について 公式にあるスパムフィルタを入れても、全然スパムがおさまらない。 該当のメアドでも、ばんばん書き込まれる orz 俺だけ? tDiary は EUC-JP ですが utf-8 化するということは簡単にできますでしょうか。 改造するにはかなり大掛かりになるのでしょうか。 read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる