KENT-WEB サポートコーナー 過去ログ [ 0038 ]


記事No: 15730
投稿日: 2018/01/16(Tue) 16:11:30
タイトルWeb Calenの表示順位と自動リンクについて
ID情報: Kanoko
投稿者: かのん
URLhttp://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
URLhttp://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-.!~*'();\/?:\@=+\$,%#]|&amp;)+)/<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
投稿者: かのん
URLhttp://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
投稿者: かのん
URLhttp://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi

度々恐縮です。

新着記事の順位も逆順に(新着が下に表示されるように)変更する方法もお教えいただけましたら幸いです。
よろしくお願いいたします。


記事No: 15735
投稿日: 2018/01/17(Wed) 13:01:25
タイトルRe^2: Web Calenの表示順位と自動リンクについて
ID情報: hirayama
投稿者: hirayama
URLhttp://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
URLhttp://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
投稿者: かのん
URLhttp://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
URLhttp://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
投稿者: かのん
URLhttp://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
URLhttp://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
投稿者: かのん
URLhttp://dp23254268.lolipop.jp/yutaka2/sche/sche.cgi

>hirayamaさま
ありがとうございます!
うまくいきました。
お手数をお掛けしました。


[検索ページ]