-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathitem-list.cgi
127 lines (107 loc) · 3.79 KB
/
item-list.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
use utf8;
# アイテムリスト 2005/03/30 由來
# -------- 設定部分 ---------
# 閲覧設定
$listcheck=2; # アイテム紹介は0:店舗所有者しか見れない, 1:誰でも見れる, 2:管理者しか見れない(推奨)。
# プレイヤーには見せないアイテム(番号で指定)
# 指定例… $DENYITEM='25,86'; ←No.25と86を表示しない。
$DENYITEM='';
# プレイヤーが見るときの表示設定
$design_no=0; #アイテムNoを0:表示しない(推奨), 1:表示する。
$design_sale=0; #売れ行きを0:表示しない(推奨), 1:表示する。
$design_prof=1; #利益率を0:数値で表示, 1:5段階表示(推奨)。
$design_rank=1; #人気率を0:数値で表示, 1:5段階表示(推奨)。
$design_plus=1; #市場入荷を0:数値で表示, 1:○×で表示(推奨)。
# -------- 設定完了 ---------
DataRead();
CheckUserPass($listcheck);
$DENYITEM=','.$DENYITEM.',';
if ($MASTER_USER) {
$NOMENU=1;
$Q{bk}="none";
@NGItem=(0);
$design_no=1;
$design_sale=1;
$design_prof=0;
$design_rank=0;
$design_plus=0;
$disp.="<BIG>●".l('アイテムデータ')."</BIG><br><br>";
} else {
OutError('bad request') if ($listcheck == 2);
$disp.="<BIG>●".l('アイテム紹介')."</BIG><br><br>";
}
my $tp=int($Q{tp}+0);
undef %adminitemlist;
my($ITEM,$stock,$price,$mpl,$mph,$popular,$uppoint);
foreach my $no(1..$MAX_ITEM)
{
next if ($DENYITEM =~ /,$no,/);
$ITEM=$ITEM[$no];
next if ($ITEM->{type} != $tp)&&($tp != 0);;
$adminitemlist{$no}=$ITEM;
}
foreach my $cnt (0..$#ITEMTYPE)
{
$disp.=$cnt==$tp ? "[" : "<A HREF=\"action.cgi?key=item-list&$USERPASSURL&tp=$cnt\">";
$disp.=GetTagImgItemType(0,$cnt) if $cnt && !$MOBILE;
$disp.=$ITEMTYPE[$cnt];
$disp.=$cnt==$tp ? "]" :"</A>";
$disp.=" ";
}
$disp.="<br>";
my($page,$pagestart,$pageend,$pagenext,$pageprev,$pagemax)
=GetPage($Q{pg},$LIST_PAGE_ROWS,scalar(keys(%adminitemlist)));
$disp.=GetPageControl($pageprev,$pagenext,"tp=$tp","",$pagemax,$page);
$disp.=$TB;
$disp.=$TR;
$disp.=$TDB.l('No.') if $design_no;
$disp.=$TDB.l('商品名');
$disp.=$TDB.l('標準価格');
$disp.=$TDB.l('維持費');
$disp.=$TDB.l('売行') if $design_sale;
$disp.=$TDB.l('利益率');
$disp.=$TDB.l('人気率');
$disp.=$TDB.l('入荷');
$disp.=$TDB.l('説明');
$disp.=$TRE;
foreach my $ITEM ((sort{$a->{sort} <=> $b->{sort}} values(%adminitemlist))[$pagestart..$pageend])
{
my $itemno=$ITEM->{no};
$disp.=$TR;
$disp.=$TDNW.$itemno if $design_no;
$disp.=$TDNW;
$disp.=GetTagImgItemType($itemno).$ITEM->{name}."</A>";
$disp.=$TDNW.GetMoneyString($ITEM->{price});
$disp.=$TDNW.GetMoneyString($ITEM->{cost});
my $admin_item=int($ITEM->{popular}/$SALE_SPEED);
$disp.=$TDNW.($admin_item ? GetTime2HMS($admin_item) : "×") if $design_sale;
if ($design_prof) {
$disp.=$TDNW.($admin_item ? GetStarRank(int($ITEM->{price} *24*6*6/10 / $admin_item)) : "");
} else {
$disp.=$TDNW.($admin_item ? int($ITEM->{price} *24*6*6/10 / $admin_item) : "---");
}
if ($design_rank) {
$disp.=$TDNW.($admin_item ? GetStarRank(int($ITEM->{point} *24*6*6/10 / $admin_item)) : "");
} else {
$disp.=$TDNW.($admin_item ? int($ITEM->{point} *24*6*6/10 / $admin_item) : "---");
}
if ($ITEM->{plus} > 0) {
$disp.=($design_plus ? $TDNW."○" : $TDNW.GetTime2HMS($ITEM->{plus}));
} else { $disp.=$TDNW."×" }
$disp.=$TDNW."<small>".$ITEM->{info}."</small>";
$disp.=$TRE;
}
$disp.=$TBE;
$disp.=GetPageControl($pageprev,$pagenext,"tp=$tp","",$pagemax,$page);
OutSkin();
1;
sub GetStarRank #表示のカスタマイズ可能。
{
my($no)=@_;
my $flag='<font color="#cccc99">||</font>';
$flag.='<font color="#ddcc44">||</font>' if $no > 50;
$flag.='<font color="#ffcc00">||</font>' if $no > 90;
$flag.='<font color="#ff9900">||</font>' if $no > 120;
$flag.='<font color="#ff6600">||</font>' if $no > 180;
return $flag;
}