TODOS・何でも情報交換TOPから是非ご覧ください。
一番下の投稿フォームへ > スレッド一覧 > 記事閲覧
カキコチェッカ v2.00
日時: 2010/08/29 06:23
名前: りり

[サンプル]
http://www.minicgi.net/check2/check.cgi

o6asanさんのブログにも書き込んだのだけど
http://o6asan.com/BLOG-J/el/wwwc-ver-1-0-5%e3%81%ae%e3%81%93%e3%81%a8%e3%80%82/

TODOSサイトは、このフリーCGIを見つけて、やっと形になったものです。

それ以前は、簡単な表紙を用意し、各ジャンル掲示板へのリンクを貼っていました。
で、当時、管理者には投稿通知ができましたが、他の方は、全部の掲示板をいちいちクリックしていただかないと、最新投稿も読んでいただくことができませんでした。

そこで、見つけたのがこのCGIです。作者の方は、謙遜されているのですが、このCGIは使うほどに、とっても便利と分かってきました。FTPしなくても、管理ページから、新規カテゴリーやグループ分けを指定できるのです。
グループ分けや、グループ新設時にとっても重宝しました。
また一度所属したグループでも、単に掲示板の所属をを変えるだけですから、いつでも配置換えできます。
ソートも、グループ更新順、全体更新順と選べます。

サンプルにあるように、掲示板リストだけでしたら簡易だったのですが、私は、トップページから一度クリックしてそれを出すのではなく、トップの紹介文と一緒に見せたいと思っていました。
できるだけ無用なクリックはさせたくなかったのです。

このスクリプトは、

[ <A
href="_CGIPATH_?sort=group">グループ別更新順</A>
] &nbsp; [ <A
href="_CGIPATH_?sort=all">総合更新順</A>
]
<DIV><!-- HeaderEnd --><!-- ◆ グループ1つごとの表示(繰り返し部分) --><!-- ArticleStart -->
<TABLE cellSpacing=0 cellPadding=1 width=350 align=center border=0>
<TBODY>
<TR>
<TD>&nbsp;<B>■ _GROUP_</B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=2 width=350 align=center border=0>
<TBODY>
<TR class=bg2>
<TD>カテゴリー</TD>
<TD width=150>最終更新日</TD></TR>_COMMENT_ </TBODY></TABLE>

と、グループの表示をし

<!-- ArticleEnd --><!-- ◆ グループ内の各データ --><!-- CommentStart -->
<TR class=bg>
<TD>_NAME_</TD>
<TD>_DATE_</TD></TR><!-- CommentEnd -->

次に、各グループの表示をさせています。

そのあと、管理用のパスワードの部分がフッタに来ます。

<!-- ■ フッタ -->
<!-- FooterStart -->
<form action="_CGIPATH_" method="_METHOD_">
<input type=hidden name=mode value="admin"><FONT SIZE="1"><A HREF="http://www.minicgi.net/" target="_top" style="text-decoration: none;">カキコチェッカ v2.00</A></FONT>
Pass:<input type=password name=mpass style="width: 60px; height: 20px;" size=7 maxlength=8>
<INPUT type="submit" value="Admin"><!-- FooterEnd -->

これをトップページのテーブルで区切った中に入れるのに苦戦しました。
特に、フッタの部分がうまくいかなかったのです。

それで、しばらくはフッタを入れずに、グループ分けを変えたいときは、FTPで、基本の掲示板リストだけのページに切り替えて、また元に戻すということを繰り返していました。
試行錯誤の末、フッタを付けられて、とても楽になりましたが。

理論的によく分からないのですが、このフッタの入った基本のhtmlだけ見るとこんな感じなのです。
http://todos.xsrv.jp/check/skin.html
これが、グループなどが繰り返し挿入表示されると、フッタもちゃんと下に…
テーブルタグとの絡みもあって、訳が分からないのですが、ま、これでうまくいっているので使っています。
このskin.htmlは、ソースをご覧になれば、概要が分かると思いますが、訳が分かる方には、是非、ご教示をお願いしたいと思います。
メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 3 | 2 | 1 |

Re: カキコチェッカ v2.00 ( No.1 )
日時: 2010/08/29 22:01
名前: o6asan

りりさん,こんばんは。

skin.htmlを直してみました。あと,<font>タグを直したいと思うのですが,styleでの指定とで入り組んで
いて,面倒なので今回はやめにしました。

出来たファイルは,こちらにアップします。
h ttp://todos.xsrv.jp/uploader/upl/skin.html  <---- 訂正ファイルをアップしたので,削除しました。

右端が,新ファイルのローカルでの表示状態です。

