過去ログ NO.1165317387
□ ひろたか [2006年12月04日12時59分]NXerさんいつもご回答いただきまして有難うございます。 また、質問させていただきます。 質問1)新しいアンケートが作成された際にアンケート一覧のアンケートテーマの頭にNEWという画像を貼り付けたいと考えています。 また、投稿後1週間経過すると自動的にNEWの画像表示が消せる事は出来るのでしょうか? 質問2)レイアウトがいまいち華やかさに欠けるのですが、何かいい方法はありますでしょうか? 例えばヘッダー箇所にブルーとグレーの線を入れたりするのはどうすればいいでようか? 宜しくおねがいします。
□ NXer [2006年12月04日16時49分] >テーマの頭にNEWという画像を貼り付け、 >1週間経過すると自動的にNEWの画像表示が消える
当方の能力を越えています。そこで杜甫々さんに助けていただきました。 正確には同氏の『CGI&Perl 究極のレシピ350』技術評論社、2003です。 NXerです。
その1)時間のアルゴリズム
時の流れを時間という単位で計るようになったのはいつからでしょうか。 紀元前150-100年ごろ、ヒッパルコスは、太陽、月と地球の位置から 当時の精密な計算機(コンピュータ)つまり時計で、1日を24時間1年 を365日と計測したといわれています。現代のコンピュータは、内臓タ イマーで1970年1月1日0時0分0秒gmtからの累積秒を計算していま す。すえぽんさんは、絶対秒を次の形式で換算表現されています。 #$up=2004年10月30日
ご要望のあった、テーマを設定した日から何週間後という締切日は、設定 した日に対して相対的な日になるために一度、絶対的な1970年からの 秒単位時間に変更して、なおかつ、表示や保存はすえぽん形式を優先すると いう複雑な過程を経ます。そのために、当方は変更することができませんで した。
その2)new画像の表示と自動消去のための変更愚案
2.1 初期値設定 Time::Local; モジュール使用 #-------------------- 初期設定 -------------------by nexer # perl モジュール指定 use Time::Local; $newflag=0;
2.2 new 画像用見出し変更 ------------------------------------------- 170 else { print "<table>\n<tr><th>番号</th><th>new</th><th>アンケートテーマ</th><th>開始日</th><th>終了日</th></tr>\n"; }
2.3 表示サブルーチン変更 ------------------------------- 970 sub subject_view{ print "<tr><td align=center>$count</td>\n"; &time_convert; if ($newflag>=1){ print "<td><img src=$img/new.gif width=35 height=15 border=0></img></td>\n";} else {print "<td>--</td>\n";}#-- の代わりは 空白やnew以外の画像などに変更可 print "<td><a href='$script?data=$_'>$subject</a></td><td>$up</td><td>$inf</td></tr>\n"; }
2.4 すぐ下に秒変換サブルーチン挿入 ------------------------------------- 980 sub time_convert{ #$up=2004年10月30日表示形式 #----0123456789012 substr()の位置、0からカウントする、0,6,0に注意 $year=substr($up,0,4); $mon=substr($up,6,2); $mday=substr($up,10,2); $hour=00;$min=00;$sec=00; $time=time(); #現在の時間gmtを得る $uptime = timelocal($sec,$min,$hour,$mday,$mon-1,$year-1900);#$upの絶対秒 $gap=7*24*60*60; #7日間の秒換算 if (($time-$uptime)<$gap){$newflag=1;}#設定したnew期間内表示フラグ1 if ($inf eq "終了"){$newflag=0;};#終了フラグ0 }
2.5 new 画像を/img/ ディレクトリに転送 .gif 画像でよいと思われます。 ----------------------------------------------- ポイントは、substr()関数で、数える位置は、ゼロ、一、二、、となる点。 漢字は2バイトと数えます。設定した日の時間は、午前0時0分0秒と してあります。特別に1週間以内の設定で終了したテーマは、new期間内 ですが、非表示としています。 全角空白に注意をして、ラウンジ表示文のコピーペーストでも動作すると 思います。
new画像以外にも、-- や空白でなくて、後1日画像や総得票数を記録して 人気アンケートテーマ画像などと「華やか」なトップ画面構成にできそう ですね。対象者などが不明ですが、絞り込めば、華やかさも明確になると 思います。
>レイアウト これは、貴ローカルサーバに当方がアクセスできないことと当方の スクリプトとのずれがあるために、考えることができません。 ラウンジトップページのりティさんが助言頂く方法でアクセスが 可能になれば、より多くの人に具体的な提案をいただけると思います。 なお、ボタン画像で成功されましたから、ライン用画像をご質問の位置 に表示することはだぶん容易にできると思います。2.5のようにライン 画像も転送してお試しください。
上記のtime_convertサブルーチンを応用して1週間、2週間、、後の締め切り を設定することも可能かもしれません。 愚案の、見てすぐ月日が分かるようにカレンダーを表示する方が変換よりも 簡単と思います。これは、偶偶、当方がすでにカレンダーcgiを設置している ためそう思っているだけです。
|
|