CGI サポートフォーラム

コメント返信ツリー表示一括表示リスト表示検索

質問をする前に、過去ログに同じ質問がないか検索してください。

■ 画像のサイズ取得及び,別窓の閉じ方法の指定
投稿者:yumeji さん  ( uid 26949, posts:3, since 2004/11/09 )
投稿日: 2004/11/09 (火) 18:23 No.604 | 編集 | 削除

お世話になります.α版を仕様させて頂いておりますv.
やっぱりものすごく使い勝手が良く重宝させて頂いております.
さて,此処で日記等にもご利用なさっている方が居ると知り,
カテゴリを有用して,画像と説明文等のみやすい配置へと,
HPでフレキシブルに使用してみたく,現在try中です.

お忙しい中失礼致しますが,下記機能2点をどうにか追加したいと思い,
方法をご教授願えればと書き込みさせていただきます.

1■画像サイズが指定したサイズより大きかったら
  別ウィンドウで表示したい
  (アップロードする画像サイズをどこかで取得しなければいけない

2■別ウィンドウで表示した画像を,クリックすると,
  ウィンドウが閉じる仕様にしたい.

現在test設置しているurl
http://the.celestial-palace.com/x/exit_t/exit.cgi
http://the.celestial-palace.com/x/exit_t/exit.cgi?mode=vew&id=1
mylib.pl--------------------------------------------以下参照
########### リンクデータ表示ルーチン
sub ShowLink {

my ($master, $bn, $new, $time, $sougo, $jx, @jx, @tmp_sub);

$time=time();
$sitename = " $linkdata->{'sitename'}";

if ($linkdata->{'master'}) {
$master = "<span class=\"submaster\"> $linkdata->{'master'} $keisho</span>";
} else {
$master = '';
}

if ($linkdata->{'banner'} eq "http://" || $linkdata->{'banner'} eq "" ) {
$bn = "${imgdir}nobanner.$ext";
} else {
$bn = "$linkdata->{'banner'}";
}

$bn = "<A href=\"javascript:void(0)\" onclick='openWi12(\"$linkdata->{'url'}\",\"Celestial\",500,400);return false' \"$target title=\"画像が別窓で開きます&#13;ウィンドウサイズは画像に合わせて&#13;ご自由にお変え下さい\"><img src=\"$bn\" border=0></a>";
$new="";
if ($time <= $linkdata->{'time'}+(60*60*24*$newd)) { $new = "<img src=\"${imgdir}new.$ext\">"; }

if ( $linkdata->{'sougo'} eq "on" ) { $sougo ="<img src=\"${imgdir}${sougo_image}\">";}

@jx=();
$jx="";

@tmp_sub = split (/\:/, $linkdata->{'subid'});
foreach (@tmp_sub) {
if($_ eq $in->{'subid'}) { next; }
$subdata = &GetSubCategory ($_);
push(@jx," <a href=\"$script?mode=vew&subid=$_\" class=\"tablefoot\"> $subdata->{'subname'} </a> :");
}
if (@jx) { $jx = "<tr class=\"tablefoot\"><td colspan=2 class\"tablefoot\"><span class=\"tablefoot\">OtherClass &gt; @jx</span></td></tr>"; }
---------------------------------------------以上参照以下省略

現在,とむやむくんの右クリック禁止と,別窓表示を外部ファイルで利用しておりますがが,上2点の希望項目には,cgiでの設定が必要らしく,
ご教授願えれば幸いです.


→Gallery用cgiなのですが,上記希望追加機能が含まれています.
 http://the.celestial-palace.com/x/galle/gallery.cgi?mode=view&no=26
--view書出部分-------------------------------------------以下一部参照
sub view {
if ($html_flag != 1) {
open(FILE, "$log_file") || &error("ログファイルを読み出せません");
@logs = <FILE>;
close(FILE);

foreach (@logs) {
($no, $date, $subj, $text, $detail, $field, $file, $img, $code) = split(/\t/);
if ($in{'no'} == $no) {
last;
}
}

}

$prev_no = -1;
$next_no = -1;
$flag = 0;
foreach (@logs) {
($tmp_no, $temp_field) = (split(/\t/))[0, 5];
if ($field eq $temp_field) {
if ($flag == 1) {
$prev_no = $tmp_no;
last;
}
if ($no == $tmp_no) {
$flag = 1;
}
if ($flag == 0) {
$next_no = $tmp_no;
}
}
}

if ($img_new == 1) {
($sec, $min, $hour, $day, $mon, $year, $week) = localtime(time());
$today = sprintf("%04d%02d%02d", $year + 1900, $mon + 1, $day);

if ($new_date != 0 && $thumbnail_new == 1 && $today - $date < $new_date) {
$new = $new_mark;
} else {
$new = '';
}
}

if ($date =~ /^(\d\d\d\d)(\d\d)(\d\d)$/) {
$year = sprintf("%04d", $1);
$month = sprintf("%02d", $2);
$day = sprintf("%02d", $3);

$date = "$year / $month / $day ";
}

if ($detail ne '') {
$text = $detail;
}
if ($auto_link == 1) {
$text = &auto_link($text);
}

if ($return_link == 1) {
$back = qq|<a href="javascript:history.back()" onmouseover="return window.status='戻る'" onmouseout="return window.status=''">back</a>|;
} else {
if ($html_flag == 1) {
$link = "./";
} else {
$link = "$script";
}
$back = qq|<a href="$link">back</a>|;
}
if ($file ne '' && -e "$upfile_dir$file") {
$file =~ /[^\/\\]*\.([^.\/\\]*)$/;
$ext = ".$1";
$file_info = '';
$file_size = &comma(int((stat("$upfile_dir$file"))[7] / 1024)) . 'KB /';
if ($ext eq '.gif' || $ext eq '.jpeg' || $ext eq '.jpg' || $ext eq '.jpe' || $ext eq '.png') {
open(IMG, "$upfile_dir$file");
binmode(IMG);
if ($ext eq '.gif') {
($img_width, $img_height) = &gifsize(*IMG);
} elsif ($ext eq '.jpeg' || $ext eq '.jpg' || $ext eq '.jpe') {
($img_width, $img_height) = &jpegsize(*IMG);
} elsif ($ext eq '.png') {
($img_width, $img_height) = &pngsize(*IMG);
}
if ($img_width > $img_max_width) {
$org_img_width = $img_width;
$org_img_height = $img_height;

$miniwindow_width = $org_img_width + ($miniwindow_margin * 2);
$miniwindow_height = $org_img_height + ($miniwindow_margin * 2);

$img_link_begin = qq|<a href="javascript:void(0)" onClick="window.open('$script?mode=img&file=$file&width=$org_img_width&height=$org_img_height', 'Img', 'width=$miniwindow_width,height=$miniwindow_height')" onmouseover="return window.status='別ウインドウで拡大表\示'" onmouseout="return window.status=''">|;
$img_link_end = '</a>';

$img_height = int($img_height / ($img_width / $img_max_width));
$img_width = $img_max_width;
} else {
$img_link_begin = '';
$img_link_end = '';
}
$work = qq|$img_link_begin<img src="$upfile_url$file" alt="$subj" width="$img_width" height="$img_height">$img_link_end\n|;
} else {
$flag = 0;
foreach $icon_img (@icon_img) {
if ($flag == 1) {
$mini = qq|<img src="$icon_img" alt="$subj" border="0">|;
last;
}
if ($ext eq $icon_img) {
$flag = 1;
}
}
if ($flag == 0) {
$mini = '■';
}
$work = qq|<a href="$upfile_url$file">$mini $file</a> [${file_size}KB]\n|;
}
} else {
$work = '';
$file_size = '';
}

&header();
&title();

$prev = '&lt;&lt; back';
$next = 'next &gt;&gt;';

if ($prev_no != -1) {
if ($html_flag == 1) {
$link = "./$prev_no$html_ext";
} else {
$link = "$script?mode=view&no=$prev_no";
}
$prev = qq|<a href="$link">$prev</a>|;
}
if ($next_no != -1) {
if ($html_flag == 1) {
$link = "./$next_no$html_ext";
} else {
$link = "$script?mode=view&no=$next_no";
}
$next = qq|<a href="$link">$next</a>|;
}

if ($work ne '') {
print qq|<p><div align="center">$work</div></p>\n|;
} else {
print '<br>';
}

print <<"_HTML_";
<div class="navi">$prev / $back / $next</div>
<br>
<p class="log">
<table class="log_table">
<tr>
<td class="log_table_head">■ <strong>$subj</strong> $new</td>
</tr>
<tr>
<td class="log_table_data">
<br>
<table width="100%">
<tr>
<td class="log_table_indent">&nbsp;</td>
<td>$text</td>
<td class="log_table_indent">&nbsp;</td>
</tr>
</table>
<br>
<div align="right">$file_size $field / $date</div>
</td>
</tr>
</table>
</p>
<div class="navi">$prev / $back / $next</div>
<br>
<hr>
--他省略-------------------------------------------以上一部参照
■勿論上記cgiのソース一部流用の際には,上記cgi配布先様の著作権表記を追記させていただきます.

■どうぞ御願いいたします
お忙しいとは存じますが,どうぞ宜しく御願いいたします(ぺこり.

[ この記事にコメントを返信する ] [ 原文引用 ]

[ この記事をツリー表示する ]

- TOP -

管理者:webmaster
NICOLE's - WWWForum 3.7c  Modified by masaya
Catch: Thu Apr 18 10:03:03 2024
[jcode.pl:679:warn] defined(%hash) is deprecated at lib/jcode.pl line 679.
[jcode.pl:679:warn] (Maybe you should just omit the defined()?)
[jcode.pl:688:warn] defined(%hash) is deprecated at lib/jcode.pl line 688.
[jcode.pl:688:warn] (Maybe you should just omit the defined()?)

/wwwforum/wwwforum.cgi?id=11&az=msg&number=604&page=1 with Perl 5.016003 for freebsd