多分,大丈夫だと思うのですが,不都合がありましたら,お知らせください。
メンテ
Re: カキコチェッカ v2.00 ( No.2 )
日時: 2010/08/29 22:21
名前: りり

o6asanさん、どうもありがとうございます。

まだ修正箇所はよく見ていないのですが、とりあえず、skin.htmlを入れ替えたところ、なぜか、グループごとの表示が出ません。
で、すぐに元に戻しています。

私も、試行錯誤で、何をどうするとどうなるのかよく分からないのですが、以前も、フッタを弄ると、ちゃんと繰り返し表示されなくなったり…

<font>タグは、おっしゃるとおり、styleでの指定と、私がどうしても個々に大きさを決めたいところと混在しています。

もともとテーブルで作っていた構成に、カキコチェッカーのstyleを入れたので、こういう感じになってしまいました…
メンテ
Re: カキコチェッカ v2.00 ( No.3 )
日時: 2010/08/29 22:40
名前: o6asan

りりさん,どうもすみません。

一か所わからないけれど,消してしまったところがあるのです。
それは,_COMMENT_ というところです。cgiのほうの何らかの変数だと思ったんですが。
入れる位置としてはすごく中途半端な位置に入っていたので,消したのです。
これを戻しても駄目でしょうか。

もしだめだとすると,変なことの起こる原因は,スキンだけでは分からないような気がします。
メンテ
Re: カキコチェッカ v2.00 ( No.4 )
日時: 2010/08/29 22:46
名前: o6asan

りりさん,ごめんなさい。

もう一度見直していて,大きな勘違いに気づきましたので,もう一度直して,アップします。
しばらくお待ちください。
メンテ
Re: カキコチェッカ v2.00 ( No.5 )
日時: 2010/08/29 22:56
名前: o6asan

りりさん,こちらでは,どうでしょうか。

h ttp://todos.xsrv.jp/uploader/upl/skin-2.html  <---- 訂正ファイルをアップしたので,削除しました。

_COMMENT_については,やはりどこか別ファイルで定義しているようで,この部分で
<!-- ◆ グループ内の各データ --><!-- CommentStart -->
<TR class=bg>
<TD>_NAME_</TD>
<TD>_DATE_</TD></TR>
<!-- CommentEnd -->
を使っているようです。で,skin.htmlだけで,表示させると,奇妙な感じになります。
メンテ
Re: カキコチェッカ v2.00 ( No.6 )
日時: 2010/08/29 23:11
名前: りり

ただ今、o6asanさん、編集の改訂版に入れ替えました。

やはり、skin.htmlだけで構成を考えようとしても、難しいようですね。
でも、細かい部分を見ていただいてありがとうございました。


本体CGI・check.cgiのフッター書き込み部分は、こういう感じですが、グループ内のデータの部分は、ソートによって変わるので、とても複雑になっています。

# フッター書き込み
if($popup){ $backlink = "<FORM><INPUT TYPE=\"button\" VALUE=\" Close \" onClick=\"window.close()\"></FORM>";}
else{ $backlink = "<div align=center><a href=\"$backurl\">[Back]</a></div>";}

$footer =~ s/_BACK_/$backlink/ig;
$footer =~ s/_CGIPATH_/$cgipath/ig;
$footer =~ s/_METHOD_/$method/ig;
print "$footer";
exit;
メンテ
Re: カキコチェッカ v2.00 ( No.7 )
日時: 2010/08/29 23:39
名前: o6asan

りりさん,改めまして,こんばんは。

_COMMENT_の定義がどうなっているか知りたいです。

それと,あわててアップしたので,</BODY>を入れ忘れました。


<!-- ◆ グループ内の各データ --><!-- CommentStart -->
<TR class=bg>
<TD>_NAME_</TD>
<TD>_DATE_</TD></TR>
<!-- CommentEnd -->

の部分はおそらくcgiの定義で_COMMENT_部分に読み込まれますので,最終的なHTMLとしては,変なことにはなっていません。
ただ,微妙に終了タグがなかったり,height設定が違ったりしているところがあっただけです。
skin.htmlについては,</BODY>以外はきっちり閉じましたので,フッター部分はフッター部分で,
扱えるのではないかと思うのですが......

と,書いたところで,トップページのソースを見たのですが,1番下が,
<INPUT type="submit" value="Admin">
</form>
で終わっています。フッター書き込みに行って,戻った時点で,HTMLを終了作業を入れなければいけないのですが,
それができていないようです。それと,以下のフッター書き込みがどこにつながるのかよくわからないのですが,
これは,カキコチェッカの変数なのでしょうか。

