人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CGIの質問です。The RoomさんのPower Searchと言うサーチエンジンで新しく登録されたサイトにNEWマークを表示させたいのです。毎回、日付を確認しながらNEWマークを付けたり外したりするのは結構大変です。The Roomさんのサイトのサポート掲示板で似たログを見つけたんですけど改造の質問は答えられないみたいなのでCGIに詳しい人、Power Searchを設置している人で知っている方がいれば教えてください。

●質問者: upup
●カテゴリ:ウェブ制作
✍キーワード:CGI Mさん POWER サイト サポート
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sasada
●20ポイント

http://dream.lib.net/room/cgi/e_ps.html

ざっとCGIを見てみました。

片手間仕事なので、抜けは有ると思いますが、修正作業の参考にしてください。

ps_search.cgiのnewサブルーティンによると、linkの日付は”linkdata”というファイルの(split(/<>/,$_))[8]に入っていて、新着の日付は$newtimeに入っているようです。

従いまして、「if (split(/<>/,$_))[8] + $newtime*86400 < time()」というロジックで新着チェックが出来ます。

($_に、linkdataの各行が入る)

ps_search.cgiのlinkbarサブルーティンに引数を追加して、上記の条件文でNEWフラグを渡してやります。

linkbarサブルーティンを呼び出しているのは、mark,new,ranking,cat,search,powersearch,plinkの各ルーティンです。

あとは、linkbarサブルーティンで、NEWフラグに合わせて、表示を切り替えてやればOKです。

頑張ってください。

◎質問者からの返答

sasadaさん、アドバイスありがとうございます。

私はCGI初心者な者で時間がかかりそうです。

引数と言うのはif (split(/<>/,$_))[8] + $newtime*86400 < time()」の事なんでしょうか?


2 ● sasada
●50ポイント

>引数と言うのはif (split(/<>/,$_))[8] + $newtime*86400 < time()」の事なんでしょうか?

はい。その条件で引数にする変数のフラグを立てると言う意味です。

が!!!

よくソース見ると大嘘ついていました。

ごめんなさい! ごめんなさい!! ごめんなさい!!!

先ほどの回答は、完全に忘れてください。m(_ _)m

肝心の表示部分は、linkbarサブルーティンではなくて、siteindicateサブルーティンです。

まったく、どこに目をつけているんだか。

先ほどのヘボ回答には、マイナス100ptくらい付けといてください(恥

siteindicateサブルーティンの引数に@siteがあります。

これから作られる@y3が、そのサイトの日付のようです。

$y3[5]+1900 が年、$y3[4]+1が月、$y3[3]が日を表しています。

これか、32400+$y2[8] (システム基準値からの秒数)を使って、新着チェックをしてください。

チェックの結果、my $new_flgに新着のときに’ [NEW]’、それ以外のときに’’を入れるようにコーティングします。

で、同サブルーティンの中の

<a href=”$siteurl” target=”$linktarget”>$banner<b>$sitename</b></a>

と言う表示を

<a href=”$siteurl” target=”$linktarget”>$banner<b>$sitename</b></a>$new_flg

と言う風に変えます。(右端に追加ですね)

こんな感じで、分かりますでしょうか。

説明ベタかつ勘違いバカで、本当にすみません。m(_ _)m

◎質問者からの返答

私は質問している立場なので気にしないでください。^^;

最後にチョット教えてください。

いまいちチェックの仕方がわかりません。

どのようにスクリプトに書き込めばよろしいのでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