#!/usr/bin/perl
# Copyright (C) 2002-2003 Infotechnica Corporation, All rights reserved.
#use strict;
#use warnings;
#use lib '.';
##BEGIN{ unshift(@INC, '.'); }
#use CGI::Carp qw(fatalsToBrowser);
package main;
require './globals.pl';
require './mylibs.pl';
require './myfunc.pl';
$| = 1;
&main();
exit;
sub main {
%main::form_key = ( %main::form_key, %{ $main::formkeys{INVENTORY_DETAIL} } );
&mylibs::initialize();
&mylibs::getPathInfo();
&config::setConfigureData($main::ConfigFile);
&tables::getTableData();
&mylibs::getConnectInfo();
my $tpl_var = {};
$tpl_var = &tpl::makeBaseTplVariables($tpl_var);
my $content = '';
if ($main::ConfigData->{'SHOP-SHOP_OPENED'} == 1) {
my $form_data = &mylibs::getFormData();
my $session = {};
if ($main::isRunningImodeCGI) {
my $session_id = '';
$session_id = &mylibs::getFormValue($form_data, $main::form_key{SESSION_ID})
if &mylibs::isExistFormName($form_data, $main::form_key{SESSION_ID});
$session = &session::beginSession($session_id);
}
if (&mylibs::isExistFormValue($form_data, $main::form_key{MODE})) {
$tpl_var = &pages::setMacroVariables($tpl_var, $main::PageTpl{INVENTORY_IMAGES});
$tpl_var = &makeTplVariables($tpl_var, $session, $form_data);
$content = &pages::makePage($main::PageTpl{INVENTORY_IMAGES}, $tpl_var);
} else {
$tpl_var = &pages::setMacroVariables($tpl_var, $main::PageTpl{INVENTORY_DETAIL});
$tpl_var = &makeTplVariables($tpl_var, $session, $form_data);
$content = &pages::makePage($main::PageTpl{INVENTORY_DETAIL}, $tpl_var);
}
} else {
$tpl_var = &pages::setMacroVariables($tpl_var, $main::PageTpl{SHOP_CLOSED});
$content = &pages::makePage($main::PageTpl{SHOP_CLOSED}, $tpl_var);
}
my $regex = '()';
$content =~ s/$regex/$1$tpl_var->{REF_URL}$2/i;
my $VM = "\n";
$content =~ s/(<\/HEAD>)/$VM$1/i;
$content .= $VM;
&mylibs::outPage($content);
}
sub makeTplVariables {
my $tpl_var = shift;
my $session = shift;
my $form_data = shift;
$tpl_var->{SESSION_ID} = &sanitize::convANB($session->{SESSION_ID});
$tpl_var->{DISP_COLOR} = ($main::ConfigData->{'EXEC-DISP_COLOR'} != 0);
$tpl_var->{DISP_SIZE} = ($main::ConfigData->{'EXEC-DISP_SIZE'} != 0);
$tpl_var->{DISP_THUMB} = ($main::ConfigData->{'EXEC-DISP_THUMB'} != 0);
$tpl_var->{DISP_STATUS} = ($main::ConfigData->{'EXEC-DISP_STATUS'} == 1);
$tpl_var->{DISP_NOSTOCK} = ($main::ConfigData->{'EXEC-DISP_NOSTOCK'} != 1);
$tpl_var->{SHOP_USE_STOCK} = ($main::ConfigData->{'EXEC-STOCK_CONTROL'} == 1);
my $item_id = &sanitize::convANB(&mylibs::getFormValue($form_data, $main::form_key{ITEM_ID}));
if ($item_id eq '') {
$tpl_var->{VALID_ITEM} = (0);
return $tpl_var;
}
my $item_file = $item_id . $main::DataFileExt;
if (-e $main::ItemFilePath . $item_file) {
my ($itemData, $itemTable) = &config::getCtgItemConfigData($main::ItemFilePath, $item_file);
unless (exists($itemData->{'ITEM'})) {
$tpl_var->{VALID_ITEM} = (0);
return $tpl_var;
}
unless (&check::isItemAllowShow($item_id)) {
$tpl_var->{VALID_ITEM} = (0);
return $tpl_var;
}
my $stock = 0;
my $show_stock = '';
if ($main::ConfigData->{'EXEC-STOCK_CONTROL'} eq '1'
and $itemData->{'ITEM-USE_STOCK'} eq '1') {
$stock = &stock::getStock($item_id);
$show_stock = $stock;
} else {
$stock = 99999;
$show_stock = '';
}
if ($main::ConfigData->{'EXEC-DISP_NOSTOCK'} ne '1' and $stock == 0) {
$tpl_var->{VALID_ITEM} = (0);
return $tpl_var;
}
$tpl_var->{STOCK} = $show_stock;
if ($main::ConfigData->{'EXEC-TAX_INCLUDES_DECLARED'} == 1) {
$itemData->{'ITEM-ENTPRICE'} = $itemData->{'ITEM-TAXPRICE'};
$itemData->{'ITEM-TAX_DIV'} = 2;
}
$tpl_var->{item_id} = $item_id;
$tpl_var->{price} = &mylibs::formatNumber(&sanitize::convRealNum($itemData->{'ITEM-ENTPRICE'}));
$tpl_var->{item_name} = &sanitize::convHTML($itemData->{'ITEM-ITEM_NAME'});
$tpl_var->{tani} = &sanitize::convHTML($itemData->{'ITEM-TANI'});
# non sanitize (use html tags)
my $spec_thumb = $itemData->{'ITEM-SPEC_THUMB'};
if ($main::isRunningImodeCGI) {
$spec_thumb = &mylibs::removeHtmlTags($spec_thumb);
}
$spec_thumb =~ s/\x0D\x0A/
/g;
$spec_thumb =~ s/\x0D/
/g;
$spec_thumb =~ s/\x0A/
/g;
$tpl_var->{spec_thumb} = $spec_thumb;
my $spec = $itemData->{'ITEM-SPEC'};
if ($main::isRunningImodeCGI) {
$spec = &mylibs::removeHtmlTags($spec);
}
$spec =~ s/\x0D\x0A/
/g;
$spec =~ s/\x0D/
/g;
$spec =~ s/\x0A/
/g;
$tpl_var->{spec} = $spec;
#
$tpl_var->{sales_term} = $itemData->{'ITEM-SALES_TERM'};
$tpl_var->{stock_status} = &sanitize::convInteger($itemData->{'ITEM-STOCK'});
$tpl_var->{pic1} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE'});
$tpl_var->{pic2} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE2'});
$tpl_var->{pic3} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE3'});
$tpl_var->{pic4} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE4'});
$tpl_var->{picthumbnail} = &sanitize::convFileName($itemData->{'ITEM-PIC_THUMBNAIL'});
my $pic_count = 0;
if ($tpl_var->{pic1} ne '') {
$pic_count++;
}
if ($tpl_var->{pic2} ne '') {
$pic_count++;
}
if ($tpl_var->{pic3} ne '') {
$pic_count++;
}
if ($pic_count == 3) {
$tpl_var->{PIC3IS3RD} = (1);
$tpl_var->{PIC4IS3RD} = (0);
} elsif ($pic_count == 2 and $tpl_var->{pic4} ne '') {
$tpl_var->{PIC3IS3RD} = (0);
$tpl_var->{PIC4IS3RD} = (1);
} else {
$tpl_var->{PIC3IS3RD} = (0);
$tpl_var->{PIC4IS3RD} = (0);
}
# i-mode / J-SKY
if ($main::user_agent =~ /^J-PHONE/) {
# J-PHONE
$tpl_var->{PICM} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE_P'});
} else {
$tpl_var->{PICM} = &sanitize::convFileName($itemData->{'ITEM-PIC_FILE_I'});
}
$tpl_var->{item_ctg_id} = &sanitize::convANB($itemData->{'ITEM-CATEGORY_ID'});
$tpl_var->{item_ctg_id2} = &sanitize::convANB($itemData->{'ITEM-CATEGORY_ID2'});
if ($itemData->{'ITEM-CATEGORY_ID'} ne '') {
my $ctg_file = $itemData->{'ITEM-CATEGORY_ID'} . $main::DataFileExt;
if (-e $main::CtgFilePath . $ctg_file) {
my ($ctgData, $ctgTable) = &config::getCtgItemConfigData($main::CtgFilePath, $ctg_file);
if (exists($ctgData->{'CATEGORY'})) {
$tpl_var->{item_ctg_name} = &sanitize::convHTML($ctgData->{'CATEGORY-CATEGORY_NAME'});
}
}
}
if ($itemData->{'ITEM-CATEGORY_ID2'} ne '') {
my $ctg_file = $itemData->{'ITEM-CATEGORY_ID2'} . $main::DataFileExt;
if (-e $main::CtgFilePath . $ctg_file) {
my ($ctgData, $ctgTable) = &config::getCtgItemConfigData($main::CtgFilePath, $ctg_file);
if (exists($ctgData->{'CATEGORY'})) {
$tpl_var->{item_ctg_name2} = &sanitize::convHTML($ctgData->{'CATEGORY-CATEGORY_NAME'});
}
}
}
$tpl_var->{item_mark} = &sanitize::convInteger($itemData->{'ITEM-MARK'});
$tpl_var->{ZEIKOMI} = ($itemData->{'ITEM-TAX_DIV'} == 2);
$tpl_var->{ITEM_USE_STOCK} = ($itemData->{'ITEM-USE_STOCK'} == 1);
$tpl_var->{USE_STOCK} = ($main::ConfigData->{'EXEC-STOCK_CONTROL'} eq '1'
and $itemData->{'ITEM-USE_STOCK'} eq '1');
$tpl_var->{PAGE_TITLE} = &sanitize::convHTML($itemData->{'ITEM-PAGE_TITLE'});
if ($main::ConfigData->{'EXEC-STOCK_CONTROL'} eq '1'
and $itemData->{'ITEM-USE_STOCK'} eq '1') {
$tpl_var->{color_label} = '';
$tpl_var->{size_label} = '';
$tpl_var->{colorh} = '';
$tpl_var->{sizeh} = '';
} else {
$tpl_var->{color_label} = &sanitize::convHTML($itemData->{'ITEM-COLOR_LABEL'});
$tpl_var->{size_label} = &sanitize::convHTML($itemData->{'ITEM-SIZE_LABEL'});
my $colorh = '';
foreach ( split /\n/, $itemData->{'ITEM-COLOR'} ) {
my $cl = &sanitize::convHTML($_);
$colorh .= '\n";
}
$tpl_var->{colorh} = $colorh;
my $sizeh = '';
foreach ( split /\n/, $itemData->{'ITEM-SIZE'} ) {
my $sz = &sanitize::convHTML($_);
$sizeh .= '\n";
}
$tpl_var->{sizeh} = $sizeh;
}
my $item_id_str = $item_id;
$item_id_str =~ s/([^\w\=\& ])/'%' . unpack("H2", $1)/eg;
$tpl_var->{URL_ITEM_ID} = $item_id_str;
if (&mylibs::isExistFormValue($form_data, $main::form_key{CTG_ID})) {
my $ctg_id_str = &mylibs::getFormValue($form_data, $main::form_key{CTG_ID});
$ctg_id_str =~ s/([^\w\=\& ])/'%' . unpack("H2", $1)/eg;
$tpl_var->{URL_CTG_ID} = $ctg_id_str;
}
if (&mylibs::isExistFormValue($form_data, $main::form_key{SEARCH_QUERY})) {
my $query_uri = &mylibs::getFormValue($form_data, $main::form_key{SEARCH_QUERY});
$query_uri =~ s/([^\w\=\& ])/'%' . unpack("H2", $1)/eg;
$tpl_var->{QUERY_URI} = $query_uri;
}
if (&mylibs::isExistFormValue($form_data, $main::form_key{PAGE_NO})) {
$tpl_var->{CURRENT_PAGE} = &sanitize::convInteger(&mylibs::getFormValue($form_data, $main::form_key{PAGE_NO}));
}
$tpl_var->{VALID_ITEM} = (1);
} else {
$tpl_var->{VALID_ITEM} = (0);
}
($tpl_var->{LOOP_CTG_LIST}, $tpl_var->{VALID_LIST}) = &tpl::getCategoryList();
return $tpl_var;
}
sub _dummy {
undef %main::formkeys;
undef $main::ConfigFile;
undef $main::VERSION;
undef $main::user_agent;
}