# フッター書き込み
if($popup){ $backlink = "<FORM><INPUT TYPE=\"button\" VALUE=\" Close \" onClick=\"window.close()\"></FORM>";}
else{ $backlink = "<div align=center><a href=\"$backurl\">[Back]</a></div>";}

$footer =~ s/_BACK_/$backlink/ig;
$footer =~ s/_CGIPATH_/$cgipath/ig;
$footer =~ s/_METHOD_/$method/ig;
print "$footer";
exit;
メンテ
Re: カキコチェッカ v2.00 ( No.8 )
日時: 2010/08/30 04:14
名前: o6asan

りりさん,おはようございます。

今日は,お休みなので,check.cgiを落として調べてみました。

最終版のつもりで,アップしておきます。今度こそ,多分大丈夫だと思うのですが......
http://todos.xsrv.jp/uploader/upl/skin-3.html

==========================================================================================
# フッター書き込み  の部分で,
print "$footer\n</HTML>\n";  を  print "$footer";  にしてしまっているので,

skin.htmlのほうで,

<!-- ■ フッタ -->
<!-- FooterStart -->
<TABLE cellSpacing=1 cellPadding=2 width=350 align=center border=0>
<TBODY>
<TR>
<TD><form action="_CGIPATH_" method="_METHOD_">
<input type=hidden name=mode value="admin"><FONT SIZE="1"><A HREF="http://www.minicgi.net/" target="_top" style="text-decoration: none;">カキコチェッカ v2.00</A></FONT>
Pass:<input type=password name=mpass style="width: 60px; height: 20px;" size=7 maxlength=8>
<INPUT type="submit" value="Admin">
</form>
</TD></TR></TBODY></TABLE>
</BODY></HTML>
<!-- FooterEnd -->

にしてしまったほうが,すっきりするようです。

それから,skin.htmlにある <!-- SiteSearch Google --> (←これはりりさんがgoogle関連デ入れたものですね。) 以外の
<!-- FooterStart --><!-- FooterEnd --> などは,check.cgiの中に範囲の定義がありまして,
これの配置を間違えると,表示が違ってきますので,注意が必要です。
==========================================================================================
蛇足ですが,
$popup=0を使われているようだし,_BACK_も使っていないので,

if($popup){ $backlink = "<FORM><INPUT TYPE=\"button\" VALUE=\" Close \" onClick=\"window.close()\"></FORM>";}
else{ $backlink = "<div align=center><a href=\"$backurl\">[Back]</a></div>";}

$footer =~ s/_BACK_/$backlink/ig;

を全部削除してもいいと思います。他の$popup関連のところも削除すると,すっきりするかもしれません。

そういえば,skin.htmlの

<SCRIPT LANGUAGE="JavaScript">
<!--
function GoWin(WO) {
if (opener.closed) {
NewWin=window.open("","MWindow","");
NewWin.location.href= WO ;
}
else { opener.location.href=WO }
}
//-->
</SCRIPT>

を削除してます。$popup=0なので,大丈夫だと思いますが,どこかで単独で使っているところがあって,
エラーが出るようなら,復活させてください。
メンテ
Re: カキコチェッカ v2.00 ( No.9 )
日時: 2010/08/30 05:44
名前: りり

まあ!o6asanさん、朝早くから!

少し前にこの前の書き込みのお返事を書こうとしていたところでしたので、丁度良かったです。

ただ今、最新版のskin.htmlにしました。こちらです。
http://todos.xsrv.jp/check/skin.html

変なところに、adminボタンが入らなくて、良くなりました。

最初のskin.htmlもそうなのですが、どうしてテーブルからはみ出すかは、謎なのです。
前は、大きくテーブルから外れるので、ダメだと思って、別のほとんどオリジナルなadminボタン入りのskin.htmlを用意して交互に使っていたのですね。

それが、ローカルでのskin.htmlの表示がダメでも、アップすると、使えるという…変な具合で…

オリジナルのskin.htmlが簡易なので、テーブルを使ったhtmlと合わないのかもしれません。

adminで入ったときも、URLは、
http://todos.xsrv.jp/check/check.cgiで同じですが、このときは、skin.htmlは読まないで、基本のグループ名だけで動くのですよね。

今まで、悩みの種だったのですが、今回きっかけがあって、o6asanさんのブログに書いてみて良かったです。

CGI作者さんは、skin.htmlは、
#--------------------------------
# スキンを作成するには・・・
#--------------------------------
慣れないうちは、デフォルトのスキンをコピーしてスキンを作成してみてください。
<!-- ○○Start -->から<!-- ○○END -->で挟まれた部分は、自由に変更することができます。

また、以下の文字列は、それぞれ下の表のように置換されます。

