記事No | : 15730 |
投稿日 | : 2018/01/16(Tue) 16:11:30 |
タイトル | : Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi?y=2018&m=01 |
初めまして。お世話になります。
Web Calen v5.0で月次データ一括表示の時に表示される記事の順番を日付順に(1日が一番上で31日が一番下に来るように)変更できないでしょうか。
過去に少し似た質問があったのですが、ヴァージョンが変わっていて解決できませんでした。
また、記事本文中のURLを自動リンクする方法はありますでしょうか。
よろしくお願いいたします。
記事No | : 15731 |
投稿日 | : 2018/01/16(Tue) 18:46:31 |
タイトル | : Re: Web Calenの表示順位と自動リンクについて |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/term/term.php |
>Web Calen v5.0で月次データ一括表示の時に表示される記事の順番を日付順に(1日が一番上で31日が一番下に来るように)変更できないでしょうか。
ログを逆順に読み込むモジュールで読み込んでいるので、ちょっと手がかかりますが、calen.cgi のsub read_data内
my $bw = File::ReadBackwards->new("$cf{datadir}/$y$m.txt")
or return("$y年$m月 一覧",undef,undef,undef);
while( defined( my $line = $bw->readline ) ) {
をコメントアウトしてその下に
open(IN,"$cf{datadir}/$y$m.txt");
my @tmp = <IN>;
close(IN);
foreach my $line (@tmp) {
を追加すると日付昇順になると思います。
この場合、cf{max_page} は31にしておかないと月の後半が表示されない場合があります。
自動リンクは、calen.cgiのどこかに
sub auto_link {
my $text = shift;
$text =~ s/(s?https?:\/\/([\w-.!~*'();\/?:\@=+\$,%#]|&)+)/<a href="$1" target="_blank">$1<\/a>/g;
return $text;
}
を追加してsub main_page内の
my ($day,$sub,$msg,$ico,$wico,$img1,$img2,$img3) = split(/<>/);
の下あたりに
$msg = auto_link($msg);
を追加するといいと思います。
記事No | : 15733 |
投稿日 | : 2018/01/16(Tue) 20:09:00 |
タイトル | : Re^2: Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi?y=2018&m=01 |
>hirayamaさま
早速のご回答ありがとうございます!
ご教授の通りに修正してみましたところ、即座に解決し感激しております。
自分にとって非常に使いやすくなり、これからWeb Calenを活用させていただく事が出来そうで嬉しいです。
本当にありがとうございました。
記事No | : 15734 |
投稿日 | : 2018/01/17(Wed) 00:35:47 |
タイトル | : Re: Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi |
度々恐縮です。
新着記事の順位も逆順に(新着が下に表示されるように)変更する方法もお教えいただけましたら幸いです。
よろしくお願いいたします。
記事No | : 15735 |
投稿日 | : 2018/01/17(Wed) 13:01:25 |
タイトル | : Re^2: Web Calenの表示順位と自動リンクについて |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/term/term.php |
>新着記事の順位も逆順に(新着が下に表示されるように)変更する方法もお教えいただけましたら幸いです。
新着記事も逆順に表示するなら簡単です。
先の sub read_dat 内の変更をすべて元に戻して
sub main_page 内の
print $head;
の下あたりに
@{$log} = reverse(@{$log});
を追加するといいと思います。
記事No | : 15736 |
投稿日 | : 2018/01/17(Wed) 14:12:03 |
タイトル | : Re^3: Web Calenの表示順位と自動リンクについて |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/term/term.php |
すみません。それほど簡単ではありませんでした。
さらにcalen.cgi 125行目あたりの
my $i = 0;
を
my $i = scalar(@{$log}) + 1;
と変更し、129行目あたりの
$i++;
を
$i--;
と変更してください。
記事No | : 15737 |
投稿日 | : 2018/01/17(Wed) 17:16:35 |
タイトル | : Re^4: Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi |
hirayamaさま
ご回答ありがとうございます。
ご教授の方法で新着記事の逆順表示は出来たのですが、その場合、記事の無い月へ行くと月次一括表示の部分(右側)にSoftware error: 〜(略)と表示されるようになりました。
また、左側カレンダーの下の入力フォームにカーソルを入れると年月選択のポップアップが開くのが開かなくなりました。
こちらを直すことは出来ますでしょうか?
記事No | : 15738 |
投稿日 | : 2018/01/17(Wed) 17:50:01 |
タイトル | : Re^5: Web Calenの表示順位と自動リンクについて |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/term/term.php |
失礼しました。$logが空の場合エラーが出て
処理が止まってしまっているようです。
print $head;
以下
foreach (@{$log}) {
までの部分を
my $i = 0;
if ($log) {
@{$log} = reverse(@{$log});
$i = scalar(@{$log})+1;
}
と変更してください。
記事No | : 15739 |
投稿日 | : 2018/01/17(Wed) 18:37:40 |
タイトル | : Re^6: Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi |
> print $head;
> 以下
> foreach (@{$log}) {
>
> までの部分を
>
> my $i = 0;
> if ($log) {
> @{$log} = reverse(@{$log});
> $i = scalar(@{$log})+1;
> }
>
> と変更
こちらを試しましたが、プログラム自体がエラーになってしまったので戻しました。
記事No | : 15740 |
投稿日 | : 2018/01/17(Wed) 19:48:17 |
タイトル | : Re^7: Web Calenの表示順位と自動リンクについて |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/term/term.php |
修正か所をまとめて記すと125行目から
my $i = 0;
foreach (@{$log}) {
my ($day,$sub,$msg,$ico,$wico,$img1,$img2,$img3) = split(/<>/);
$i++;
↓
my $i = 0;
if ($log) {
@{$log} = reverse(@{$log});
$i = scalar(@{$log})+1;
}
foreach (@{$log}) {
my ($day,$sub,$msg,$ico,$wico,$img1,$img2,$img3) = split(/<>/);
$i--;
です。
記事No | : 15741 |
投稿日 | : 2018/01/17(Wed) 21:04:06 |
タイトル | : Re^7: Web Calenの表示順位と自動リンクについて |
ID情報 | : Kanoko |
投稿者 | : かのん |
URL | : http://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi |
>hirayamaさま
ありがとうございます!
うまくいきました。
お手数をお掛けしました。