質問掲示板

CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。

新規発言一覧最新記事過去一覧 | 検索HOME

スレッド

└◇284:
便乗質問です。日記でできません。 [dan] 02/05 04:06

 └◇285:Re:便乗質問です。日記でできません。 [moon(管] 02/05
  └◇287:Re[2]:便乗質問です。日記でできません。 [dan] 02/06
   └◇288:Re[3]:便乗質問です。日記でできません。 [moon(管] 02/06
    └◇289:Re[4]:便乗質問です。日記でできません。 [dan] 02/06
     └◇290:Re[5]:便乗質問です。日記でできません。 [moon(管] 02/07 <


284● 便乗質問です。日記でできません。[ dan ] 2006 02/05 04:06
はじめまして。
便乗で質問させていただきます。

『日記』で上記と同じ事を行いたいのですが、どうも上手くできません。
※topページに月間のログを読み込みたい。

817行目の
        open (IN,$file);
        @line = <IN>;
        close (IN);

        if (@line) { print qq|<h3><font color="$tc">最近の$title2</font></h3>\n| if $title2; }
        else {
            print <<EOF;
<table bgcolor="$tw_c" width="$t_wid" border="0" cellspacing="1">
<tr>
<th>
<table border="0" width="100%" cellspacing="1" cellpadding="5">
<tr bgcolor="$tbt_c">
<th>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<th nowrap><font color="$ti_c">LOGがありません</font></th>


を削除したのですが、動作そのもができなくなってしまいました。。。
お忙しいとは思いますが、お力を貸していただけたら幸いです。

何卒よろしくお願いします。
スレッド一覧


285● Re:便乗質問です。日記でできません。[ moon(管理人) ] 2006 02/05 22:29
> 『日記』で上記と同じ事を行いたいのですが、どうも上手くできません。
> ※topページに月間のログを読み込みたい。

        open (IN,$file);
        @line = <IN>;
        close (IN);

        if (@line) { print qq|<h3><font color="$tc">最近の$title2</font></h3>\n| if $title2; }
        else {
            print <<EOF;
<table bgcolor="$tw_c" width="$t_wid" border="0" cellspacing="1">
<tr>
<th>
<table border="0" width="100%" cellspacing="1" cellpadding="5">
<tr bgcolor="$tbt_c">
<th>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<th nowrap><font color="$ti_c">LOGがありません</font></th>
<td nowrap align="right">
</td>
</tr>
</table>
</th>
</tr>
</table>
</th>
</tr>
</table>
EOF
        }

以上を全て削除してください。
中途半端に削除をすれば動かなくなります。

その上で、記事274の後半の部分をやれば出来るかと思います。
たぶん・・・
スレッド一覧


287● Re[2]:便乗質問です。日記でできません。[ dan ] 2006 02/06 03:58
早速のご返信、本当にありがとうございます。
無事に問題なくできました!!とても助かりました。

携帯表示でも同じ事を行いたいのですが、どこの行を削除&追加すれば、携帯でもTOPページに月間ログを表示させる事が可能でしょうか?
いろいろ削除したり追加したりいじったのですが、携帯表示ではどうも上手く動いてくれません。

それと別件でさらにご質問させて頂くと、--最近のLOG--と表示されますが、これの色を変更させたいです。

レベルの低い質問で大変お手数をおかけしますが、何卒お力を貸してください。

何卒よろしくお願いいたします。
スレッド一覧


288● Re[3]:便乗質問です。日記でできません。[ moon(管理人かも) ] 2006 02/06 15:50

> 携帯表示でも同じ事を行いたいのですが、どこの行を削除&追加すれば、携帯でもTOPページに月間ログを表示させる事が可能でしょうか?

すでに回答にありますが、携帯はi-modo用(CHTML)とau用(XHTML)の二箇所に同じような記載があるので、両方とも変更することを注意してください。
kei.plの44行目あたりから。

        open (IN,$file);
        @line = <IN>;
        close (IN);

        if (@line) {
            if ($title2) {
                print qq|<h3><font color="$tc">--最近の$title2--</font></h3>\n|;
            } else {
                print qq|<h3><font color="$tc">--最近のLOG--</font></h3>\n|;
            }
        } else {
            print qq|<h3><font color="$tc">LOGがありません。</font></h3>\n|;
        }

を削除。
削除した場所にPC用と同じように

&gettime;
$in{'log'} = $year .$mon;

        open (IN,"$direct/$in{'log'}");
        @line2 = <IN>;
        close (IN);

        if ($in{'id'}) {
            foreach (@line2) {
                if ($_ =~ /$in{'id'}/) {
                    push(@line,$_);
                }
            }
        } else {
            @line = @line2;
            print "<h3><font color=\"$tc\">" .substr($in{'log'},0,2) ."年";
            print substr($in{'log'},2,2) ."月";
            if ($view_sw == 1) {
                if ($in{'view'} eq 'a') { print "前半"; }
                elsif ($in{'view'} eq 'b') { print "後半"; }
            } elsif ($view_sw == 2) {
                if ($in{'view'} eq 'a') { print "上旬"; }
                elsif ($in{'view'} eq 'b') { print "中旬"; }
                elsif ($in{'view'} eq 'c') { print "下旬"; }
            }
            print "の日記</font></h3>\n";
        }

を入れてください。

同じように100行目あたりからの奴を変える。

これで一応動くと思います。


> それと別件でさらにご質問させて頂くと、--最近のLOG--と表示されますが、これの色を変更させたいです。

これは携帯用ですか?
管理用設定画面から変更できると思いますが、直接変更したい場合は、
kei.plで「最近の」と言うキーワードで検索してみてください。
四箇所HITすると思いますが、いずれも<font>タグで色を指定しているだけなので、直接変更すればOKです。
スレッド一覧


289● Re[4]:便乗質問です。日記でできません。[ dan ] 2006 02/06 21:12
非常にお早い回答ありがとうございます。
疑問点は全て解決し、問題なく動作しております。
大変大変感謝しております。

何度も申し訳ありませんが、もうひとつだけ質問させてください。

携帯表示だけで良いのですが、
『ほかの記事を読む』をクリックした時に、年、月表示だけにさせていたです。
イベントお知らせとして使用予定なのですが、月ごとの検索を行いたいと思っております。
その月の予定イベントが全て表示するようにしたいです。

大変お忙しい中、恐縮ですが何卒よろしくお願いいたします。
スレッド一覧


290● Re[5]:便乗質問です。日記でできません。[ moon(管理人みたい) ] 2006 02/07 12:11
> 携帯表示だけで良いのですが、
> 『ほかの記事を読む』をクリックした時に、年、月表示だけにさせていたです。
> イベントお知らせとして使用予定なのですが、月ごとの検索を行いたいと思っております。
> その月の予定イベントが全て表示するようにしたいです。


kei.pl
866行目あたり

    ($mday1,$mday2) = split(//,$mday);
    print qq|<select name="day1">\n|;
    for (0..3) {
        if ($mday1 == $_) {
            print qq|<option value="$_" selected>$_\n|;
        } else {
            print qq|<option value="$_">$_\n|;
        }
    }
    print qq|</select>\n|;
    print qq|<select name="day2">\n|;
    for (0..9) {
        if ($mday2 == $_) {
            print qq|<option value="$_" selected>$_\n|;
        } else {
            print qq|<option value="$_">$_\n|;
        }
    }
    print qq|</select>日<br>\n|;
    print qq|または\n|;
    print qq|<select name="day3">\n|;
    print qq|<option value="">\n|;
    print qq|<option value="a">上旬\n|;
    print qq|<option value="b">中旬\n|;
    print qq|<option value="c">下旬\n|;
    print qq|</select>\n|;

を削除。
同じように953行目辺りの同じ記述を削除。

nik.cgi 115行目あたり
    elsif ($mode == 2) {    # ほかの記事選択FORM
        if ($FORM{'day3'}) { &logvw_w3; }
    }
これを↓にかえる
    elsif ($mode == 2) {    # ほかの記事選択FORM
        &logvw_w3;
    }


で、またkei.pl
483行目辺りの
sub logvw_c3 {
のサブルーチン内。


    open (IN,$log_file_c);
    @line = <IN>;
    close (IN);

    foreach $line (@line) {
        (@_) = split(/\t/,$line);

        if ($in{'day3'} eq "a") {

            for (1..10) {
                $_ = sprintf("%02d", $_);
                $chh = "$in{'year'}$in{'mon'}$_";
                if ($_[0] =~ /^$chh/) {
                    push(@datas,$line);
                }
            }

        } elsif ($in{'day3'} eq "b") {

            for (11..20) {
                $chh = "$in{'year'}$in{'mon'}$_";
                if ($_[0] =~ /^$chh/) {
                    push(@datas,$line);
                }
            }

        } elsif ($in{'day3'} eq "c") {

            for (21..32) {
                $chh = "$in{'year'}$in{'mon'}$_";
                if ($_[0] =~ /^$chh/) {
                    push(@datas,$line);
                }
            }

        } else {

            $chh = "$in{'year'}$in{'mon'}$in{'day1'}$in{'day2'}";
            if ($_[0] =~ /^$chh/) {
                push(@datas,$line);
            }

        }
    }

これを以下に変更

    open (IN,$log_file_c);
    @datas = <IN>;
    close (IN);

同じように
sub logvw_w3 {
の中のものを変更。

でできそうな感じです。

案の定テストをしていないので、動かなかったら再度質問してください。
スレッド一覧

CGIROOM