■ 置換文字列一覧
1) <!-- HedderStart -->から<!-- HedderEnd -->まで
_CGIPATH_ :CGIファイルへのパス

2) <!-- ArticleStart -->から<!-- ArticleEnd -->まで
_GROUP_ :グループ名
_COMMENT_ :(3)で設定した部分

3) <!-- CommentStart -->から<!-- CommentEnd -->まで
_NAME_ :設定したページ名
_DATE_ :取得した日付

4) <!-- FooterStart -->から<!-- FooterEnd -->まで
_BACK_ :Backボタン(ポップアップ形式で利用する場合は閉じるボタン)
_CGIPATH_ :CGIファイルへのパス
_METHOD_ :フォームの投稿形式


と書いています。テーブルの部分は、自由に変えても良いところみたいなんですけどね。
メンテ
Re: カキコチェッカ v2.00 ( No.10 )
日時: 2010/08/30 08:46
名前: o6asan

りりさん,おはようございます。

> 最初のskin.htmlもそうなのですが、どうしてテーブルからはみ出すかは、謎なのです。
いえ,はみ出して当然なのです。昨日,はじめからcheck.zipを落として調べるところから始めればよかったの
ですが,手抜きをしたせいで,二度手間三度手間になってしまいました。ローカルで,perlを通さないまま,
HTMLが実行された場合,_COMMENT_や_GROUP_,_NAME_はただの文字列とみなされますから,

_COMMENT_



<!-- ◆ グループ内の各データ --><!-- CommentStart -->
<TR class=bg>
<TD>_NAME_</TD>
<TD>_DATE_</TD></TR>
<!-- CommentEnd -->

の部分は,テーブルの中にないことになります。ですから,はみ出すのです。

それから,check.cgiのテンプレート読み込みのところで,

$header = (split(/<!--[ \t\r\n]*HeaderStart[ \t\r\n]*-->\r?\n?/i,$file))[1];
$header =~ s/<!--[ \t\r\n]*HeaderEnd[ \t\r\n]*-->(.|\n)*//i;

$article = (split(/<!--[ \t\r\n]*ArticleStart[ \t\r\n]*-->\r?\n?/i,$file))[1];
$article =~ s/<!--[ \t\r\n]*ArticleEnd[ \t\r\n]*-->(.|\n)*//i;

$comment = (split(/<!--[ \t\r\n]*CommentStart[ \t\r\n]*-->\r?\n?/i,$file))[1];
$comment =~ s/<!--[ \t\r\n]*CommentEnd[ \t\r\n]*-->(.|\n)*//i;

$footer = (split(/<!--[ \t\r\n]*FooterStart[ \t\r\n]*-->\r?\n?/i,$file))[1];
$footer =~ s/<!--[ \t\r\n]*FooterEnd[ \t\r\n]*-->(.|\n)*//i;

というのがありますから,FooterEndなどを雑に設定すると変なことになります。


ところで,skin.htmlを読んだり読まなかったりのところがあるのでしたら,
</TD></TR></TBODY></TABLE>
</BODY></HTML>
<!-- FooterEnd -->



print "$footer";

のところはデフォルトと同じように,
</TD></TR></TBODY></TABLE>
</BODY>
<!-- FooterEnd -->
</HTML>



print "$footer\n</HTML>\n";

にしたほうがいいかもしれません。

追記:
もともとのskin.htmlのテーブルはすごくシンプルなものですね。で,$footerのところの終わりが簡単で済みますが,
TODOSの場合はかなり複雑になっています。今,もう一度,skin-3.htmlを見たのですが,一番初めのテーブルを
閉じるのを忘れています。たいがいのブラウザは寛大に頭から表示していってくれますから,見掛け上エラーに
なっていませんが,シビアなブラウザに逢うと表示が崩れるかもしれません。footerのところは,すぐ後にexitが
あって,プログラムの終了がからみます。各exitでcgiを抜けると,htmlには戻ってこない構造になっているよう
ですから,この辺を考慮に入れて整合性を取ればいいと思います。

時間が取れたら,check.cgiと突き合わせて考えてみようと思います。
メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 3 | 2 | 1 |

楽しい交流と情報交換のTODOS・アップローダーも用意。ぜひTOPからもご覧ください。
ご参考になりましたら、お気軽に一筆お書き込みくださいませ。
題名 スレッドをトップへソート
名前
画像添付
JPEG
GIF
PNG



参照ボタンを押して、PCの画像を指定ください。3枚まで指定できます。縮小画像はクリックで拡大されます。
パスワード (好きなパスワードを。投稿後、右下のスパナマークをクリックし、そのパスワードを入れて修正できます。)
コメント

   クッキー保存
スレッドTOPへ***スレッド一覧