Interchange Reference Pages: Global and catalog variables


For a complete introduction to Interchange variables, please see the variable glossary entry.

Table of Contents

ACTIVE_SESSION_MINUTES — specify maximum session age for [dump-session]
BACKUP_DIRECTORY — specify directory used to dump database backups
BASKET_EXPIRY
BREADCRUMB_EXCLUDE
BREADCRUMB_MAX
BREADCRUMB_ONLY_LAST
CAPTCHA_IMAGE_LOCATION — specify directory containing generated "captcha" images
CAPTCHA_IMAGE_PATH — specify web server path containing "captcha" images
CAPTCHA_IMAGE_SUBDIR — specify subdirectory containing "captcha" images
CAPTCHA_UMASK
CAT_ROOT
CGIWRAP_WORKAROUND — fix Cobalt CGIWrap problem
COMPANY — specify company or entity name
CONTINUE_SHOPPING_URL
CONTRAST
CREDIT_CARDS_ACCEPTED
CSS_CONTRAST — CSS class to designate problems
CYBER_ID — specify ID for communication with selected payment gateways
CYBER_PRECISION — specify precision to be used with selected payment gateways
CYBER_SECRET — (partly documented)
CYBER_SERVER — (partly documented)
DEBUG — enable Interchange debugging
DESCRIPTIONFIELDS
DOCROOT — filesystem path to catalog's document root
ECHO_PAYMENT_DEBUG
ECHO_PAYMENT_ID — (partly documented)
ECHO_PAYMENT_ISP_ECHO_ID
ECHO_PAYMENT_ISP_PIN
ECHO_PAYMENT_MERCHANT_EMAIL
ECHO_PAYMENT_ORDER_TYPE
ECHO_PAYMENT_PRECISION — (partly documented)
ECHO_PAYMENT_SECRET — (partly documented)
ECHO_PAYMENT_SERVER — (partly documented)
EDIT_BASKET_URL
FORUM_ANON_NAME
GCOCMD_URL
GCOIPN_URL
GIFT_CERT_COUNTER
GIFT_CERT_LOCK_TABLE
GIFT_CERT_REDEEM_TABLE
GIFT_CERT_TABLE
GPG_PATH — location of the gpg program
HEADERBG
HEADERTEXT
HTMLAREA_FLAVOUR — selects rich text editor flavour
HTMLAREA_LANG
HTMLAREA_PATH
IMAGEFIELDS
IMAGE_DIR — (obsolete)
IMAGE_MOGRIFY — specify path to the ImageMagick mogrify command
LANG — contains the current locale for language (localization) display
LINE
MV_AUTOLOAD — (partly documented)
MV_BAD_LOCK — work around a problem in systems with broken locking mechanism
MV_COMPONENT_CACHE
MV_COMPONENT_DIR — (partly documented)
MV_COMPONENT_TABLE — database name for components
MV_COUNTRY_FIELD — name of form field whose value will be used as key to perform lookup in the MV_COUNTRY_TABLE
MV_COUNTRY_TABLE — name of database containing countries, country codes, etc.
MV_COUNTRY_TAX_FIELD — name of column containing country-wide tax information
MV_COUNTRY_TAX_VAR
MV_CREDIT_CARD_INFO_TEMPLATE
MV_DEFAULT_LINK_CLASS
MV_DEFAULT_MATCHLIMIT — specifies the number of search results per page
MV_DEFAULT_SEARCH_DB — (partly documented)
MV_DEFAULT_SEARCH_FILE — (partly documented)
MV_DEFAULT_SEARCH_TABLE — (partly documented)
MV_DHTML_BROWSER — regular expression matching HTTP user agents with DHTML support
MV_DOLLAR_ZERO — control visual display of Interchange processes in the process list
MV_EMAIL_CHARSET
MV_EMAIL_INTERCEPT — intercept all outgoing email and redirect it to the specified address
MV_ERROR_STD_LABEL — (partly documented)
MV_FILE — contains the name of the last file read or of an external Perl routine
MV_FORTUNE_COMMAND — location of the Unix fortune program
MV_GETPPID_BROKEN — fix getppid() which is broken on Linux systems with thread-enabled Perl
MV_HELO — the HELO string to send when using SMTP to send mail
MV_HTML4_COMPLIANT — output HTML4-compliant HTML code
MV_HTTP_CHARSET
MV_MAILFROM — specifies the default sender e-mail address when SMTP is used to send mail
MV_MENU_DIRECTORY — directory for menu files
MV_NO_CRYPT disable the use of password encryption server-wide
MV_ONFLY_FIELDS
MV_ONFLY_JOINER
MV_OPTION_TABLE — name of database for product options
MV_OPTION_TABLE_MAP — applies column mapping to all options types
MV_OPTION_TABLE_SIMPLE
MV_ORDER_COUNTER_FILE
MV_PAGE — contains the relative pathname of the current page
MV_PAYMENT_BILLING_INDICATOR
MV_PAYMENT_BILLING_SET
MV_PAYMENT_CURRENCY — currency for payment gateway
MV_PAYMENT_HOST
MV_PAYMENT_ID — specifies merchant identifier
MV_PAYMENT_MODE — payment gateway mode name
MV_PAYMENT_OTHER_CARD
MV_PAYMENT_PRECISION — (partly documented)
MV_PAYMENT_PSP
MV_PAYMENT_SECRET — password for the payment gateway
MV_PAYMENT_SERVER — hostname or IP of the payment gateway
MV_PAYMENT_TRANSACTION
MV_PREV_PAGE — contains the relative pathname of the last page read
MV_SEARCH_FILE
MV_SESSION_ID
MV_SESSION_READ_RETRY — specifies the number of times to retry reading the session file
MV_SHIP_ADDRESS_TEMPLATE — (partly documented)
MV_SHIP_MODIFIERS
MV_SMTPHOST — specifies the default sender hostname when SMTP is used to send mail
MV_SMTP_TIMEOUT
MV_STATE_REQUIRED
MV_STATE_TABLE — name of database containing state, country and province information
MV_STATE_TAX_FIELD — name of column containing state-wide tax information
MV_SUBJECT — (partly documented)
MV_TAX_CATEGORY_FIELD — name of column containing enumerated tax types, based on product category
MV_TAX_TYPE_FIELD — name of column containing enumerated tax names
MV_TRACK_ADMIN
MV_TREE_TABLE — database name for tree menus
MV_USERDB_ACL_COLUMN
MV_USERDB_ACL_TABLE
MV_USERDB_REMOTE_USER — (partly documented)
MV_UTF8
MV_VALID_PROVINCE — (partly documented)
MV_VALID_STATE — (partly documented)
MV_VARIANT_JOINER
MV_ZIP_REQUIRED
ORDERS_TO
PACAKGE
PAGE
PAGE_TITLE_NAME — (partly documented)
PRI_ID
PRI_REFID_MODE
PRI_REGKEY
PRI_TEST_ID
PRI_TEST_MODE
PRI_TEST_REGKEY
RECEIPT_URL
SECURE_SERVER
SERVER_NAME — (partly documented)
SHIP_DEFAULT_ZIP
SQLDSN — default DSN string used for SQL database connections
SURVEY_LOG_DIR — directory to store survey results
TAXCOUNTRY — (partly documented)
TAXHANDLING
TAXRATE — key=value pairs used for taxing calculation
TAXSHIPPING — list of geographical identifiers for which taxing is applied
TRUSTCOMMERCE_ACTION
TRUSTCOMMERCE_AVS
TRUSTCOMMERCE_ID
TRUSTCOMMERCE_SECRET
TRUSTCOMMERCE_TEST
UI_ACCESS_KEY_LIMIT — (partly documented)
UI_ACCESS_TABLE — (partly documented)
UI_BASE — specify relative system path to the admin interface files
UI_COMPONENT_DIR
UI_COMPONENT_TABLE
UI_DATE_BEGIN — default first year for date widget
UI_DATE_END — default last year for date widget
UI_ERROR_PAGE — (partly documented)
UI_IMAGE_DIR — specify web server path to the admin interface images and CSS
UI_ITEM_TABLES
UI_LARGE_TABLE — (partly documented)
UI_META_LINK — toggle UI meta link display
UI_META_SELECT
UI_META_TABLE — name of the metadata table
UI_PAGE_DIR
UI_PAGE_TABLE
UI_REGION_DIR
UI_SECURE — force UI into secure mode
UI_SECURITY_OVERRIDE — (partly documented)
UI_TEMPLATE_DIR — location of the admin templates
UI_TEMPLATE_TABLE
UI_T_ROW_EVEN
UI_USER_MERGE_TABLES
UI_USER_MERGE_USER_TABLE
UPS_CACHE_EXPIRE
UPS_COUNTRY_FIELD
UPS_COUNTRY_REMAP — (partly documented)
UPS_ORIGIN — (partly documented)
UPS_POSTCODE_FIELD
UPS_QUERY_MODULO — (partly documented)
USPS_CONTAINER
USPS_ID
USPS_MACHINABLE
USPS_MAILTYPE
USPS_MODULO
USPS_ORIGIN
USPS_PASSWORD
USPS_SIZE
USPS_URL
VISIT_TIMEOUT — time after which user request is treated as new visit

Name

ACTIVE_SESSION_MINUTES — specify maximum session age for [dump-session]

SYNOPSIS

minutes

DESCRIPTION

This variable specifies the maximum session age in minutes and is used only by the dump_session tag.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

This variable only accepts input specified in minutes.

AVAILABILITY

ACTIVE_SESSION_MINUTES is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/dump_session.coretag
Line 41 (context shows lines 31-45 in show_part():14)

my ($name, $opt) = @_;
my $joiner = $opt->{joiner} || ' ';
return "Cannot dump or find sessions with session type $Vend::Cfg->{SessionType}."
  if ($Vend::Cfg->{SessionType} ne 'File' && $Vend::Cfg->{SessionType} ne 'DBI');


if ($Vend::Cfg->{SessionType} eq 'File') {
  if($opt->{find}) {
    require File::Find;
    my $expire = $Vend::Cfg->{SessionExpire};
    if( int($::Variable->{ACTIVE_SESSION_MINUTES}) ) {
      $expire = $::Variable->{ACTIVE_SESSION_MINUTES} * 60;
    }
    my $now = time();
    $expire = $now - $expire;

Source: code/UI_Tag/dump_session.coretag
Line 78 (context shows lines 68-82 in show_part():14)

      $out = Vend::Util::uneval($ref);
    };
    return uneval($ref) if $@;
    return $out;
  }
}

if ($Vend::Cfg->{SessionType} eq 'DBI') {
  if($opt->{find}) {
    my $expire = $Vend::Cfg->{SessionExpire};
    if( int($::Variable->{ACTIVE_SESSION_MINUTES}) ) {
      $expire = $::Variable->{ACTIVE_SESSION_MINUTES} * 60;
    }
    my $now = time();
    $expire = $now - $expire;

SEE ALSO


Name

BACKUP_DIRECTORY — specify directory used to dump database backups

SYNOPSIS

{ path }

DESCRIPTION

This variable will override the path where the database backups are to be dumped.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

BACKUP_DIRECTORY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/backup_database.coretag
Line 16 (context shows lines 6-20)

# (at your option) any later version.  See the LICENSE file for details.

UserTag backup-database Order    tables
UserTag backup-database AddAttr
UserTag backup-database Version  1.11
UserTag backup-database Routine  <<EOR
sub {
my ($tables, $opt) = @_;
my (@tables) = grep /\S/, split /['\s\0]+/, $tables;
my $backup_dir =  $opt->{dir}
          || $::Variable->{BACKUP_DIRECTORY}
          || "$Vend::Cfg->{VendRoot}/backup";
my $gnum   = $opt->{gnumeric};
my $agg = "$backup_dir/DBDOWNLOAD.all";


SEE ALSO


Name

BASKET_EXPIRY

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

BASKET_EXPIRY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 413 (context shows lines 403-417 in googlecheckout():399)

my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
$editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};
my $gcoipn_url  = charge_param('gcoipn_url') || $::Variable->{GCOIPN_URL};
my $gcocmd_url  = charge_param('gcocmd_url') || $::Variable->{GCOCMD_URL}; \
 \
 \
 \
 \
 # from IC admin panel, not from GCO
my $chargecard  = $::Values->{charge_card} || charge_param('charge_card') || '1';
my $basket_expiry = charge_param('basket_expiry') || $::Variable->{BASKET_EXPIRY} || '1 month';
my $default_taxrate = $::Values->{default_taxrate} || charge_param('default_taxrate') || '0.00';
my $reduced_taxrate = $::Values->{reduced_taxrate} || charge_param('reduced_taxrate') || '0.00';
 my $taxratefield     = charge_param('taxrate_field') || 'taxrate';
 my $reduced_taxfield = charge_param('reduced_tax_field') || 'reduced';

SEE ALSO


Name

BREADCRUMB_EXCLUDE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

BREADCRUMB_EXCLUDE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/breadcrumbs.tag
Line 18 (context shows lines 8-22)

# $Id: breadcrumbs.tag,v 1.5 2007-08-09 13:40:53 pajamian Exp $

UserTag breadcrumbs Order number
UserTag breadcrumbs addAttr
UserTag breadcrumbs Routine <<EOR
sub {
my ($number, $opt) = @_;

use vars qw/$Tag $Scratch $CGI $Session $Variable/;
my $only_last = $::Variable->{BREADCRUMB_ONLY_LAST} || 'ord/basket login';
my $exclude   = $::Variable->{BREADCRUMB_EXCLUDE};
my $max   = $number || $::Variable->{BREADCRUMB_MAX} || 6;

my %exclude;
my %only_last;

SEE ALSO


Name

BREADCRUMB_MAX

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

BREADCRUMB_MAX is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/breadcrumbs.tag
Line 19 (context shows lines 9-23)


UserTag breadcrumbs Order number
UserTag breadcrumbs addAttr
UserTag breadcrumbs Routine <<EOR
sub {
my ($number, $opt) = @_;

use vars qw/$Tag $Scratch $CGI $Session $Variable/;
my $only_last = $::Variable->{BREADCRUMB_ONLY_LAST} || 'ord/basket login';
my $exclude   = $::Variable->{BREADCRUMB_EXCLUDE};
my $max   = $number || $::Variable->{BREADCRUMB_MAX} || 6;

my %exclude;
my %only_last;


SEE ALSO


Name

BREADCRUMB_ONLY_LAST

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

BREADCRUMB_ONLY_LAST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/breadcrumbs.tag
Line 17 (context shows lines 7-21)

# 
# $Id: breadcrumbs.tag,v 1.5 2007-08-09 13:40:53 pajamian Exp $

UserTag breadcrumbs Order number
UserTag breadcrumbs addAttr
UserTag breadcrumbs Routine <<EOR
sub {
my ($number, $opt) = @_;

use vars qw/$Tag $Scratch $CGI $Session $Variable/;
my $only_last = $::Variable->{BREADCRUMB_ONLY_LAST} || 'ord/basket login';
my $exclude   = $::Variable->{BREADCRUMB_EXCLUDE};
my $max   = $number || $::Variable->{BREADCRUMB_MAX} || 6;

my %exclude;

SEE ALSO


Name

CAPTCHA_IMAGE_LOCATION — specify directory containing generated "captcha" images

SYNOPSIS

directory_name

DESCRIPTION

The variable specifies a directory where the generated captcha image files should be saved to.

This directory must also be available as a web server location.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable CAPTCHA_IMAGE_LOCATION __DOCROOT__/images/captcha/

NOTES

AVAILABILITY

CAPTCHA_IMAGE_LOCATION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/captcha.coretag
Line 50 (context shows lines 40-54)

$opt->{length} ||= 4;
my $en = $opt->{error_name} || 'captcha';

my $subdir = $opt->{image_subdir}
     || $::Variable->{CAPTCHA_IMAGE_SUBDIR}
     || 'captcha';
my $tmpdir = "$Vend::Cfg->{ScratchDir}/$subdir";

mkdir($tmpdir) unless -d $tmpdir;

my $imgdir = $opt->{image_location} || $::Variable->{CAPTCHA_IMAGE_LOCATION};

unless ($imgdir ) {
  if(! $Global::NoAbsolute and $::Variable->{DOCROOT}) {
     $imgdir = "$::Variable->{DOCROOT}$::Variable->{IMAGE_DIR}/$subdir";


Name

CAPTCHA_IMAGE_PATH — specify web server path containing "captcha" images

SYNOPSIS

location

DESCRIPTION

The variable specifies a web server location where the generated captcha image files are found, and from where they can be requested by clients.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable CAPTCHA_IMAGE_PATH /images/captcha/

NOTES

AVAILABILITY

CAPTCHA_IMAGE_PATH is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/captcha.coretag
Line 62 (context shows lines 52-66)

unless ($imgdir ) {
if(! $Global::NoAbsolute and $::Variable->{DOCROOT}) {
$imgdir = "$::Variable->{DOCROOT}$::Variable->{IMAGE_DIR}/$subdir";
}
else {
  $imgdir = "images/$subdir";
 }
 }

 my $imgpath = $opt->{image_path}
        || $::Variable->{CAPTCHA_IMAGE_PATH}
        || "$::Variable->{IMAGE_DIR}/$subdir";

 
 my $captcha = Authen::Captcha->new(


Name

CAPTCHA_IMAGE_SUBDIR — specify subdirectory containing "captcha" images

SYNOPSIS

subdirectory_name

DESCRIPTION

The variable specifies just a subdirectory name where the generated captcha image are to be saved, and from where they can be requested by clients.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable CAPTCHA_IMAGE_SUBDIR captcha/

NOTES

AVAILABILITY

CAPTCHA_IMAGE_SUBDIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/captcha.coretag
Line 44 (context shows lines 34-48)

$func =~ s/[^a-z]+//g;
my $result = '';
if($func eq 'code') {
  $result = $Vend::Session->{captcha};
}

$opt->{length} ||= 4;
my $en = $opt->{error_name} || 'captcha';

my $subdir = $opt->{image_subdir}
       || $::Variable->{CAPTCHA_IMAGE_SUBDIR}
       || 'captcha';
my $tmpdir = "$Vend::Cfg->{ScratchDir}/$subdir";

mkdir($tmpdir) unless -d $tmpdir;


Name

CAPTCHA_UMASK

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CAPTCHA_UMASK is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/captcha.coretag
Line 102 (context shows lines 92-106)

  }
  elsif($status == -3) {
    $Tag->error( { name => $en, set => "Code doesn't match" });
    return 0;
  }
}
else {
  # Used for [captcha-refresh] if requested
  $::Instance->{last_captcha_build_opt} = { %$opt };

    my $save_u = umask($::Variable->{CAPTCHA_UMASK} || 2);

  if($opt->{reset}) {
    undef $Vend::Captcha;
    delete $Vend::Session->{captcha};

SEE ALSO


Name

CAT_ROOT

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CAT_ROOT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 402 (context shows lines 392-406 in googlecheckout():399)


}

package Vend::Payment;
use strict;
my ($gcourl,$merchantid,$merchantkey,$gcoserver,$xmlOut, $taxrate, $state, \
 \
 $header, $gcorequest, $actual, $orderID);

sub googlecheckout {
my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;

SEE ALSO


Name

CGIWRAP_WORKAROUND — fix Cobalt CGIWrap problem

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

The variable controls the behavior of the Cobalt CGIwrap problem work-around code. When set, causes the script name to be removed from the URL pathinfo.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Turn on the workaround code

Add the following to interchange.cfg:

Variable CGIWRAP_WORKAROUND 1

NOTES

AVAILABILITY

CGIWRAP_WORKAROUND is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Dispatch.pm
Line 917 (context shows lines 907-921 in adjust_cgi():882)

  $host = $Global::IpQuad == 0 ? 'nobody' : '';
  my @ip;
  @ip = split /\./, $CGI::ip;
  $CGI::ip = '';
  $CGI::ip = join ".", @ip[0 .. ($Global::IpQuad - 1)] if $Global::IpQuad;
}
#
# end AOL fix

# Fix Cobalt/CGIwrap problem
  if($Global::Variable->{CGIWRAP_WORKAROUND}) {
      $CGI::path_info =~ s!^$CGI::script_name!!;
  }

  $CGI::host = $host || $CGI::ip;

SEE ALSO


Name

COMPANY — specify company or entity name

SYNOPSIS

name

DESCRIPTION

The variable specifies company or entity name to display in appropriate contexts.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable COMPANY Interchange Development Group

NOTES

AVAILABILITY

COMPANY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 1225 (context shows lines 1215-1229 in readin():1137)

  if(-f "$dir/.autoload") {
    my $status = ::interpolate_html( readfile("$dir/.autoload") );
    $status =~ s/\s+//g;
    undef $level if $status;
  }
  $gate = check_gate($file,$dir)
    if defined $level;
}

if( defined $level and ! check_security($file, $level, $gate) ){
  my $realm = $::Variable->{COMPANY} || $Vend::Cat;
  if(-f "$try/violation$suffix") {
    $fn = "$try/violation$suffix";
  }
  else {

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 936 (context shows lines 926-940 in googlecheckout():399)

     $sth = $dbh->prepare("UPDATE transactions SET txtype='GCO - $gco_financial_state', \
 gco_fulfillment_state='$gco_fulfillment_state',gco_timestamp='$gco_timestamp' \
 WHERE gco_order_number='$gco_order_number'");
         }
     $sth->execute() or die errmsg("Cannot update transactions tbl for \
 gco '$gco_order_number'") unless defined $::Values->{mv_order_number};
#::logDebug(":GCO:".__LINE__.": gco_finstate=$gco_financial_state; txtype=$txtype; \
 neworderno=$new_order_no; pID=$purchaseID");     
     }

my ($mailout, $finstatus);

if ($gco_financial_state =~ /PAYMENT_DECLINED/i) {
      $mailout = <<EOM;
Card payment for Google Order number $gco_order_number from $::Variable->{COMPANY}, \
 $order_total, was
declined by your bank. Please use an alternative means of payment if you \
 wish to proceed with this order.
EOM
  $finstatus = "declined by your bank";
  }

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 943 (context shows lines 933-947 in googlecheckout():399)


if ($gco_financial_state =~ /PAYMENT_DECLINED/i) {
    $mailout = <<EOM;
Card payment for Google Order number $gco_order_number from $::Variable->{COMPANY}, \
 \
 $order_total, was
declined by your bank. Please use an alternative means of payment if you \
 \
 wish to proceed with this order.
EOM
$finstatus = "declined by your bank";
}
elsif ($gco_financial_state =~ /CANCELLED/i) {
    $mailout = <<EOM;
Google Order number $gco_order_number from $::Variable->{COMPANY} has been cancelled.
EOM
  $finstatus = "cancelled";
  }


Source: lib/Vend/Payment/iTransact.pm
Line 222 (context shows lines 212-226 in itransact():217)


}

package Vend::Payment;

sub itransact {
my ($opt, $amount) = @_;

my $user = $opt->{id} || charge_param('id');

my $company = $opt->{company} || "$::Variable->{COMPANY} Order";

my %actual;
if($opt->{actual}) {
  %actual = %{$opt->{actual}};

Source: lib/Vend/Payment/Protx2.pm
Line 569 (context shows lines 559-573 in protx():525)

    ::logError("%s: using logdir %s instead of disallowed %s", __PACKAGE__, \
 $default_logdir, $logdir);
    $logdir = $default_logdir;
}
$logdir = Vend::File::make_absolute_file($logdir);

my $logzero    = charge_param('logzero')    || 'no';
my $available  = charge_param('available')  || 'no';
my $logempty   = $::Values->{logempty} || charge_param('logempty') || 'no';
my $double_pay = $::Values->{double_pay} || charge_param('double_pay') || 'no';
my $findcard   = charge_param('find_card_type') || 'no'; # yes for \
 auto, page for input, no for IC
my $description = charge_param('description') || $::Variable->{COMPANY};
$description = substr($description,0,99);
my $applyAVSCV2 = $::Values->{applyavscv2} || charge_param('applyavscv2') || '0';

# if payment is logged as made, raise an error message and exit

Source: lib/Vend/Payment/SagePay.pm
Line 1133 (context shows lines 1123-1137 in sagepay():576)

for my $line (split /\r\n/, $page) {
    $result{VPSTxID}    = $1 if ($line =~ /VPSTxId=(.*)/i);
    $result{Authorised} = $1 if ($line =~ /^Authorised=(.*)/i);
    $result{TxAuthNo}   = $1 if ($line =~ /VPSAuthCode=(.*)/i);
      }
#::logDebug("SP".__LINE__.": checkstatus,result=$result{Authorised}; authcode=$result{VPSAuthCode}; \
 vtxcode=$vendorTxCode"); 

   unless ($result{Authorised} =~ /YES/i) {
my $unknown = <<EOF;
ATTENTION: our payment processor has met an unexpected problem and we do not know if payment has
been taken or not. Please check back with $::Variable->{COMPANY} on $::Variable->{PHONE}, \
 quoting this 
important reference point:
<p>
VendorTxCode:  $::Session->{sagepay}{vendorTxCode}
<p>

Source: dist/standard/config/breadcrumbs.tag
Line 119 (context shows lines 109-123)

      key => $record->{category},
      title => $record->{category},
      description => undef,
      url => $Tag->area({ search => join "\n", @parms }),
    };
  }
}

if(! $ptitle) {
  $ptitle = $Scratch->{page_title};
  $ptitle =~ s/(\s*\W+\s*)?$Variable->{COMPANY}(\s*\W+\s*)?//;
}

$ptitle =~ s/^\s+//;
$ptitle =~ s/\s+$//;

SEE ALSO


Name

CONTINUE_SHOPPING_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CONTINUE_SHOPPING_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 408 (context shows lines 398-412 in googlecheckout():399)


sub googlecheckout {
my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
   $editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};
my $gcoipn_url  = charge_param('gcoipn_url') || $::Variable->{GCOIPN_URL};
my $gcocmd_url  = charge_param('gcocmd_url') || $::Variable->{GCOCMD_URL}; \
 # from IC admin panel, not from GCO
my $chargecard  = $::Values->{charge_card} || charge_param('charge_card') || '1';

SEE ALSO


Name

CONTRAST

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CONTRAST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Options/Simple.pm
Line 341 (context shows lines 331-345 in admin_page():255)


return '';
[/perl]
[/if]


<form action="[area @@MV_PAGE@@]" method="post">
[if scratch ui_failure]
<p>
<blockquote>
<font color="__CONTRAST__">[scratch ui_failure][set ui_failure][/set]</font>
</blockquote>
<p>
&nbsp;
[/if]

Source: lib/Vend/Options/Simple.pm
Line 349 (context shows lines 339-353 in admin_page():255)

<p>
<blockquote>
<font color="__CONTRAST__">[scratch ui_failure][set ui_failure][/set]</font>
</blockquote>
<p>
&nbsp;
[/if]
[if scratch ui_message]
<p>
<blockquote>
<font color="__CONTRAST__">[scratch ui_message][set ui_message][/set]</font>
</blockquote>
<p>
&nbsp;
[/if]

Source: lib/Vend/Payment/SagePay.pm
Line 106 (context shows lines 96-110)

<input type="hidden" name="TermUrl" value="[scratch termurl]" />
<input type="hidden" name="MD" value="[scratch md]" />
</form>
</body>
along with whatever <noscript> equivalent you want. This will retrieve \
 the bank's page within the iframe.

Add a page in pages/ord/, tdsreturn.html, consisting of this:
[charge route="sagepay" sagepayrequest="3dsreturn"]
<p>
   <blockquote>
      <font color="__CONTRAST__">
              [error all=1 keep=1 show_error=1 show_label=1 joiner="<br>"]
      </font>
     </blockquote>


SEE ALSO


Name

CREDIT_CARDS_ACCEPTED

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CREDIT_CARDS_ACCEPTED is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PaypalExpress.pm
Line 925 (context shows lines 915-929 in paypalexpress():501)

 $::Scratch->{'token'} = $result{'Token'};
 
if (!$result{'Token'}) {
 if ($result{'Ack'} eq 'Failure') {
   $::Session->{'errors'}{'PaypalExpress'} = $result{'Errors'}{'LongMessage'} \
  if ($result{'Errors'} !~ /ARRAY/);
   for my $i (0 .. 3) {
     $::Session->{'errors'}{'PaypalExpress'} .= " $result{'Errors'}[$i]{'LongMessage'}" \
  if ($result{'Errors'} =~ /ARRAY/);
       }
    }
 else {
    my $accepted = uc($::Variable->{CREDIT_CARDS_ACCEPTED});
    $::Session->{'errors'}{'PaypalExpress'} = errmsg("Paypal is currently \
 unavailable - please use our secure payment system instead. We accept $accepted cards");
          }
  return $Tag->deliver({ location => $checkouturl }) 
   }

SEE ALSO


Name

CSS_CONTRAST — CSS class to designate problems

SYNOPSIS

{ class }

DESCRIPTION

CSS_CONTRAST is used by error and formel to designate problems. Both use mv_contrast as default if CSS_CONTRAST has no value.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable CSS_CONTRAST error

NOTES

AVAILABILITY

CSS_CONTRAST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/formel.tag
Line 41 (context shows lines 31-45)

}
else {
  $error = $Tag->error({name => $checkfor, keep => $keep});
}

if ($error) {
  if ($opt->{signal}) {
    sprintf($opt->{signal}, $label);
  }
  else {
    my $contrast = $::Variable->{CSS_CONTRAST} || 'mv_contrast';
    qq{<span class="$contrast">$label</span>};
  }  
}
else {      

Source: code/SystemTag/error.coretag
Line 133 (context shows lines 123-137 in tag_error():33)

# store the error label in user's session for later
# possible use in [error show_label=1] calls
$Vend::Session->{errorlabels}{$var} = $opt->{std_label};
if($text) {
# do nothing
}
elsif(defined $::Variable->{MV_ERROR_STD_LABEL}) {
$text = $::Variable->{MV_ERROR_STD_LABEL};
}
else {
my $contrast = $::Variable->{CSS_CONTRAST} || 'mv_contrast';
  $text = <<EOF;
<span class="$contrast">{LABEL} <small><i>(%s)</i></small></span>
[else]{REQUIRED <b>}{LABEL}{REQUIRED </b>}[/else]
EOF


Name

CYBER_ID — specify ID for communication with selected payment gateways

SYNOPSIS

{ name }

DESCRIPTION

The variable specifies your ID for communication with a payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CYBER_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 301 (context shows lines 291-305 in echo():274)


my (%actual) = map_actual();

my @errMsgs = ();
# Required for validation
if (! $user) {
$user      = $opt->{id} || 
           charge_param('id') ||  
           $::Variable->{ECHO_PAYMENT_ID} ||
           $::Variable->{MV_PAYMENT_ID} ||
            $::Variable->{CYBER_ID}
            or push @errMsgs, "No payment ID found.";
}

# Required for validation

SEE ALSO


Name

CYBER_PRECISION — specify precision to be used with selected payment gateways

SYNOPSIS

{ number of decimal places }

DESCRIPTION

The variable defines the precision (number of decimal places) to be used with selected payment gateways.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CYBER_PRECISION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 334 (context shows lines 324-338 in echo():274)

   charge_param('server') ||
$::Variable->{ECHO_PAYMENT_SERVER} ||
$::Variable->{MV_PAYMENT_SERVER} ||
   $::Variable->{CYBER_SERVER} ||
   'https://wwws.echo-inc.com/scripts/INR200.EXE';

my $precision  =  $opt->{precision} ||
      charge_param('precision') ||
$::Variable->{ECHO_PAYMENT_PRECISION} ||
$::Variable->{MV_PAYMENT_PRECISION} ||
       $::Variable->{CYBER_PRECISION} ||
       2;

##### ECHO SPECIFIC VARIABLES #####


SEE ALSO


Name

CYBER_SECRET — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

The script defines the password used for authorization to the payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CYBER_SECRET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 311 (context shows lines 301-315 in echo():274)

      $::Variable->{CYBER_ID}
      or push @errMsgs, "No payment ID found.";
}

# Required for validation
if (! $secret) {
$secret    = $opt->{secret} ||
           charge_param('secret') ||
       $::Variable->{ECHO_PAYMENT_SECRET} ||
       $::Variable->{MV_PAYMENT_SECRET} ||
           $::Variable->{CYBER_SECRET}
           or push @errMsgs, "No payment secret found.";
}

if (scalar @errMsgs) {

SEE ALSO


Name

CYBER_SERVER — (partly documented)

SYNOPSIS

{ hostname }

DESCRIPTION

The variable specifies the address of the payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

CYBER_SERVER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 327 (context shows lines 317-331 in echo():274)

  ::logError($_);
}
return 0;
}
@errMsgs = ();

my $server     = $opt->{server} ||
                 charge_param('server') ||
          $::Variable->{ECHO_PAYMENT_SERVER} ||
          $::Variable->{MV_PAYMENT_SERVER} ||
                 $::Variable->{CYBER_SERVER} ||
                 'https://wwws.echo-inc.com/scripts/INR200.EXE';

my $precision  =  $opt->{precision} ||
                    charge_param('precision') ||

SEE ALSO


Name

DEBUG — enable Interchange debugging

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

Enable Interchange debug messages. Always used in combination with DebugFile.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Defining DEBUG

Variable  DEBUG 1
DebugFile /tmp/icdebug

NOTES

AVAILABILITY

DEBUG is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 2196 (context shows lines 2186-2200 in send_mail():2078)

last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
};
last SMTP if $@;
$ok = 0;
$using = "Net::SMTP (mail server $mhost)";
#::logDebug("using $using");
undef $none;

my $smtp = Net::SMTP->new($mhost, Debug => $Global::Variable->{DEBUG}, \
 Hello => $helo) or last SMTP;
#::logDebug("smtp object $smtp");

my $from = $::Variable->{MV_MAILFROM}
    || $Global::Variable->{MV_MAILFROM}

Source: lib/Vend/Email.pm
Line 679 (context shows lines 669-683 in send_mail_legacy():561)

last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
};
last SMTP if $@;
$ok = 0;
$using = "Net::SMTP (mail server $mhost)";
#::logDebug("using $using");
undef $none;

my $smtp = Net::SMTP->new($mhost, Debug => $Global::Variable->{DEBUG}, Hello => $helo);
#::logDebug("smtp object $smtp");

my $from = $::Variable->{MV_MAILFROM}
    || $Global::Variable->{MV_MAILFROM}


Name

DESCRIPTIONFIELDS

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

DESCRIPTIONFIELDS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/image.tag
Line 20 (context shows lines 10-24)

UserTag image AttrAlias resize makesize
UserTag image AddAttr
UserTag image Version   1.25
UserTag image Routine   <<EOR
sub {
my ($src, $opt) = @_;
my ($image, $path, $secure, $sku);
my ($imagedircurrent, $imagedir, $imagedirsecure);

my @descriptionfields = grep /\S/, split /\s+/,
  $opt->{descriptionfields} || $::Variable->{DESCRIPTIONFIELDS} || $Vend::Cfg->{DescriptionField};
@descriptionfields = qw( description ) if ! @descriptionfields;

my @imagefields = grep /\S/, split /\s+/,
  $opt->{imagefields} || $::Variable->{IMAGEFIELDS};

SEE ALSO


Name

DOCROOT — filesystem path to catalog's document root

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies filesystem path to the corresponding catalog's DOCROOT.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Setting DOCROOT

Variable DOCROOT /var/www/CATALOG_NAME/htdocs/

NOTES

AVAILABILITY

DOCROOT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/button.tag
Line 38 (context shows lines 28-42)

my @js;
my $image;

my @from_html = qw/class id style/;

if($src) {
  if( $opt->{srcliteral} || $src =~ m{^https?://}i ) {
    $image = $src;
  }
  else {
    my $dr = $::Variable->{DOCROOT};
    my $id = $Tag->image( { dir_only => 1 } );
    $id =~ s:/+$::;
    $id =~ s:/~[^/]+::;


Source: code/SystemTag/image.tag
Line 123 (context shows lines 113-127)

      }
    }
  }
}
push @srclist, $sku if $sku;
push @srclist, $opt->{default} if $opt->{default};

if ($opt->{imagesubdir}) {
  $opt->{imagesubdir} .= '/' unless $opt->{imagesubdir} =~ m:/$:;
}
my $dr = $::Variable->{DOCROOT};
my $id = $imagedircurrent;
$id =~ s:/+$::;
$id =~ s:/~[^/]+::;


Source: code/SystemTag/captcha.coretag
Line 53 (context shows lines 43-57)

my $subdir = $opt->{image_subdir}
   || $::Variable->{CAPTCHA_IMAGE_SUBDIR}
   || 'captcha';
my $tmpdir = "$Vend::Cfg->{ScratchDir}/$subdir";

mkdir($tmpdir) unless -d $tmpdir;

my $imgdir = $opt->{image_location} || $::Variable->{CAPTCHA_IMAGE_LOCATION};

unless ($imgdir ) {
if(! $Global::NoAbsolute and $::Variable->{DOCROOT}) {
   $imgdir = "$::Variable->{DOCROOT}$::Variable->{IMAGE_DIR}/$subdir";
  }
  else {
     $imgdir = "images/$subdir";


Name

ECHO_PAYMENT_DEBUG

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_DEBUG is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 346 (context shows lines 336-350 in echo():274)


##### ECHO SPECIFIC VARIABLES #####

my $order_type = $::Variable->{ECHO_PAYMENT_ORDER_TYPE} || 'S';
my $isp_echo_id = $::Variable->{ECHO_PAYMENT_ISP_ECHO_ID};
my $isp_pin = $::Variable->{ECHO_PAYMENT_ISP_PIN};
my $merchant_email = $::Variable->{ECHO_PAYMENT_MERCHANT_EMAIL};

# Set to 'C' for Certify mode to check compliance with the ECHO spec on a
# transaction-by-transaction basis.  'T' or 'TRUE' for full ECHO debugging.
my $debug = $::Variable->{ECHO_PAYMENT_DEBUG};

 ##########################

 $actual{mv_credit_card_exp_month} =~ s/\D//g;

SEE ALSO


Name

ECHO_PAYMENT_ID — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

The variable specified ID for use with ECHO payment processing services.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 299 (context shows lines 289-303 in echo():274)


#::logDebug("echo called, args=" . ::uneval(\@_));

my (%actual) = map_actual();

my @errMsgs = ();
# Required for validation
if (! $user) {
  $user      = $opt->{id} || 
               charge_param('id') ||  
               $::Variable->{ECHO_PAYMENT_ID} ||
               $::Variable->{MV_PAYMENT_ID} ||
                $::Variable->{CYBER_ID}
                or push @errMsgs, "No payment ID found.";
}

SEE ALSO


Name

ECHO_PAYMENT_ISP_ECHO_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_ISP_ECHO_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 340 (context shows lines 330-344 in echo():274)

my $precision  =  $opt->{precision} ||
  charge_param('precision') ||
$::Variable->{ECHO_PAYMENT_PRECISION} ||
$::Variable->{MV_PAYMENT_PRECISION} ||
   $::Variable->{CYBER_PRECISION} ||
   2;

##### ECHO SPECIFIC VARIABLES #####

my $order_type = $::Variable->{ECHO_PAYMENT_ORDER_TYPE} || 'S';
my $isp_echo_id = $::Variable->{ECHO_PAYMENT_ISP_ECHO_ID};
my $isp_pin = $::Variable->{ECHO_PAYMENT_ISP_PIN};
my $merchant_email = $::Variable->{ECHO_PAYMENT_MERCHANT_EMAIL};

# Set to 'C' for Certify mode to check compliance with the ECHO spec on a

SEE ALSO


Name

ECHO_PAYMENT_ISP_PIN

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_ISP_PIN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 341 (context shows lines 331-345 in echo():274)

charge_param('precision') ||
$::Variable->{ECHO_PAYMENT_PRECISION} ||
$::Variable->{MV_PAYMENT_PRECISION} ||
 $::Variable->{CYBER_PRECISION} ||
 2;

##### ECHO SPECIFIC VARIABLES #####

my $order_type = $::Variable->{ECHO_PAYMENT_ORDER_TYPE} || 'S';
my $isp_echo_id = $::Variable->{ECHO_PAYMENT_ISP_ECHO_ID};
my $isp_pin = $::Variable->{ECHO_PAYMENT_ISP_PIN};
my $merchant_email = $::Variable->{ECHO_PAYMENT_MERCHANT_EMAIL};

# Set to 'C' for Certify mode to check compliance with the ECHO spec on a
# transaction-by-transaction basis.  'T' or 'TRUE' for full ECHO debugging.

SEE ALSO


Name

ECHO_PAYMENT_MERCHANT_EMAIL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_MERCHANT_EMAIL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 342 (context shows lines 332-346 in echo():274)

$::Variable->{ECHO_PAYMENT_PRECISION} ||
$::Variable->{MV_PAYMENT_PRECISION} ||
$::Variable->{CYBER_PRECISION} ||
2;

##### ECHO SPECIFIC VARIABLES #####

my $order_type = $::Variable->{ECHO_PAYMENT_ORDER_TYPE} || 'S';
my $isp_echo_id = $::Variable->{ECHO_PAYMENT_ISP_ECHO_ID};
my $isp_pin = $::Variable->{ECHO_PAYMENT_ISP_PIN};
my $merchant_email = $::Variable->{ECHO_PAYMENT_MERCHANT_EMAIL};

# Set to 'C' for Certify mode to check compliance with the ECHO spec on a
# transaction-by-transaction basis.  'T' or 'TRUE' for full ECHO debugging.
 my $debug = $::Variable->{ECHO_PAYMENT_DEBUG};

SEE ALSO


Name

ECHO_PAYMENT_ORDER_TYPE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_ORDER_TYPE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 339 (context shows lines 329-343 in echo():274)


my $precision  =  $opt->{precision} ||
    charge_param('precision') ||
$::Variable->{ECHO_PAYMENT_PRECISION} ||
$::Variable->{MV_PAYMENT_PRECISION} ||
     $::Variable->{CYBER_PRECISION} ||
     2;

##### ECHO SPECIFIC VARIABLES #####

my $order_type = $::Variable->{ECHO_PAYMENT_ORDER_TYPE} || 'S';
my $isp_echo_id = $::Variable->{ECHO_PAYMENT_ISP_ECHO_ID};
my $isp_pin = $::Variable->{ECHO_PAYMENT_ISP_PIN};
my $merchant_email = $::Variable->{ECHO_PAYMENT_MERCHANT_EMAIL};


SEE ALSO


Name

ECHO_PAYMENT_PRECISION — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

The variable specifies the precision (number of decimal places) to use with the ECHO gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_PRECISION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 332 (context shows lines 322-336 in echo():274)


my $server     = $opt->{server} ||
       charge_param('server') ||
$::Variable->{ECHO_PAYMENT_SERVER} ||
$::Variable->{MV_PAYMENT_SERVER} ||
       $::Variable->{CYBER_SERVER} ||
       'https://wwws.echo-inc.com/scripts/INR200.EXE';

my $precision  =  $opt->{precision} ||
          charge_param('precision') ||
    $::Variable->{ECHO_PAYMENT_PRECISION} ||
    $::Variable->{MV_PAYMENT_PRECISION} ||
           $::Variable->{CYBER_PRECISION} ||
           2;


SEE ALSO


Name

ECHO_PAYMENT_SECRET — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Specifies the password used to identify the vendor.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_SECRET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 309 (context shows lines 299-313 in echo():274)

         $::Variable->{ECHO_PAYMENT_ID} ||
         $::Variable->{MV_PAYMENT_ID} ||
          $::Variable->{CYBER_ID}
          or push @errMsgs, "No payment ID found.";
}

# Required for validation
if (! $secret) {
  $secret    = $opt->{secret} ||
               charge_param('secret') ||
           $::Variable->{ECHO_PAYMENT_SECRET} ||
           $::Variable->{MV_PAYMENT_SECRET} ||
               $::Variable->{CYBER_SECRET}
               or push @errMsgs, "No payment secret found.";
}

SEE ALSO


Name

ECHO_PAYMENT_SERVER — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Specifies the address of the payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ECHO_PAYMENT_SERVER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 325 (context shows lines 315-329 in echo():274)

if (scalar @errMsgs) {
  for (@errMsgs) {
    ::logError($_);
  }
  return 0;
}
@errMsgs = ();

 my $server     = $opt->{server} ||
                   charge_param('server') ||
            $::Variable->{ECHO_PAYMENT_SERVER} ||
            $::Variable->{MV_PAYMENT_SERVER} ||
                   $::Variable->{CYBER_SERVER} ||
                   'https://wwws.echo-inc.com/scripts/INR200.EXE';


SEE ALSO


Name

EDIT_BASKET_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

EDIT_BASKET_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 405 (context shows lines 395-409 in googlecheckout():399)

package Vend::Payment;
use strict;
my ($gcourl,$merchantid,$merchantkey,$gcoserver,$xmlOut, $taxrate, $state, \
 \
 \
 $header, $gcorequest, $actual, $orderID);

sub googlecheckout {
my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
     $editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};

SEE ALSO


Name

FORUM_ANON_NAME

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

FORUM_ANON_NAME is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/forum.tag
Line 14 (context shows lines 4-18)

# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.  See the LICENSE file for details.

UserTag forum-userlink PosNumber 0
UserTag forum-userlink addAttr
UserTag forum-userlink Version   1.7
UserTag forum-userlink Routine   <<EOR
sub {
my ($row) = @_;
return $row->{name} || $Variable->{FORUM_ANON_NAME} || 'Anonymous Coward'
  if $row->{anon} or ! $row->{username};
my $realname = tag_data('userdb', 'handle', $row->{username})
       || tag_data('userdb', 'fname', $row->{username});
return $realname || $row->{username};

SEE ALSO


Name

GCOCMD_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GCOCMD_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 411 (context shows lines 401-415 in googlecheckout():399)

$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 \
 \
 \
 \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
$editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};
my $gcoipn_url  = charge_param('gcoipn_url') || $::Variable->{GCOIPN_URL};
my $gcocmd_url  = charge_param('gcocmd_url') || $::Variable->{GCOCMD_URL}; \
 \
 \
 \
 # from IC admin panel, not from GCO
my $chargecard  = $::Values->{charge_card} || charge_param('charge_card') || '1';
my $basket_expiry = charge_param('basket_expiry') || $::Variable->{BASKET_EXPIRY} || '1 month';
my $default_taxrate = $::Values->{default_taxrate} || charge_param('default_taxrate') || '0.00';
 my $reduced_taxrate = $::Values->{reduced_taxrate} || charge_param('reduced_taxrate') || '0.00';

SEE ALSO


Name

GCOIPN_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GCOIPN_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 410 (context shows lines 400-414 in googlecheckout():399)

my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 \
 \
 \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
$editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};
my $gcoipn_url  = charge_param('gcoipn_url') || $::Variable->{GCOIPN_URL};
my $gcocmd_url  = charge_param('gcocmd_url') || $::Variable->{GCOCMD_URL}; \
 \
 \
 # from IC admin panel, not from GCO
my $chargecard  = $::Values->{charge_card} || charge_param('charge_card') || '1';
my $basket_expiry = charge_param('basket_expiry') || $::Variable->{BASKET_EXPIRY} || '1 month';
 my $default_taxrate = $::Values->{default_taxrate} || charge_param('default_taxrate') || '0.00';

SEE ALSO


Name

GIFT_CERT_COUNTER

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GIFT_CERT_COUNTER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/pay_cert.tag
Line 17 (context shows lines 7-21)

# 
# $Id: pay_cert.tag,v 1.4 2009-05-01 13:50:00 pajamian Exp $

UserTag pay-cert Order code
UserTag pay-cert addAttr
UserTag pay-cert Routine <<EOR
sub {
my ($code, $opt) = @_;

use vars qw/$Tag/;
my $counter_file = $::Variable->{GIFT_CERT_COUNTER} || 'etc/pay_cert.number';
my $cert_table   = $::Variable->{GIFT_CERT_TABLE}     || 'pay_certs';
my $redeem_table = $::Variable->{GIFT_CERT_REDEEM_TABLE} || 'pay_cert_redeem';
my $lock_table   = $::Variable->{GIFT_CERT_LOCK_TABLE}   || 'pay_cert_lock';


SEE ALSO


Name

GIFT_CERT_LOCK_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GIFT_CERT_LOCK_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/pay_cert.tag
Line 20 (context shows lines 10-24)

UserTag pay-cert Order code
UserTag pay-cert addAttr
UserTag pay-cert Routine <<EOR
sub {
my ($code, $opt) = @_;

use vars qw/$Tag/;
my $counter_file = $::Variable->{GIFT_CERT_COUNTER} || 'etc/pay_cert.number';
my $cert_table   = $::Variable->{GIFT_CERT_TABLE}     || 'pay_certs';
my $redeem_table = $::Variable->{GIFT_CERT_REDEEM_TABLE} || 'pay_cert_redeem';
my $lock_table   = $::Variable->{GIFT_CERT_LOCK_TABLE}   || 'pay_cert_lock';

my $ldb = dbref($lock_table) 
or die errmsg("cannot open payment certs lock table '%s'", $lock_table);


SEE ALSO


Name

GIFT_CERT_REDEEM_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GIFT_CERT_REDEEM_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/pay_cert.tag
Line 19 (context shows lines 9-23)


UserTag pay-cert Order code
UserTag pay-cert addAttr
UserTag pay-cert Routine <<EOR
sub {
my ($code, $opt) = @_;

use vars qw/$Tag/;
my $counter_file = $::Variable->{GIFT_CERT_COUNTER} || 'etc/pay_cert.number';
my $cert_table   = $::Variable->{GIFT_CERT_TABLE}     || 'pay_certs';
my $redeem_table = $::Variable->{GIFT_CERT_REDEEM_TABLE} || 'pay_cert_redeem';
my $lock_table   = $::Variable->{GIFT_CERT_LOCK_TABLE}   || 'pay_cert_lock';

my $ldb = dbref($lock_table) 
or die errmsg("cannot open payment certs lock table '%s'", $lock_table);

SEE ALSO


Name

GIFT_CERT_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

GIFT_CERT_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/standard/config/pay_cert.tag
Line 18 (context shows lines 8-22)

# $Id: pay_cert.tag,v 1.4 2009-05-01 13:50:00 pajamian Exp $

UserTag pay-cert Order code
UserTag pay-cert addAttr
UserTag pay-cert Routine <<EOR
sub {
my ($code, $opt) = @_;

use vars qw/$Tag/;
my $counter_file = $::Variable->{GIFT_CERT_COUNTER} || 'etc/pay_cert.number';
my $cert_table   = $::Variable->{GIFT_CERT_TABLE}     || 'pay_certs';
my $redeem_table = $::Variable->{GIFT_CERT_REDEEM_TABLE} || 'pay_cert_redeem';
my $lock_table   = $::Variable->{GIFT_CERT_LOCK_TABLE}   || 'pay_cert_lock';

my $ldb = dbref($lock_table) 

SEE ALSO


Name

GPG_PATH — location of the gpg program

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies the location of the gpg program.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Setting GPG_PATH

Variable GPG_PATH /opt/gnupg/bin/gpg

NOTES

AVAILABILITY

GPG_PATH is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/get_gpg_keys.coretag
Line 16 (context shows lines 6-20)

# (at your option) any later version.  See the LICENSE file for details.
# 
# $Id: get_gpg_keys.coretag,v 1.5 2007-03-30 23:40:54 pajamian Exp $

UserTag get-gpg-keys Order    dir
UserTag get-gpg-keys addAttr
UserTag get-gpg-keys Version  $Revision: 1.5 $
UserTag get-gpg-keys Routine  <<EOR
sub {
my ($dir, $opt) = @_;
my $gpgexe = $Global::Variable->{GPG_PATH} || 'gpg';

my $flags = "--list-keys";
if($dir) {
  $dir = filter_value('filesafe', $dir);

Source: code/UI_Tag/add_gpg_key.coretag
Line 16 (context shows lines 6-20)

# (at your option) any later version.  See the LICENSE file for details.
# 
# $Id: add_gpg_key.coretag,v 1.6 2007-03-30 23:40:54 pajamian Exp $

UserTag add-gpg-key Order   name
UserTag add-gpg-key addAttr
UserTag add-gpg-key Version $Revision: 1.6 $
UserTag add-gpg-key Routine <<EOR
sub {
my ($name, $opt) = @_;
my $gpgexe = $Global::Variable->{GPG_PATH} || 'gpg';

my $outfile = "$Vend::Cfg->{ScratchDir}/$Vend::Session->{id}.gpg_results";

my $flags = "--import --batch 2> $outfile";


Name

HEADERBG

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

HEADERBG is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/title_bar.tag
Line 20 (context shows lines 10-24)

UserTag title-bar Order        width size color
UserTag title-bar PosNumber    3
UserTag title-bar Interpolate  1
UserTag title-bar HasEndTag    1
UserTag title-bar Version      $Revision: 1.4 $
UserTag title-bar Routine      <<EOR
sub {
my ($width, $size, $color, $text) = @_;
$width = 500 unless defined $width;
$size = 6 unless defined $size;
$color = ($::Variable->{HEADERBG} || '#444444') unless defined $color;
$color = qq{BGCOLOR="$color"} unless $color =~ /^\s*bgcolor=/i;
my $tcolor = $::Variable->{HEADERTEXT} || 'WHITE';
$text = qq{<FONT COLOR="$tcolor" SIZE="$size">$text</FONT>};
return <<EOF;

SEE ALSO


Name

HEADERTEXT

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

HEADERTEXT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/title_bar.tag
Line 22 (context shows lines 12-26)

UserTag title-bar Interpolate  1
UserTag title-bar HasEndTag    1
UserTag title-bar Version      $Revision: 1.4 $
UserTag title-bar Routine      <<EOR
sub {
my ($width, $size, $color, $text) = @_;
$width = 500 unless defined $width;
$size = 6 unless defined $size;
$color = ($::Variable->{HEADERBG} || '#444444') unless defined $color;
$color = qq{BGCOLOR="$color"} unless $color =~ /^\s*bgcolor=/i;
my $tcolor = $::Variable->{HEADERTEXT} || 'WHITE';
$text = qq{<FONT COLOR="$tcolor" SIZE="$size">$text</FONT>};
return <<EOF;
<TABLE CELLSPACING=0 CELLPADDING=6 WIDTH="$width"><TR><TD VALIGN=CENTER \
 $color>$text</TD></TR></TABLE>
EOF

SEE ALSO


Name

HTMLAREA_FLAVOUR — selects rich text editor flavour

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

HTMLAREA_FLAVOUR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/Widget/htmlarea.widget
Line 155 (context shows lines 145-159)

{CONFIG?}{CONFIG}({NAME}FCKeditor);{/CONFIG?}
  {NAME}FCKeditor.ReplaceTextarea() ;
});

</script>
|,
        area => qq|<textarea id="{NAME}" rows="{HEIGHT}" cols="{WIDTH}" \
 name="{NAME}">{VALUE}</textarea>|,
        post => ''
});

my $flavour = $opt->{flavour} || $::Variable->{HTMLAREA_FLAVOUR} || 'htmlarea';

my $fname = $opt->{form_name} || 'editor';

my $callpage = $opt->{append} || 'special/kupu';


Name

HTMLAREA_LANG

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

HTMLAREA_LANG is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/Widget/htmlarea.widget
Line 175 (context shows lines 165-179)

$pname =~ s/\W/_/g;

unless(defined $opt->{close_window}) {
$opt->{close_window} = 1;
}

if(! $::Scratch->{htmlarea_added}) {
$Tag->tmp({ name => 'htmlarea_added', body => 1 });
$::Scratch->{meta_header} ||= '';
my $path = $::Variable->{HTMLAREA_PATH} || $flavours{$flavour}->{path};
my $lang = $::Variable->{HTMLAREA_LANG} || $::Scratch->{mv_locale} || 'en';
$lang = substr($lang, 0, 2);
$path =~ s:/*$:/:;
$::Scratch->{meta_header} .= $Tag->uc_attr_list({hash => {path => $path, \
 \
 lang => $lang}}, $flavours{$flavour}->{header});
}

SEE ALSO


Name

HTMLAREA_PATH

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

HTMLAREA_PATH is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/Widget/htmlarea.widget
Line 174 (context shows lines 164-178)


$pname =~ s/\W/_/g;

unless(defined $opt->{close_window}) {
  $opt->{close_window} = 1;
}

if(! $::Scratch->{htmlarea_added}) {
  $Tag->tmp({ name => 'htmlarea_added', body => 1 });
  $::Scratch->{meta_header} ||= '';
  my $path = $::Variable->{HTMLAREA_PATH} || $flavours{$flavour}->{path};
  my $lang = $::Variable->{HTMLAREA_LANG} || $::Scratch->{mv_locale} || 'en';
  $lang = substr($lang, 0, 2);
  $path =~ s:/*$:/:;
  $::Scratch->{meta_header} .= $Tag->uc_attr_list({hash => {path => $path, \
 lang => $lang}}, $flavours{$flavour}->{header});

SEE ALSO


Name

IMAGEFIELDS

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

IMAGEFIELDS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/image.tag
Line 24 (context shows lines 14-28)

sub {
my ($src, $opt) = @_;
my ($image, $path, $secure, $sku);
my ($imagedircurrent, $imagedir, $imagedirsecure);

my @descriptionfields = grep /\S/, split /\s+/,
$opt->{descriptionfields} || $::Variable->{DESCRIPTIONFIELDS} || $Vend::Cfg->{DescriptionField};
@descriptionfields = qw( description ) if ! @descriptionfields;

my @imagefields = grep /\S/, split /\s+/,
$opt->{imagefields} || $::Variable->{IMAGEFIELDS};
@imagefields = qw( image ) if ! @imagefields;

my @imagesuffixes = qw( jpg gif png jpeg );
my $filere = qr/\.\w{2,4}$/;

SEE ALSO


Name

IMAGE_DIR — (obsolete)

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

EXAMPLES

NOTES

AVAILABILITY

IMAGE_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/captcha.coretag
Line 63 (context shows lines 53-67)

if(! $Global::NoAbsolute and $::Variable->{DOCROOT}) {
$imgdir = "$::Variable->{DOCROOT}$::Variable->{IMAGE_DIR}/$subdir";
}
else {
 $imgdir = "images/$subdir";
}
}

my $imgpath = $opt->{image_path}
       || $::Variable->{CAPTCHA_IMAGE_PATH}
       || "$::Variable->{IMAGE_DIR}/$subdir";


my $captcha = Authen::Captcha->new(
         data_folder => $tmpdir,

AUTHORS

SEE ALSO


Name

IMAGE_MOGRIFY — specify path to the ImageMagick mogrify command

SYNOPSIS

{ filename }

DESCRIPTION

Specify full filesystem path to the ImageMagick mogrify command.

ImageMagick's functions are used to perform image manipulation, such as resizing and format conversion (and that's not all, ImageMagick is a very capable tool).

VARIABLE TYPE

Global variable

EXAMPLES

Example:

Put the following in interchange.cfg:

Variable IMAGE_MOGRIFY /usr/bin/mogrify

NOTES

On a case by case basis, Interchange code might attempt an autodetection of the mogrify command location.

AVAILABILITY

IMAGE_MOGRIFY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/image.tag
Line 211 (context shows lines 201-215)

my $mgkpath = $newpath;
my $ext;
$mgkpath =~ s/\.(\w+)$/.mgk/
  and $ext = $1;

File::Copy::copy($path, $newpath)
  or do {
    logError("%s: Unable to create image '%s'", 'image tag', $newpath);
    last MOGIT;
  };
my $exec = $Global::Variable->{IMAGE_MOGRIFY};
if(! $exec) {
  my @dirs = split /:/, "/usr/X11R6/bin:$ENV{PATH}";
  for(@dirs) {
    next unless -x "$_/mogrify";

Source: code/SystemTag/image.tag
Line 217 (context shows lines 207-221)

or do {
  logError("%s: Unable to create image '%s'", 'image tag', $newpath);
  last MOGIT;
};
my $exec = $Global::Variable->{IMAGE_MOGRIFY};
if(! $exec) {
my @dirs = split /:/, "/usr/X11R6/bin:$ENV{PATH}";
for(@dirs) {
  next unless -x "$_/mogrify";
           $exec = "$_/mogrify";
           $Global::Variable->{IMAGE_MOGRIFY} = $exec;
          last;
        }
      }
      last MOGIT unless $exec;

SEE ALSO


Name

LANG — contains the current locale for language (localization) display

SYNOPSIS

@@LANG@@

DESCRIPTION

This variable contains the current locale for language localization and display. The variable is not set in the configuration files, but is manipulated by the Interchange daemon while it is runnning.

If you want to define catalog default language, set the MV_LANG variable.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

Example: Reading value of LANG

Add the following to a test Interchange page:

Currency: @@LANG@@

Example: Defining default language for a catalog

Put the following in catalog.cfg:

Variable MV_LANG fr_FR

NOTES

AVAILABILITY

LANG is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Dispatch.pm
Line 1669 (context shows lines 1659-1673 in dispatch():1240)

# LEGACY
ROUTINES: {
  last ROUTINES unless index($Vend::FinalPath, "/$Vend::Cfg->{ProcessPage}/") == 0;
  while ($Vend::FinalPath =~ s{/$Vend::Cfg->{ProcessPage}/(locale|language \
|currency)/([^/]*)/}{/$Vend::Cfg->{ProcessPage}/}) {
    $::Scratch->{"mv_$1"} = $2;
  }
  $Vend::FinalPath =~ s{/$Vend::Cfg->{ProcessPage}/page/}{/};
}

if(my $locale = $::Scratch->{mv_language}) {
  $Global::Variable->{LANG}
    = $::Variable->{LANG} = $locale;
}
# END LEGACY


Source: lib/Vend/Config.pm
Line 3295 (context shows lines 3285-3299 in parse_hash():3177)

  }
},

  Locale => sub {
#::logDebug("Doing Locale dispatch...");
      my $locale = $::Scratch->{mv_locale};
      my $curr = $::Scratch->{mv_currency};
      $locale || $curr    or return;

      if($locale and ! $::Scratch->{mv_language}) {
          $Global::Variable->{LANG}
                  = $::Variable->{LANG}
                  = $::Scratch->{mv_language}
                  = $locale;
      }

Source: lib/Vend/File.pm
Line 168 (context shows lines 158-172 in readfile_db():156)

return unless $Vend::Cfg->{FileDatabase};
my ($tab, $col) = split /:+/, $Vend::Cfg->{FileDatabase};
my $db = $Vend::Interpolate::Db{$tab} || ::database_exists_ref($tab)
  or return undef;
#::logDebug("tab=$tab exists, db=$db");

# I guess this is the best test
if($col) {
  return undef unless $db->column_exists($col);
}
elsif ( $col = $Global::Variable->{LANG} and $db->column_exists($col) ) {
  #do nothing
}
else {
  $col = 'default';

SEE ALSO


Name

LINE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

LINE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 490 (context shows lines 480-494 in googlecheckout():399)

if ($gcorequest eq 'post') {
 undef $gcorequest;
my $salestax = $::Values->{tax} || Vend::Interpolate::salestax() || '0.00';
my $shipmode = $::Values->{mv_shipmode} || charge_param('default_shipmode') || 'upsg';
my $shipping = $::Session->{final_shipping} || Vend::Ship::shipping($shipmode) \
 || charge_param('default_shipping') || '0.00';
my $handling = $::Values->{handlingtotal} || Vend::Ship::tag_handling() || '';
     $shipping += $handling;
my $shipmsg  = $::Session->{ship_message};
my $subtotal = $::Values->{amount} || Vend::Interpolate::subtotal();
my $ordertotal = charge_param('amount') || Vend::Interpolate::total_cost();
print "GCO".__LINE__.": tax=$salestax; shipping=$shipping, $::Values->{mv_shipping}; \
 shipmode=$shipmode\n";
my $defaultcountry = charge_param('defaultcountry');
my $defaultstate = charge_param('defaultstate');
my $country  = uc($actual->{country});
            $country  = $defaultcountry unless $country; 

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 504 (context shows lines 494-508 in googlecheckout():399)

        $country  = $defaultcountry unless $country; 
my $state    = uc($actual->{state});
          $state    = $defaultstate unless $state;
my $zip_pattern = $actual->{zip} || $::Values->{zip};
          $zip_pattern =~ /(\S\S\S).*/;
          $zip_pattern = "$1"."*";
my $taxshipping = 'false';
          $taxshipping = 'true' if (($country =~ /$::Variable->{TAXSHIPPING}/) \
 \
 \
 or ($state =~ /$::Variable->{TAXSHIPPING}/) or ($alwaystaxshipping == '1'));
::logDebug(":GCO:".__LINE__.": shipping=$::Session->{final_shipping}, $shipping; \
 \
 \
 handling=$handling; taxshipping=$::Variable->{TAXSHIPPING}; \
 \
 \
 country=$country; tx=$taxshipping");
my $stax = Vend::Interpolate::salestax();
print "GCO:".__LINE__.": stax=$stax; mvst=$::Values->{mv_salestax}, $::Values->{salestax}\n";
if ($salestax == '0') { 
      $taxrate = '0.00';
        }
elsif ($taxshipping eq 'true') { 

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 517 (context shows lines 507-521 in googlecheckout():399)

      }
elsif ($taxshipping eq 'true') { 
       $taxrate = ($salestax / ($subtotal + $shipping) || '0');
        }
elsif ($calculate_included_tax == '1') {
       $taxrate = $default_taxrate;
        } 
else { 
       $taxrate =  ($salestax / $subtotal || '0');
}
::logDebug(":GCO:".__LINE__.": subtotal=$subtotal; taxrate=$taxrate");

### Check that the currency sent to GCO is the one registered with them, or return to the checkout
my $user_currency = $::Scratch->{iso_currency_code} || $::Values->{iso_currency_code} || $currency;
#::logDebug(" ".__LINE__.": user currency = $user_currency, $::Scratch->{iso_currency_code}, \
 $::Values->{iso_currency_code}; currency=$currency"); 

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 921 (context shows lines 911-925 in googlecheckout():399)

     $cart = eval ($cart);
  my $dbi = dbref('inventory') or die errmsg("cannot open inventory table");
  my $dbhi = $dbi->dbh() or die errmsg("cannot get handle for tbl 'inventory'");
  my ($sthi, $itm, $qty);

foreach my $items (@{$cart}) { 
        $itm = $items->{'code'};
        $qty = $items->{'quantity'};
        $sthi = $dbh->prepare("UPDATE inventory SET quantity = quantity \
 -'$qty' WHERE sku = '$itm'");
        $sthi->execute() or die errmsg("Cannot update table inventory");
::logDebug(":GCO:".__LINE__.": Decremented inventory for $itm by $qty");
        }
        }  
         }
     else {

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 1338 (context shows lines 1328-1342 in sendxml():1326)

my $xmlOut = shift;
my $agent  = LWP::UserAgent->new;
my $data   = "$merchantid:$merchantkey";
my $signature = encode_base64($data, "");
   $header  = HTTP::Headers->new;
   $header->header('Authorization' => "Basic " . $signature);
   $header->header('Content-Type'  => "application/xml; charset=UTF-8");
   $header->header('Accept'        => "application/xml");
my $request = HTTP::Request->new(POST => $gcourl, $header, $xmlOut);
my $response = $agent->request($request);
::logDebug(":GCO:".__LINE__.": sendxml: gcourl=$gcourl\nxmlOut=$xmlOut");
return $response->content;
}

1;

Source: lib/Vend/Payment/SagePay.pm
Line 781 (context shows lines 771-785 in sagepay():576)

my $customerEmail      = $actual->{email};
   $customerEmail      =~ s/[^a-zA-Z0-9.\@\-_]//gi;
my $contactFax         = $::Values->{fax} || '';
   $contactFax         =~ s/[\(\)]/ /g;
   $contactFax         =~ s/[^0-9-+ ]//gi;
my $giftAidPayment     = $::Values->{giftaidpayment} || charge_param('giftaidpayment') || '0';
my $authCode           = $::Values->{authcode} || '';
my $clientIPAddress    = $CGI::remote_addr if $CGI::remote_addr;
    $::Values->{authcode} = '';

::logDebug("SP".__LINE__.": bCity=$billingCity; mvccType=$cardType; start=$mvccStartDate; \
 issue=$issue;");
  
# ISO currency code sent to SagePay, from the page or fall back to config files.
my $currency = $::Values->{iso_currency_code} || $::Values->{currency_code} \
 || $Vend::Cfg->{Locale}{iso_currency_code} ||
           charge_param('currency') || $::Variable->{MV_PAYMENT_CURRENCY} || 'GBP';

Source: lib/Vend/Payment/SagePay.pm
Line 991 (context shows lines 981-995 in sagepay():576)

       push @query, "$key=$query{$key}";
    }

my $string = join '&', @query; # replicates the string as actually sent: \
 useful to quote this for debugging
#::logDebug("SP".__LINE__.": string to SagePay: $string");
  
  $post     = post_data($opt, \%query);
  $response = $post->{status_line};
  $page     = $post->{result_page};

::logDebug("SP".__LINE__.": response page:\n-------------------------\n$page \
 \n---------------------------\nend of SagePay results page\n\n");
  
  $result{TxType}         = $txtype;
  $result{Currency}       = $currency;
  $result{CardRef}        = $::Session->{sagepay}{CardRef};

Source: lib/Vend/Payment/SagePay.pm
Line 1070 (context shows lines 1060-1074 in sagepay():576)

$result{'Status'} = 'OK';
  $::Scratch->{mstatus} = 'success';
  $::Scratch->{order_id} = $result{'order-id'};
  $::Values->{mv_payment} = "Real-time card $result{CardInfo}";
   $::Values->{psp} = charge_param('psp') || 'SagePay';
   $::CGI::values{mv_todo} = 'submit';
     if ($result{SecureStatus} =~ /OK|ATTEMPTONLY/i) {
      $::Scratch->{tds} = 'yes' ;
      $Vend::Session->{payment_result} = \%result;

::logDebug("SP".__LINE__.": secureStatus=$result{SecureStatus} so now to \
 run routes; result hash=".::uneval(\%result));

      Vend::Dispatch::do_process();
      }
    }

Source: lib/Vend/Payment/SagePay.pm
Line 1195 (context shows lines 1185-1199 in sagepay():576)

      $::Values->{mv_payment} = "Processing card $result{CardInfo}";
       $CGI::values{mv_todo} = 'submit';

#::logDebug("SP".__LINE__.": request=$request; tds=$::Scratch->{tds}");
         
         }

   undef $request;
   $::Values->{request} = '';

::logDebug("SP".__LINE__.":result=".::uneval(\%result));

# Now extra logging for backup order and/or log of events
if ($logorder =~ /y|1/) {
#--- write the full basket and address to failsafe file 

Source: lib/Vend/Payment/Worldpay.pm
Line 505 (context shows lines 495-509 in worldpay():433)

   $::Scratch->{orderID} = $orderID;

# Disable order number creation in log_transaction and create it here instead, unless IC is old
if ($::Values->{inv_no}) {
  $purchaseID = $::Values->{inv_no};
    }
else{
# Use temporary number as the initial order number, and only replace upon \
 successful order completion
  $purchaseID = "$tmpPrefix".Vend::Interpolate::tag_counter("$wpcounter");
  $Vend::Session->{mv_order_number} = $::Values->{mv_order_number} = \
 $purchaseID if ($oldic == 1);# prevents early ICs setting order number prior to log_transaction
::logDebug("WP:".__LINE__.": purchaseID=$purchaseID; $Vend::Session->{mv_order_number}");
}
  
  my $cartId = $desc = $::Scratch->{purchaseID} = $purchaseID;


Source: lib/Vend/Payment/PaypalExpress.pm
Line 1138 (context shows lines 1128-1142 in paypalexpress():501)


$basket .= <<EOB;
Item = $itm->{code}, "$itm->{rpDescription}"; Price = $itm->{price}; \
 Qty = $itm->{quantity}; Subtotal = $itm->{subtotal} 
EOB

 my ($dorecurringbilling, $cntr);
 my $rpamount = $itm->{'rpamount_field'} || $itm->{'rpamount'};
  $nonrp = '1' if (! $rpamount); # only run Do request if have standard purchase as well
 if ($rpamount) {
#    $cntr++;
print "PP".__LINE__.": cntr=$cntr; initamount=$itm->{initAmount}; rpAmount=$itm->{rpAmount}; \
 trialAmount=$itm->{trialAmount}\n";  
         $dorecurringbilling = (
          SOAP::Data->name("BillingAgreementDetails" =>
          \SOAP::Data->value(
           SOAP::Data->name("BillingType" => 'RecurringPayments')->type(""),

SEE ALSO


Name

MV_AUTOLOAD — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It specifies the value to be placed in the beginning of the html if the $Vend::PageInit is defined and not 0.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_AUTOLOAD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 654 (context shows lines 644-658 in interpolate_html():642)


return undef if ! defined($html);
return undef if $Vend::NoInterpolate;
my ($name, @post);
my ($bit, %post);

local($^W);

my $toplevel;
if(defined $Vend::PageInit and ! $Vend::PageInit) {
  defined $::Variable->{MV_AUTOLOAD}
    and $html =~ s/^/$::Variable->{MV_AUTOLOAD}/;
  $toplevel = 1;
}
#::logDebug("opt=" . uneval($opt));

SEE ALSO


Name

MV_BAD_LOCK — work around a problem in systems with broken locking mechanism

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

The variable allows systems with broken locking mechanism to still work properly. If the variable is set, it makes sure the PIDFile lock is not destroyed when the lock file is read. interchange -stop will then work properly.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Turn around the workaround

Add the following to interchange.cfg:

Variable MV_BAD_LOCK 1

NOTES

Thanks to Daniel Hutchinson for reporting this problem.

AVAILABILITY

MV_BAD_LOCK is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Server.pm
Line 1665 (context shows lines 1655-1669 in server_start_message():1656)


sub server_start_message {
my ($fmt, $reverse) = @_;
$fmt = 'START server (%s) (%s)' unless $fmt; 
my @types;
push (@types, 'INET') if $Global::Inet_Mode;
push (@types, 'UNIX') if $Global::Unix_Mode;
push (@types, 'SOAP') if $Global::SOAP;
push (@types, 'mod_perl') if $Global::mod_perl;
my $server_type = join(" and ", @types);
my $pid = ( $Global::PreFork || $Global::Variable->{MV_BAD_LOCK} )
      ? $$
      : read_pidfile();
my @args = $reverse ? ($server_type, $pid) : ($pid, $server_type);
return ::errmsg ($fmt , @args );

SEE ALSO


Name

MV_COMPONENT_CACHE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_COMPONENT_CACHE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/component.tag
Line 45 (context shows lines 35-49)

$name ||= $control->{component};
$name ||= $opt->{default};

if (! $name or $name eq 'none') {
# Increment control_index so empty component has no side effect
$::Scratch->{control_index}++;
return;
}

my $t = $opt->{comp_table} || $::Variable->{MV_COMPONENT_TABLE} || 'component';
my $ctab = $::Variable->{MV_COMPONENT_CACHE} || 'component_cache';

my $record;
my $db = database_exists_ref($t);
my $nocache;


Name

MV_COMPONENT_DIR — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

If defined, it specifies a directory location where the components will be located.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_COMPONENT_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/component.tag
Line 75 (context shows lines 65-79)

  }
  $record = $db->row_hash($name);
}

$record ||= $opt;

my $body = $record->{comptext};

if(! length($body)) {
  my $dir = $opt->{comp_dir}
      || $::Variable->{MV_COMPONENT_DIR}
      || 'templates/components';
  $body = readfile("$dir/$name",undef,1);
}



Name

MV_COMPONENT_TABLE — database name for components

SYNOPSIS

{ database }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

The term database in Interchange lingo has a different meaning as in common language, please check database for more information.

AVAILABILITY

MV_COMPONENT_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/component.tag
Line 44 (context shows lines 34-48)


$name ||= $control->{component};
$name ||= $opt->{default};

if (! $name or $name eq 'none') {
  # Increment control_index so empty component has no side effect
  $::Scratch->{control_index}++;
  return;
}

my $t = $opt->{comp_table} || $::Variable->{MV_COMPONENT_TABLE} || 'component';
my $ctab = $::Variable->{MV_COMPONENT_CACHE} || 'component_cache';

my $record;
my $db = database_exists_ref($t);


Name

MV_COUNTRY_FIELD — name of form field whose value will be used as key to perform lookup in the MV_COUNTRY_TABLE

SYNOPSIS

{ field... }

DESCRIPTION

Form field whose value will be used as the key to perform lookup in the MV_COUNTRY_TABLE database.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_COUNTRY_FIELD  country

NOTES

AVAILABILITY

MV_COUNTRY_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 458 (context shows lines 448-462 in guess_cc_type():454)

  guess_cc_type($cardinfo->{MV_CREDIT_CARD_NUMBER});

return Vend::Interpolate::tag_attr_list($template, $cardinfo);
}


sub guess_cc_type {
my ($ccnum) = @_;
$ccnum =~ s/\D+//g;

my $country = uc($::Values->{$::Variable->{MV_COUNTRY_FIELD} || 'country'} || '');

if(my $subname = $Vend::Cfg->{SpecialSub}{guess_cc_type}) {
  my $sub = $Vend::Cfg->{Sub}{$subname} || $Global::GlobalSub->{$subname};
  my $guess;

Source: lib/Vend/Order.pm
Line 1200 (context shows lines 1190-1204 in _get_cval():1198)

}
else {
  return (undef, $var,
    errmsg( $state_error{CA}, $val )
  );
}
}

sub _get_cval {
my ($ref, $var) = @_;
my $cfield = $::Variable->{MV_COUNTRY_FIELD} || 'country';
my $cval = $ref->{$cfield} || $::Values->{$cfield};

if($var =~ /^b_/ and $ref->{"b_$cfield"} || $::Values->{"b_$cfield"}) {
  $cval = $ref->{"b_$cfield"} || $::Values->{"b_$cfield"};

SEE ALSO


Name

MV_COUNTRY_TABLE — name of database containing countries, country codes, etc.

SYNOPSIS

{ database... }

DESCRIPTION

Table to search for country-related information, such as selector and ISO names or shipping methods available.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_COUNTRY_TABLE  country

NOTES

AVAILABILITY

MV_COUNTRY_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5485 (context shows lines 5475-5489 in tax_vat():5477)

}

sub tax_vat {
my($type, $opt) = @_;
#::logDebug("entering VAT, opts=" . uneval($opt));
my $cfield = $::Variable->{MV_COUNTRY_TAX_VAR} || 'country';
my $country = $opt->{country} || $::Values->{$cfield};

return 0 if ! $country;
my $ctable   = $opt->{country_table}
      || $::Variable->{MV_COUNTRY_TABLE}
      || 'country';
my $c_taxfield   = $opt->{country_tax_field}
      || $::Variable->{MV_COUNTRY_TAX_FIELD}
      || 'tax';


Name

MV_COUNTRY_TAX_FIELD — name of column containing country-wide tax information

SYNOPSIS

{ column... }

DESCRIPTION

Column name in the MV_COUNTRY_TABLE database that will be looked up to retrieve country-wide tax information.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_COUNTRY_FIELD  tax

NOTES

AVAILABILITY

MV_COUNTRY_TAX_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5488 (context shows lines 5478-5492 in tax_vat():5477)

my($type, $opt) = @_;
#::logDebug("entering VAT, opts=" . uneval($opt));
my $cfield = $::Variable->{MV_COUNTRY_TAX_VAR} || 'country';
my $country = $opt->{country} || $::Values->{$cfield};

return 0 if ! $country;
my $ctable   = $opt->{country_table}
    || $::Variable->{MV_COUNTRY_TABLE}
    || 'country';
my $c_taxfield   = $opt->{country_tax_field}
    || $::Variable->{MV_COUNTRY_TAX_FIELD}
    || 'tax';
#::logDebug("ctable=$ctable c_taxfield=$c_taxfield country=$country");
$type ||= tag_data($ctable, $c_taxfield, $country)
  or return 0;


Name

MV_COUNTRY_TAX_VAR

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_COUNTRY_TAX_VAR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5480 (context shows lines 5470-5484 in tax_vat():5477)


sub percent_rate {
my $rate = shift;
$rate =~ s/\s*%\s*$// and $rate /= 100;
return $rate;
}

sub tax_vat {
my($type, $opt) = @_;
#::logDebug("entering VAT, opts=" . uneval($opt));
my $cfield = $::Variable->{MV_COUNTRY_TAX_VAR} || 'country';
my $country = $opt->{country} || $::Values->{$cfield};

return 0 if ! $country;
my $ctable   = $opt->{country_table}

SEE ALSO


Name

MV_CREDIT_CARD_INFO_TEMPLATE

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_CREDIT_CARD_INFO_TEMPLATE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 440 (context shows lines 430-444 in build_cc_info():411)

}

if(my $num = $cardinfo->{MV_CREDIT_CARD_NUMBER}) {
  my @quads;
  $num =~ s/\D//g;
  @quads = $num =~ m{(\d\d\d\d)(\d\d\d\d)(\d\d\d\d)(\d+)};
  $cardinfo->{MV_CREDIT_CARD_QUADS} = join "-", @quads;
}

$template = $template ||
  $::Variable->{MV_CREDIT_CARD_INFO_TEMPLATE} ||
  join("\t", qw(
    {MV_CREDIT_CARD_TYPE}
    {MV_CREDIT_CARD_NUMBER}
    {MV_CREDIT_CARD_EXP_MONTH}/{MV_CREDIT_CARD_EXP_YEAR}

SEE ALSO


Name

MV_DEFAULT_LINK_CLASS

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_DEFAULT_LINK_CLASS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Menu.pm
Line 2201 (context shows lines 2191-2205 in menu():2133)

      $opt->{file} = "$dir/default.txt";
    }
  }
}

$opt->{dhtml_browser} = dhtml_browser()
  unless defined $opt->{dhtml_browser};
$opt->{menu_type} ||= 'simple';

my $prefix = $opt->{prefix} || 'menu';
$opt->{link_class} ||= $::Variable->{MV_DEFAULT_LINK_CLASS};

$opt->{parse_header_footer} = 1 unless defined $opt->{parse_header_footer};

if($opt->{parse_header_footer}) {

SEE ALSO


Name

MV_DEFAULT_MATCHLIMIT — specifies the number of search results per page

SYNOPSIS

number

DESCRIPTION

The MV_DEFAULT_MATCHLIMIT variable specifies the default for the number of search results displayed on one page. You can override this value for a specific search with the mv_matchlimit search parameter. The default value for MV_DEFAULT_MATCHLIMIT is 50.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable MV_DEFAULT_MATCHLIMIT 20

NOTES

AVAILABILITY

MV_DEFAULT_MATCHLIMIT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Scan.pm
Line 947 (context shows lines 937-951 in _matchlimit():943)

$limit = -1 if $limit =~ /^[^-0-9]/;
$ref->{mv_dict_end} = $ref->{mv_dict_look};
substr($ref->{mv_dict_end},$limit,1) =~ s/(.)/chr(ord($1) + 1)/e;
return $_[1];
}

sub _matchlimit {
shift;
my $val = lc(shift);
return -1 if $val eq 'none' or $val eq 'all';
return int($val) || $::Variable->{MV_DEFAULT_MATCHLIMIT} || 50;
}

1;
__END__

SEE ALSO


Name

MV_DEFAULT_SEARCH_DB — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Specifies that an unspecified (default) search will be a db search, not a text search.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_DEFAULT_SEARCH_DB is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Scan.pm
Line 519 (context shows lines 509-523 in perform_search():416)


SEARCH: {
  $options{mv_return_all} = 1
    if $options{mv_dict_look} and ! $options{mv_searchspec};

  if (defined $pre_made) {
    $q = $pre_made;
    @{$q}{keys %options} = (values %options);
  }
  elsif (
      ! $options{mv_searchtype} && $::Variable->{MV_DEFAULT_SEARCH_DB}
      or $options{mv_searchtype} =~ /db|sql/i
    )
  {
    $q = new Vend::DbSearch %options;

Source: lib/Vend/Scan.pm
Line 889 (context shows lines 879-893 in _file_security():879)

sub _file_security {
my ($junk, $param, $passed) = @_;
$passed = [] unless $passed;
my(@files) = grep /\S/, split /\s*[,\0]\s*/, $param, -1;
for(@files) {
my $ok = allowed_file($_);
if(!$ok) {
  $ok = 1 if $_ eq $::Variable->{MV_SEARCH_FILE};
  $ok = 1 if $::Scratch->{$_};
}
if(/^\w+$/ and ! $::Variable->{MV_DEFAULT_SEARCH_DB}) {
  $_ = $Vend::Cfg->{Database}{$_}{file}
      if defined $Vend::Cfg->{Database}{$_};
  }
  if ($ok and $Vend::Cfg->{NoSearch} and /$Vend::Cfg->{NoSearch}/) {

SEE ALSO


Name

MV_DEFAULT_SEARCH_FILE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It specifies the file to be used for text searches by default.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_DEFAULT_SEARCH_FILE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/TextSearch.pm
Line 82 (context shows lines 72-86 in init():67)

$s->{mv_begin_string}       = [];
$s->{mv_all_chars}          = [1];
$s->{mv_case}               = [];
$s->{mv_column_op}          = [];
$s->{mv_negate}             = [];
$s->{mv_numeric}            = [];
$s->{mv_orsearch}           = [];
$s->{mv_searchspec}          = [];
$s->{mv_search_group}       = [];
$s->{mv_search_field}       = [];
$s->{mv_search_file}        = $::Variable->{MV_DEFAULT_SEARCH_FILE}
                || ['products.asc'];
$s->{mv_searchspec}         = [];
$s->{mv_sort_option}        = [];
$s->{mv_substring_match}    = [];

Source: lib/Vend/TextSearch.pm
Line 119 (context shows lines 109-123 in search():103)

my($dict_limit,$f,$key,$val);
my($searchfile, @searchfiles);
my(@specs);
my(@pats);

while (($key,$val) = each %options) {
  $s->{$key} = $val;
}

unless (@searchfiles = @{$s->{mv_search_file}}) {
  @searchfiles = @{$::Variable->{MV_DEFAULT_SEARCH_FILE}};
}
#::logDebug("searchfiles=@searchfiles");
for(@searchfiles) {
  $_ = Vend::Util::catfile($s->{mv_base_directory}, $_)

Source: lib/Vend/Glimpse.pm
Line 85 (context shows lines 75-89 in init():66)

$s->{mv_negate}             = [];
$s->{mv_numeric}            = [];
$s->{mv_orsearch}           = [];
$s->{mv_searchspec}          = [];
$s->{mv_search_group}       = [];
$s->{mv_search_field}       = [];
$s->{mv_search_file}        = [];
$s->{mv_searchspec}         = [];
$s->{mv_sort_option}        = [];
$s->{mv_substring_match}    = [];
$s->{mv_field_file}         = $::Variable->{MV_DEFAULT_SEARCH_FILE}[0];
$s->{glimpse_cmd} = $Vend::Cfg->{Glimpse} || 'glimpse';

for(keys %$options) {
  $s->{$_} = $options->{$_};

SEE ALSO


Name

MV_DEFAULT_SEARCH_TABLE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It specifies the table to be used for searches by default.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_DEFAULT_SEARCH_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/RefSearch.pm
Line 73 (context shows lines 63-77 in init():67)

mv_min_string           => 1,
verbatim_columns        => 1,
);

sub init {
my ($s, $options) = @_;

# autovivify references of nested data structures we use below, since they
# don't yet exist at daemon startup time before configuration is done
$Vend::Cfg->{ProductFiles}[0] or 1;
$::Variable->{MV_DEFAULT_SEARCH_TABLE} or 1;

@{$s}{keys %Default} = (values %Default);
$s->{mv_all_chars}          = [1];


Source: lib/Vend/RefSearch.pm
Line 89 (context shows lines 79-93 in init():67)

### that we will use if no base=table param is specified
$s->{mv_base_directory}     = $Vend::Cfg->{ProductFiles}[0];
$s->{mv_begin_string}       = [];
$s->{mv_case}               = [];
$s->{mv_column_op}          = [];
$s->{mv_negate}             = [];
$s->{mv_numeric}            = [];
$s->{mv_orsearch}           = [];
$s->{mv_search_field}       = [];
$s->{mv_search_file}        =  [ @{
                  $::Variable->{MV_DEFAULT_SEARCH_TABLE}
                  ||  $Vend::Cfg->{ProductFiles}
                  } ];
$s->{mv_search_group}       = [];
$s->{mv_searchspec}         = [];

Source: lib/Vend/DbSearch.pm
Line 74 (context shows lines 64-78 in init():68)

mv_min_string           => 1,
verbatim_columns        => 1,
);

sub init {
my ($s, $options) = @_;

# autovivify references of nested data structures we use below, since they
# don't yet exist at daemon startup time before configuration is done
$Vend::Cfg->{ProductFiles}[0] or 1;
$::Variable->{MV_DEFAULT_SEARCH_TABLE} or 1;

@{$s}{keys %Default} = (values %Default);
$s->{mv_all_chars}          = [1];


Source: lib/Vend/DbSearch.pm
Line 98 (context shows lines 88-102 in init():68)

$s->{mv_search_field}       = [];
$s->{mv_search_group}       = [];
$s->{mv_searchspec}         = [];
$s->{mv_sort_option}        = [];
$s->{mv_substring_match}    = [];

for(keys %$options) {
  $s->{$_} = $options->{$_};
}
$s->{mv_search_file}        =  [ @{
                  $::Variable->{MV_DEFAULT_SEARCH_TABLE}
                  ||  $Vend::Cfg->{ProductFiles}
                  } ]
  unless ref($s->{mv_search_file}) and scalar(@{$s->{mv_search_file}});


SEE ALSO


Name

MV_DHTML_BROWSER — regular expression matching HTTP user agents with DHTML support

SYNOPSIS

{ regexp }

DESCRIPTION

This variable specifies regexp to use in matching DHTML-capable client browsers (HTTP user agents). program binary.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Setting MV_DHTML_BROWSER

Variable MV_DHTML_BROWSER  MSIE [5-9].*Windows|Mozilla.*Gecko

NOTES

AVAILABILITY

MV_DHTML_BROWSER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Menu.pm
Line 1801 (context shows lines 1791-1805 in dhtml_browser():1798)


my %menu_default_img = (
  clear  => 'bg.gif',
  closed => 'fc.gif',
  open   => 'fo.gif',
);

sub dhtml_browser {
my $regex;
eval {
  $regex = $::Variable->{MV_DHTML_BROWSER}
    and $regex = qr/$regex/;
};
$regex ||= qr/MSIE [5-9].*Windows|Mozilla.*Gecko|Opera.*[7-9]/;
return $Vend::Session->{browser} =~ $regex;


Name

MV_DOLLAR_ZERO — control visual display of Interchange processes in the process list

SYNOPSIS

{ 0 | 1 | string }

DESCRIPTION

Define what to do with the Perl's $0 variable which contains the system's name of the running process. That process name will appear in commands like ps or top.

Setting the variable to a false value (0 or undefined) leaves the string unchanged. Setting it to 1 displays the process in the form of interchange --> (CATROOT). Setting it to a string displays that same string.

This is a workaround for a bug in stock Perl that used to ship with FreeBSD. The bug sometimes caused a segmentation fault when Interchange daemon was starting.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Setting MV_DOLLAR_ZERO to "1"

Set the following in interchange.cfg:

Variable MV_DOLLAR_ZERO 1

NOTES

Note that this variable is set globally once when the Interchange daemon starts. It is pointless to change the variable afterwards in runtime.

This variable will have no effect on BSD kernels.

AVAILABILITY

MV_DOLLAR_ZERO is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Server.pm
Line 3154 (context shows lines 3144-3158 in set_process_name():3152)

    unlink $Global::PIDfile;
            exit 0;
        }
    }
}
}

# Set the process name ($0) according to MV_DOLLAR_ZERO and a status indicator.
sub set_process_name {
my $status = shift;
my $base = $Global::Variable->{MV_DOLLAR_ZERO};

# Setting MV_DOLLAR_ZERO to 1 should do the same thing as not setting it for
# backwards compatibility.
$base = 'interchange' if !$base or $base eq '1';

SEE ALSO


Name

MV_EMAIL_CHARSET

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_EMAIL_CHARSET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Email.pm
Line 192 (context shows lines 182-196 in tag_mime_lite_email():91)

# Data (msg body), encoding and type
($data, $encoding, $type, $charset) = (
  delete $opt->{data},
  delete $opt->{encoding},
  delete $opt->{type},
  delete $opt->{charset},
);
$data     ||= $opt->{body} || $body;    delete $opt->{body};
$encoding ||= 'quoted-printable';
$type     ||= 'text/plain';
$charset  ||= $::Variable->{MV_EMAIL_CHARSET} || $Global::Variable->{MV_EMAIL_CHARSET};

if ($charset) {
  $type .= "; charset=$charset";
}

SEE ALSO


Name

MV_EMAIL_INTERCEPT — intercept all outgoing email and redirect it to the specified address

SYNOPSIS

{email_address}

DESCRIPTION

If defined, the variable causes all outgoing e-mail to be intercepted, and sent to a specified address or comma-separated addresses.

This feature is intended to allow developers to write and test functions that send e-mail, without worrying about accidentally sending mail to end users.

A header in the form of X-Intercepted-To: is inserted in the message to show the original destination. At the same time, the interception is also noted in the catalog error log file.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

Example: Setting MV_EMAIL_INTERCEPT to "root@mydomain.local"

Set the following in interchange.cfg or catalog.cfg:

Variable MV_EMAIL_INTERCEPT root@mydomain.local

NOTES

Note that this only works for Interchange's built-in e-mail sending routines. If you use other methods to send e-mail, for example by directly running sendmail or talking to an SMTP server you'll have to add implement support yourself.

Be aware that this setting can mask certain programming errors. For example, trying to send an e-mail without a To: address would normally result in an error. With email interception, however, a valid To: address would be used, and seemingly work as expected. Before switching off the interception, the only way to know whether you did everything right is to check the X-Intercepted-To: header and verify its correctness. Probably even easier, you should just monitor error log files as the original e-mail destination is reported there as well.

AVAILABILITY

MV_EMAIL_INTERCEPT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/email_raw.tag
Line 23 (context shows lines 13-27)

UserTag email-raw Version     $Revision: 1.8 $
UserTag email-raw Routine     <<EOR
sub {
my($opt, $body) = @_;
my($ok);
$body =~ s/^\s+//;

# If configured, intercept all outgoing email and re-route
if (
my $intercept = $::Variable->{MV_EMAIL_INTERCEPT}
                || $Global::Variable->{MV_EMAIL_INTERCEPT}
) {
$body =~ s/\A(.*?)\r?\n\r?\n//s;
my $header_block = $1;
  # unfold valid RFC 2822 "2.2.3. Long Header Fields"

Source: lib/Vend/Util.pm
Line 2113 (context shows lines 2103-2117 in send_mail():2078)

  }
  elsif($_) {
    push @extra_headers, $_;
  }
}
}

# If configured, intercept all outgoing email and re-route
if (
my $intercept = $::Variable->{MV_EMAIL_INTERCEPT}
                || $Global::Variable->{MV_EMAIL_INTERCEPT}
) {
my @info_headers;
$to = "To: $to";
  for ($to, @extra_headers) {

Source: lib/Vend/Email.pm
Line 336 (context shows lines 326-340 in tag_mime_lite_email():91)

  ::logError("Header injection attempted in tag_mime_lite_email: %s", $1);
  return;
};
}

#
# Support e-mail interception (re-writing to/cc/bcc to specified
# address(es)).
#
$intercept ||= $::Variable->{MV_EMAIL_INTERCEPT} ||
$Global::Variable->{MV_EMAIL_INTERCEPT};

if ( $intercept && $Have_MIME_Lite) {
for my $field (qw/to cc bcc/) {
    if ( $opt->{$field} ) {

Source: lib/Vend/Email.pm
Line 596 (context shows lines 586-600 in send_mail_legacy():561)

  }
  elsif($_) {
    push @extra_headers, $_;
  }
}
}

# If configured, intercept all outgoing email and re-route
if (
my $intercept = $::Variable->{MV_EMAIL_INTERCEPT}
                || $Global::Variable->{MV_EMAIL_INTERCEPT}
) {
my @info_headers;
$to = "To: $to";
  for ($to, @extra_headers) {


Name

MV_ERROR_STD_LABEL — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

If defined, it overrides the default error message in the stdlabel field.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_ERROR_STD_LABEL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/error.coretag
Line 129 (context shows lines 119-133 in tag_error():33)

  unless $opt->{std_label} || $text || $opt->{show_error};
$err = filter_value($opt->{filter}, $err)
  if $opt->{filter};
if($opt->{std_label}) {
  # store the error label in user's session for later
  # possible use in [error show_label=1] calls
  $Vend::Session->{errorlabels}{$var} = $opt->{std_label};
  if($text) {
    # do nothing
  }
  elsif(defined $::Variable->{MV_ERROR_STD_LABEL}) {
    $text = $::Variable->{MV_ERROR_STD_LABEL};
  }
  else {
    my $contrast = $::Variable->{CSS_CONTRAST} || 'mv_contrast';

Source: code/SystemTag/error.coretag
Line 145 (context shows lines 135-149 in tag_error():33)

<span class="$contrast">{LABEL} <small><i>(%s)</i></small></span>
[else]{REQUIRED <b>}{LABEL}{REQUIRED </b>}[/else]
EOF
  }
  $text =~ s/{LABEL}/$opt->{std_label}/g;
  $text =~ s/{REQUIRED\s+([^}]*)}/$opt->{required} ? $1 : ''/ge;
  $err =~ s/\s+$//;
}
$text = '' unless defined $text;
$text .= '%s' unless ($text =~ /\%s/ ||
                              length $::Variable->{MV_ERROR_STD_LABEL});

$text = pull_else($text, $found_error);
$text =~ s/\%s/$err/;
return $text;

SEE ALSO

error(7ic)


Name

MV_FILE — contains the name of the last file read or of an external Perl routine

SYNOPSIS

@@MV_FILE@@

DESCRIPTION

This variable contains the filename of the most recently returned contents. The value is not set in the configuration files, but is manipulated by the Interchange daemon while it is runnning.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Display the content of the MV_FILE variable

Add the follwing to a test Interchange page:

The last filename is: @@MV_FILE@@

NOTES

The variable is not intended to be written to.

AVAILABILITY

MV_FILE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/File.pm
Line 237 (context shows lines 227-241 in readfile():196)

  }
}

if(! $file) {

  $contents = readfile_db($ifile);
  return undef unless defined $contents;
}
else {
  return undef unless open(READIN, "< $file");
  $Global::Variable->{MV_FILE} = $file;

  binmode(READIN) if $Global::Windows;

      if ($encoding) {

SEE ALSO


Name

MV_FORTUNE_COMMAND — location of the Unix fortune program

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies the location of the infamous Unix fortune program binary.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Setting MV_FORTUNE_COMMAND

Variable MV_FORTUNE_COMMAND /usr/local/bin/fortune

NOTES

AVAILABILITY

MV_FORTUNE_COMMAND is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/fortune.tag
Line 16 (context shows lines 6-20)

# (at your option) any later version.  See the LICENSE file for details.
# 
# $Id: fortune.tag,v 1.7 2007-03-30 23:40:57 pajamian Exp $

UserTag fortune Order   short
UserTag fortune addAttr
UserTag fortune Version $Revision: 1.7 $
UserTag fortune Routine <<EOR
sub {
my ($short, $opt) = @_;
my $cmd = $Global::Variable->{MV_FORTUNE_COMMAND} || '/usr/games/fortune';
my @flags;
push @flags, '-s' if is_yes($short);
for(grep length($_) == 1, keys %$opt) {
  push @flags, "-$_" if $opt->{$_};

SEE ALSO


Name

MV_GETPPID_BROKEN — fix getppid() which is broken on Linux systems with thread-enabled Perl

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

The variable enables a fix for the broken getppid() function on Linux systems with thread-enabled Perl installations. Interchange then uses syscall64() instead of the getppid() call.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Enabling MV_GETPPID_BROKEN

Add the following to interchange.cfg:

Variable MV_GETPPID_BROKEN 1

NOTES

Starting with Interchange 5.0, this directive is present in the default Debian GNU /etc/interchange/features.cfg file to let Interchange run on Debian systems later than 3.0 (which do have threaded Perl installation).

Running Interchange in production on thread-enabled Perl machines is discouraged (for the time being).

AVAILABILITY

MV_GETPPID_BROKEN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Server.pm
Line 3008 (context shows lines 2998-3012 in run_server():3001)

return $pid;
}

sub run_server {
  my $next;
#::logDebug("trying to run server");

@$Global::SocketFile = "$Global::VendRoot/etc/socket"
  unless @$Global::SocketFile and $Global::SocketFile->[0];

if($Global::Variable->{MV_GETPPID_BROKEN}) {
#::logDebug("setting getppid broken");
  my $num = $Global::Variable->{MV_GETPPID_BROKEN} > 1
      ? $Global::Variable->{MV_GETPPID_BROKEN}
      : 64;

SEE ALSO


Name

MV_HELO — the HELO string to send when using SMTP to send mail

SYNOPSIS

{host name}

DESCRIPTION

If SMTP is used to send mail, MV_HELO variable specifies the HELO string to present to the remote system.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Using SMTP to send mail and setting a HELO string

Add the following to interchange.cfg:

SendMailProgram Net::SMTP
Variable MV_HELO myhost.mydomain.local

NOTES

AVAILABILITY

MV_HELO is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 2185 (context shows lines 2175-2189 in send_mail():2078)

  or last SEND;
print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
if $use_mime;
print MVMAIL "\r\n\cZ" if $Global::Windows;
close MVMAIL or last SEND;
$ok = ($? == 0);
}

SMTP: {
my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
  };

Source: lib/Vend/Email.pm
Line 668 (context shows lines 658-672 in send_mail_legacy():561)

  or last SEND;
print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
if $use_mime;
print MVMAIL "\r\n\cZ" if $Global::Windows;
close MVMAIL or last SEND;
$ok = ($? == 0);
}

SMTP: {
my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
  };


Name

MV_HTML4_COMPLIANT — output HTML4-compliant HTML code

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

This variable,if set, makes Interchange output HTML4-compliant HTML.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Enabling the MV_HTML4_COMPLIANT feature

Add the following to interchange.cfg:

Variable MV_HTML4_COMPLIANT 1

NOTES

Currently, this variable only affects the "joiner" element when the links are created. &amp; is used instead of plain & when this variable is set.

AVAILABILITY

MV_HTML4_COMPLIANT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Config.pm
Line 3641 (context shows lines 3631-3645 in global_directive_postprocess():3639)

    $C->{ExternalExport} = external_cat($C->{ExternalExport});
    $Global::ExternalStructure->{Catalogs}{ $C->{CatalogName} }{external_config}
      = $C->{ExternalExport};
    Vend::Util::uneval_file($Global::ExternalStructure, $Global::ExternalFile);
    chmod 0644, $Global::ExternalFile;
  },
);

sub global_directive_postprocess {
if ($Global::UrlSepChar eq '&') {
  if ($Global::Variable->{MV_HTML4_COMPLIANT}) {
    $Global::UrlJoiner = '&amp;';
    $Global::UrlSplittor = qr/\&amp;|\&/;
  }
  else {


Name

MV_HTTP_CHARSET

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Global variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_HTTP_CHARSET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Server.pm
Line 605 (context shows lines 595-609 in respond():597)

}

sub respond {
# $body is now a reference
my ($s, $body) = @_;
#show_times("begin response send") if $Global::ShowTimes;

# Safe kludge: duplicate Vend::CharSet::default_charset method here
# so that $Document->send() will work from within Safe
my $c = $Global::Selector{$CGI::script_name};
my $response_charset = $c->{Variable}{MV_HTTP_CHARSET} || $Global::Variable->{MV_HTTP_CHARSET};

my $status;
return if $Vend::Sent;
if($Vend::StatusLine) {

Source: lib/Vend/CharSet.pm
Line 100 (context shows lines 90-104 in default_charset():98)

# this can/will come in handy.
sub mime_name {
  my $encoding_name = shift;

  $encoding_name =~ s/-strict//i;
  return lc $encoding_name;
}

sub default_charset {
my $c = $Global::Selector{$CGI::script_name};
return $c->{Variable}{MV_HTTP_CHARSET} || $Global::Variable->{MV_HTTP_CHARSET};
}

# this sub taken from the perluniintro man page, for diagnostic purposes
sub display_chars {

SEE ALSO


Name

MV_MAILFROM — specifies the default sender e-mail address when SMTP is used to send mail

SYNOPSIS

{ user name | e-mail address }

DESCRIPTION

If SMTP is used to send mail from Interchange, this variable specifies the default sender e-mail address.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

Example: Setting the MV_MAILFROM variable

Add the following to interchange.cfg:

Variable MV_MAILFROM interchange

NOTES

AVAILABILITY

MV_MAILFROM is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 2200 (context shows lines 2190-2204 in send_mail():2078)

last SMTP if $@;
$ok = 0;
$using = "Net::SMTP (mail server $mhost)";
#::logDebug("using $using");
undef $none;

my $smtp = Net::SMTP->new($mhost, Debug => $Global::Variable->{DEBUG}, \
 \
 \
 Hello => $helo) or last SMTP;
#::logDebug("smtp object $smtp");

my $from = $::Variable->{MV_MAILFROM}
|| $Global::Variable->{MV_MAILFROM}
|| $Vend::Cfg->{MailOrderTo};

for(@extra_headers) {
  s/\s*$/\n/;

Source: lib/Vend/Email.pm
Line 288 (context shows lines 278-292 in tag_mime_lite_email():91)

# TO
if (!( $opt->{to} and @{ $opt->{to} } )) {
::logError('mime_lite_email called without the required to= option.');
return;
}

# FROM
if (! $opt->{from} ) {
$opt->{from} =
  $::Variable->{MV_MAILFROM}       ||
  $Global::Variable->{MV_MAILFROM} ||
  $Vend::Cfg->{MailOrderTo};
}
$opt->{from} or do {
  ::logError('Cannot find value for From: header. Make sure ' .

Source: lib/Vend/Email.pm
Line 683 (context shows lines 673-687 in send_mail_legacy():561)

last SMTP if $@;
$ok = 0;
$using = "Net::SMTP (mail server $mhost)";
#::logDebug("using $using");
undef $none;

my $smtp = Net::SMTP->new($mhost, Debug => $Global::Variable->{DEBUG}, Hello => $helo);
#::logDebug("smtp object $smtp");

my $from = $::Variable->{MV_MAILFROM}
|| $Global::Variable->{MV_MAILFROM}
|| $Vend::Cfg->{MailOrderTo};

for(@extra_headers) {
  s/\s*$/\n/;


Name

MV_MENU_DIRECTORY — directory for menu files

SYNOPSIS

{ path }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable MV_MENU_DIRECTORY menus

NOTES

AVAILABILITY

MV_MENU_DIRECTORY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Menu.pm
Line 2279 (context shows lines 2269-2283 in menu():2133)

  $opt->{toggle_anchor_clear} = Vend::Tags->image( {
          src => $opt->{img_clear} || $menu_default_img{clear},
          getsize => 0,
          border => 0,
          extra => $opt->{img_clear_extra},
          });
#::logDebug("toggle_anchor_clear=$opt->{toggle_anchor_clear}");
}

if($opt->{use_file}) {
  $opt->{file} = $::Variable->{MV_MENU_DIRECTORY} || 'include/menus';
  if(! $opt->{name}) {
    logError("No file or name specified for menu.");
  }
  my $nm = escape_chars($opt->{name});

Source: lib/Vend/Menu.pm
Line 2340 (context shows lines 2330-2344 in menu():2133)

    $opt->{img_clear_extra} ||= qq{height="1" width="$1"};
  }
  $opt->{toggle_anchor_clear} = Vend::Tags->image( {
          src => $opt->{img_clear} || $menu_default_img{clear},
          getsize => 0,
          border => 0,
          extra => $opt->{img_clear_extra},
          });
}
if($opt->{use_file}) {
  $opt->{file} = $::Variable->{MV_MENU_DIRECTORY} || 'include/menus';
  if(! $opt->{name}) {
    logError("No file or name specified for menu.");
  }
  my $nm = escape_chars($opt->{name});

Source: lib/Vend/Menu.pm
Line 2357 (context shows lines 2347-2361 in menu():2133)

  }

  return old_flyout($name,$opt,$template) unless $opt->{dhtml_browser};
  return dhtml_flyout($name,$opt,$template);
}
elsif($opt->{menu_type} eq 'simple') {
  if($opt->{search} || $opt->{list}) {
    ## Do nothing
  }
  elsif(! $opt->{file}) {
    $opt->{file} = $::Variable->{MV_MENU_DIRECTORY} || 'include/menus';
    if(! $opt->{name}) {
      logError("No file or name specified for menu.");
    }
    my $nm = escape_chars($opt->{name});

SEE ALSO

menu(7ic)


Name

MV_NO_CRYPT — disable the use of password encryption server-wide

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

If configured, this variable disables the use of crypt() function and/or MD5 password hashing server-wide.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Enabling the MV_NO_CRYPT feature

Add the following to interchange.cfg:

Variable MV_NO_CRYPT 1

NOTES

This variable is a legacy thing and could be removed at some point.

AVAILABILITY

MV_NO_CRYPT is available in Interchange versions:

5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/UserDB.pm
Line 446 (context shows lines 436-450 in new():390)

PASSWORD    => $options{password}  || $CGI::values{mv_password} || '',
VERIFY    => $options{verify}    || $CGI::values{mv_verify}   || '',
NICKNAME     => $options{nickname}  || '',
PROFILE     => $options{profile}  || '',
LAST       => '',
USERMINLEN  => $options{userminlen}  || 2,
PASSMINLEN  => $options{passminlen}  || 4,
VALIDCHARS  => $options{validchars} ? ('[' . $options{validchars} \
 . ']') : $USERNAME_GOOD_CHARS,
CRYPT      => defined $options{'crypt'}
        ? $options{'crypt'}
        : ! $::Variable->{MV_NO_CRYPT},
CGI      =>  ( defined $options{cgi} ? is_yes($options{cgi}) : 1),
PRESENT    =>  { },
DB_ID    =>  $options{database} || 'userdb',
OPTIONS    =>  \%options,

Source: lib/Vend/Util.pm
Line 1503 (context shows lines 1493-1507 in check_authorization():1488)

          ":",
          MIME::Base64::decode_base64($auth),
          2,
          );
my $cmp_pw;
my $use_crypt = 1;
if(  $user eq $Vend::Cfg->{RemoteUser}  and
    $Vend::Cfg->{Password}          )
{
  $cmp_pw = $Vend::Cfg->{Password};
  undef $use_crypt if $::Variable->{MV_NO_CRYPT};
}
else {
  $pwinfo = $Vend::Cfg->{UserDatabase} unless $pwinfo;
  undef $use_crypt if $::Variable->{MV_NO_CRYPT};

Source: lib/Vend/Util.pm
Line 1507 (context shows lines 1497-1511 in check_authorization():1488)

my $cmp_pw;
my $use_crypt = 1;
if(  $user eq $Vend::Cfg->{RemoteUser}  and
  $Vend::Cfg->{Password}          )
{
$cmp_pw = $Vend::Cfg->{Password};
undef $use_crypt if $::Variable->{MV_NO_CRYPT};
}
else {
$pwinfo = $Vend::Cfg->{UserDatabase} unless $pwinfo;
undef $use_crypt if $::Variable->{MV_NO_CRYPT};
  $cmp_pw = Vend::Interpolate::tag_data($pwinfo, 'password', $user)
    if defined $Vend::Cfg->{Database}{$pwinfo};
}



Name

MV_ONFLY_FIELDS

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_ONFLY_FIELDS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 680 (context shows lines 670-684 in onfly():666)

$item_text = $opt->{text} || '';
}
else {
$item_text = $opt;
$opt = {};
}

#  return create_onfly() if $opt->{create};

my $joiner    = $::Variable->{MV_ONFLY_JOINER} || '|';
my $split_fields= $::Variable->{MV_ONFLY_FIELDS} || undef;

$item_text =~ s/\s+$//;
$item_text =~ s/^\s+//;
my @parms;

SEE ALSO


Name

MV_ONFLY_JOINER

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_ONFLY_JOINER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 679 (context shows lines 669-683 in onfly():666)

if (ref $opt) {
  $item_text = $opt->{text} || '';
}
else {
  $item_text = $opt;
  $opt = {};
}

#  return create_onfly() if $opt->{create};

my $joiner    = $::Variable->{MV_ONFLY_JOINER} || '|';
my $split_fields= $::Variable->{MV_ONFLY_FIELDS} || undef;

$item_text =~ s/\s+$//;
$item_text =~ s/^\s+//;

SEE ALSO


Name

MV_OPTION_TABLE — name of database for product options

SYNOPSIS

{ database }

DESCRIPTION

If the Interchange variable MV_OPTION_TABLE is not set, it defaults to "options", which combines options for Simple, Matrix, and Modular into that one table.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

The term database in Interchange lingo has a different meaning as in common language, please check database for more information.

AVAILABILITY

MV_OPTION_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Options.pm
Line 104 (context shows lines 94-108 in find_options_type():61)

        };
    $item->{$attrib} = tag_data($tab, $field, $sku);
  }
  $module = $item->{$attrib} || '';
}
else {
  ## Old style options
  my $loc = $Vend::Cfg->{Options_repository}{Old48} || {};
  my $table = $opt->{table}
        ||= (
            $loc->{table} || $::Variable->{MV_OPTION_TABLE} || 'options'
        );
  my $db = $Vend::Interpolate::Db{$table} || database_exists_ref($table)
      or return;
  $db->record_exists($sku)

Source: lib/Vend/Options/Simple.pm
Line 152 (context shows lines 142-156 in display_options():138)


$loc ||= $Vend::Cfg->{Options_repository}{Simple} || {};
my $map = $loc->{map} || {};

my $sku = $item->{code};

my $db;
my $tab;
if(not $db = $opt->{options_db}) {
  $tab = $opt->{table} ||= $loc->{table} 
             ||= $::Variable->{MV_OPTION_TABLE}
             ||= 'options';
  $db = database_exists_ref($tab)
    or do {
      logOnce(

Source: lib/Vend/Options/Old48.pm
Line 87 (context shows lines 77-91 in display_options_matrix():77)

sub display_options_matrix {
my ($item, $opt, $loc) = @_;

$loc ||= $Vend::Cfg->{Options_repository}{Old48} || \%Default;
#::logDebug("Matrix options by module, old");
my $sku = $item->{mv_sku} || $item->{code};
my $db;
my $tab;

if(not $db = $opt->{options_db}) {
  $tab = $opt->{table} || $::Variable->{MV_OPTION_TABLE} || 'options';
  $db = database_exists_ref($tab)
    or do {
      logOnce(
          "Matrix options: unable to find table %s for item %s",

Source: lib/Vend/Options/Old48.pm
Line 359 (context shows lines 349-363 in display_options_simple():348)

my ($item, $opt) = @_;
#::logDebug("Simple options, item=" . ::uneval($item) . "\nopt=" . ::uneval($opt));
my $map = $opt->{options_map} ||= {};
#::logDebug("Simple options by module, old");

my $sku = $item->{code};
my $db;
my $tab;
if(not $db = $opt->{options_db}) {
$tab = $opt->{table} ||= $::Variable->{MV_OPTION_TABLE_SIMPLE}
           ||= $::Variable->{MV_OPTION_TABLE}
           ||= 'options';
$db = database_exists_ref($tab)
  or do {
      logOnce(

SEE ALSO


Name

MV_OPTION_TABLE_MAP — applies column mapping to all options types

SYNOPSIS

{ }

DESCRIPTION

It is a quoted space-delimited list of fields in the form of "field1=field2" to map options into.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable MV_OPTION_TABLE_MAP o_label=title

NOTES

AVAILABILITY

MV_OPTION_TABLE_MAP is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Data.pm
Line 1388 (context shows lines 1378-1392 in remap_options():1373)

  my @del;
  my ($k, $v);
  while (($k, $v) = each %opt_map) {
    next unless defined $record->{$v};
    $rec{$k} = $record->{$v};
    push @del, $v;
  }
  delete @{$record}{@del};
  @{$record}{keys %rec} = (values %rec);
}
elsif($::Variable->{MV_OPTION_TABLE_MAP}) {
  $opt_remap = $::Variable->{MV_OPTION_TABLE_MAP};
  $opt_remap =~ s/^\s+//;
  $opt_remap =~ s/\s+$//;
  map { m{(.*?)=(.*)} and $opt_map{$2} = $1} split /[\0,\s]+/, $opt_remap;

Source: lib/Vend/Options/Old48.pm
Line 124 (context shows lines 114-128 in display_options_matrix():77)


if(not $opt->{display_type} ||= $record->{display_type}) {
  $opt->{display_type} = $record->{o_matrix} == 2 ? 'separate' : 'single';
}

$opt->{display_type} = lc $opt->{display_type};

my $map;
if(not $map = $opt->{options_map}) {
  $map = $opt->{options_map} = {};
  if(my $remap = $opt->{remap} || $::Variable->{MV_OPTION_TABLE_MAP}) {
    remap_option_record($record, $map, $remap);
  }
}


SEE ALSO


Name

MV_OPTION_TABLE_SIMPLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_OPTION_TABLE_SIMPLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Options/Old48.pm
Line 358 (context shows lines 348-362 in display_options_simple():348)

sub display_options_simple {
my ($item, $opt) = @_;
#::logDebug("Simple options, item=" . ::uneval($item) . "\nopt=" . ::uneval($opt));
my $map = $opt->{options_map} ||= {};
#::logDebug("Simple options by module, old");

my $sku = $item->{code};
my $db;
my $tab;
if(not $db = $opt->{options_db}) {
  $tab = $opt->{table} ||= $::Variable->{MV_OPTION_TABLE_SIMPLE}
             ||= $::Variable->{MV_OPTION_TABLE}
             ||= 'options';
  $db = database_exists_ref($tab)
    or do {

SEE ALSO


Name

MV_ORDER_COUNTER_FILE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_ORDER_COUNTER_FILE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 124 (context shows lines 114-128)


=item regkey

PRI will supply you with both a test regkey and production regkey.  Enter \
 both of these numbers into the the variables above.  You do not \
 need your production regkey to test. 

=item refid

The PRI interface allows (requires) a field called REFID.  This field is \
 stored along with the transaction on the PRI server and allows your \
 to do quick searches for transactions if this number has meaning. \
  There are three possible values for the PRI_REFID_MODE variable. \
  1,2 or any other character or null.  

1.  A "1" in the pri_refid_mode instructs interchange to read the current
order number in $Variable->{MV_ORDER_COUNTER_FILE} or "etc/order.number",
increment it by one and use that. Do not use this mode if you have a \
 busy catalog.  PRI might reject orders as duplicates if two people \
 try to checkout at the same time.

2. A "2" in the pri_refid_mode instructs interchange to use the users
session_id as the value.  This is the recommended mode.

Source: lib/Vend/Payment/PRI.pm
Line 365 (context shows lines 355-369 in PRI():316)

  $transtype = $type_map{$transtype};
}

if ( ! $amount ) {
  $amount = Vend::Interpolate::total_cost();
  $amount = Vend::Util::round_to_frac_digits($amount,$precision);
}

# figure out what refid should be
if ( $opt->{refid_mode} == 1 ) {
  my $cfn = $Variable->{MV_ORDER_COUNTER_FILE} || 'etc/order.number';
  $new_order_number = $Tag->file($cfn);
  $new_order_number =~ s/.*\n([A-Za-z0-9]+).*$/$1/s;
  ++$new_order_number;
  $refid = $new_order_number;

SEE ALSO


Name

MV_PAGE — contains the relative pathname of the current page

SYNOPSIS

@@MV_PAGE@@

DESCRIPTION

This variable contains relative, system-wide path of the current page being served, without the suffix. The variable is not set in the configuration files, but is manipulated by the Interchange daemon while it is runnning.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Reading the value of MV_PAGE

Add the following to a test Interchange page:

Filename: @@MV_PAGE@@

NOTES

This variable is not intended to be written to.

AVAILABILITY

MV_PAGE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/css.tag
Line 34 (context shows lines 24-38)

my $id = "";

if (! $opt->{no_imagedir} ) {
  $id = $opt->{imagedir} || $Vend::Cfg->{ImageDir};
  $id =~ s:/*$:/:;
}

$dir =~ s:/+$::;

if($opt->{relative}) {
  my @dirs = split m{/}, $Global::Variable->{MV_PAGE};
  pop @dirs;
  if(@dirs) {
    $id .= join "/", @dirs, '';
    $dir = join "/", $dir, @dirs;

Source: code/UserTag/bar_button.tag
Line 18 (context shows lines 8-22)

# $Id: bar_button.tag,v 1.5 2007-03-30 23:40:56 pajamian Exp $

UserTag bar-button Order     page current
UserTag bar-button PosNumber 2
UserTag bar-button HasEndTag 1
UserTag bar-button Version   $Revision: 1.5 $
UserTag bar-button Routine   <<EOR
sub {
use strict;
my ($page, $current, $html) = @_;
$current = $Global::Variable->{MV_PAGE}
  if ! $current;
$html =~ s!\[selected\]((?s:.)*)\[/selected]!!i;
my $alt = $1;
return $html if $page ne $current;

Source: code/UserTag/forum.tag
Line 133 (context shows lines 123-137)

EOF

my $lastlevel = 0;
my @uls;

my $Tag = new Vend::Tags;
my $row = shift;

$opt->{reply_page} ||= 'forum/reply';
$opt->{submit_page} ||= 'forum/submit';
$opt->{display_page} ||= $Global::Variable->{MV_PAGE};
$opt->{date_format} ||= '%B %e, %Y @%H:%M';
my $menu_row = sub {
  shift;
  my $row = shift;

Source: code/UserTag/page_meta.tag
Line 16 (context shows lines 6-20)

# (at your option) any later version.  See the LICENSE file for details.
# 
# $Id: page_meta.tag,v 1.4 2007-03-30 23:40:57 pajamian Exp $

UserTag page-meta Order   page
UserTag page-meta addAttr
UserTag page-meta Version $Revision: 1.4 $
UserTag page-meta Routine <<EOR
sub {
my ($page, $opt) = @_;
$page ||= $Global::Variable->{MV_PAGE};
$page = "pages/$page";
my $meta = Vend::Table::Editor::meta_record($page)
  or return;
while (my ($k, $v) = each %$meta) {

Source: code/UI_Tag/return_to.coretag
Line 63 (context shows lines 53-67)

  if($opt->{stack} or $CGI::values{ui_return_stack}) {
    $type = 'formlink';
  }
  else {
    $type = 'done';
    $out .= "ui_return_to=\n";
  }
}

if($type eq 'formlink') {
  $page = $Global::Variable->{MV_PAGE} if ! $page;
  $out .= qq{ui_return_to=$page\n};
  for(@args) {
    tr/\n/\r/;
    $out .= qq{ui_return_to=$_\n}

Source: code/UI_Tag/return_to.coretag
Line 71 (context shows lines 61-75)


if($type eq 'formlink') {
$page = $Global::Variable->{MV_PAGE} if ! $page;
$out .= qq{ui_return_to=$page\n};
for(@args) {
  tr/\n/\r/;
  $out .= qq{ui_return_to=$_\n}
  }
}
elsif($type eq 'url') {
  $page = $Global::Variable->{MV_PAGE} if ! $page;
  $out .= $Tag->area( {
              href => $page,
              form => join("\n", @args),
            });

Source: code/UI_Tag/return_to.coretag
Line 78 (context shows lines 68-82)

}
}
elsif($type eq 'url') {
$page = $Global::Variable->{MV_PAGE} if ! $page;
$out .= $Tag->area( {
            href => $page,
            form => join("\n", @args),
          });
}
elsif ($type eq 'form') {
  $page = $Global::Variable->{MV_PAGE} if ! $page;
  $out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="$page">\n};
  for(@args) {
    s/"/&quot;/g;
    $out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="$_">\n}

Source: code/UI_Tag/return_to.coretag
Line 86 (context shows lines 76-90)

}
elsif ($type eq 'form') {
$page = $Global::Variable->{MV_PAGE} if ! $page;
$out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="$page">\n};
for(@args) {
  s/"/&quot;/g;
  $out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="$_">\n}
  }
}
elsif ($type eq 'regen') {
  $page = $Global::Variable->{MV_PAGE} if ! $page;
  $out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="ui_return_to=$page">\n};
  for(@args) {
    s/"/&quot;/g;
    $out .= qq{<INPUT TYPE=hidden NAME=ui_return_to VALUE="ui_return_to=$_">\n}

Source: code/UI_Tag/assume_identity.tag
Line 26 (context shows lines 16-30)

my ($file, $locale, $opt) = @_;
my $pn;
if($opt and $opt->{name}) {
  $pn = $opt->{name};
}
else {
  $pn = $file;
  $pn =~ s/\.\w+$//;
  $pn =~ s:^pages/::;
}
$Global::Variable->{MV_PAGE} = $pn;
$locale = 1 unless defined $locale;
return Vend::Interpolate::interpolate_html(
  Vend::Util::readfile($file, undef, $locale)
);

Source: code/UI_Tag/flex_select.coretag
Line 727 (context shows lines 717-731 in flex_select_init():30)

    $meta_anchor = 'M';
  }
}

$opt->{form_name} ||= "fs_$table";

$output{TOP_OF_TABLE} = <<EOF;
<table width="$opt->{table_width}" border="$opt->{table_border}" cellpadding="$opt->{table_padding}" \
 cellspacing="$opt->{table_spacing}" class="$opt->{table_class}">
EOF

my $cwp = $Global::Variable->{MV_PAGE};
$opt->{form_href} ||= $CGI->{ui_searchpage} || $cwp;
$opt->{form_extra} ||= '';
$opt->{form_extra} .= qq{ name="$opt->{form_name}"} if $opt->{form_name};
$opt->{form_extra} =~ s/^\s*/ /;

Source: code/UI_Tag/flex_select.coretag
Line 882 (context shows lines 872-886 in flex_select_init():30)

<td$td_extra>
<table align="left" class="$opt->{group_class}" cellspacing=$opt->{group_spacing} \
 cellpadding=$opt->{group_padding} width="$opt->{group_width}">
<tr>
EOF
unless($opt->{no_group} || $m->{fs_no_group}) {
  my $u = $Tag->area({
            href => 'admin/flex_group',
            form => qq(
                  mv_data_table=$table
                  ui_meta_view=$mview
                  from_page=$Global::Variable->{MV_PAGE}
                  mv_arg=$col
                ),
          });
  my $msg = errmsg('Select group by %s', $col);

Source: code/UI_Tag/file_navigator.coretag
Line 172 (context shows lines 162-176)

    @files = grep $_ ne 'CVS', glob('*');
  }
  else {
    @files = split /\s+/, $dir_mask;
  }
}
else {
  @files = grep $_ !~ m{/CVS$}, glob("$curdir/*");
}

my $this_page = $Global::Variable->{MV_PAGE};
my $this = Vend::Interpolate::tag_area($this_page);
$this =~ s/\?(.*)//;

my $up_img = qq{<img src="up.gif" align=center border=0 height=22 width=20 title="upload ~FN~">};

Source: code/UI_Tag/if_mm.coretag
Line 105 (context shows lines 95-109)

  $opt->{table} = $field;
}

$table = $opt->{table} || $table;

my $acl;
my $check;
$status = 0, last CHECKIT if $func eq 'super';
if($check = $file_func{$func}) {
  $status = 1, last CHECKIT unless $record->{$check};
  my $file = $field || $Global::Variable->{MV_PAGE};
  # strip trailing slashes for checks on directories
  $file =~ s%/+$%%;                     
#::logDebug("check=$check file=$file record=$record->{$check} prefix=$opt->{prefix}");
  my @files =  UI::Primitive::list_glob($record->{$check}, $opt->{prefix});

Source: code/UI_Tag/auto_wizard.coretag
Line 925 (context shows lines 915-929 in compile_wizard():426)

  </td>
  <td class=cdata width=500> 
          $WIDGET$
  </td>
</tr>
<tr class=rspacer>
  <td colspan=2><img src="bg.gif" height=1 width=1></td>
EOF

 $opts{ui_wizard_fields} = join " ", @$name;
 $opts{mv_nextpage} = $Global::Variable->{MV_PAGE};
 $opts{mv_prevpage} = $Global::Variable->{MV_PAGE} if $current_page != 1;
 $opts{bottom_buttons} = 1;

#::logDebug("walking optref");

Source: lib/Vend/Interpolate.pm
Line 3257 (context shows lines 3247-3261 in tag_more_list():3223)



$session = $q->{mv_cache_key};
my $first = $q->{mv_first_match} || 0;
$chunk = $q->{mv_matchlimit};
$perm = $q->{mv_more_permanent} ? ':1' : '';
$total = $q->{matches};
my $next = defined $q->{mv_next_pointer}
      ? $q->{mv_next_pointer}
      : $first + $chunk;
$page = $q->{mv_search_page} || $Global::Variable->{MV_PAGE};
$prefix = $q->{prefix} || '';
my $form_arg = "mv_more_ip=1\nmv_nextpage=$page";
$form_arg .= "\npf=$q->{prefix}" if $q->{prefix};
$form_arg .= "\n$opt->{form}" if $opt->{form};

Source: lib/Vend/Interpolate.pm
Line 4801 (context shows lines 4791-4805 in tag_loop_list():4794)

  return $page;
}

sub tag_loop_list {
my ($list, $opt, $text) = @_;

my $fn;
my @rows;

$opt->{prefix} ||= 'loop';
$opt->{label}  ||= "loop" . ++$::Instance->{List_it} . $Global::Variable->{MV_PAGE};

#::logDebug("list is: " . uneval($list) );

## Thanks to Kaare Rasmussen for this suggestion

Source: lib/Vend/Interpolate.pm
Line 5270 (context shows lines 5260-5274 in timed_build():5203)

my $secs;
CHECKDIR: {
  last CHECKDIR if Vend::File::file_name_is_absolute($file);
  last CHECKDIR if $file and $file !~ m:/:;
  my $dir;
  if ($file) {
    $dir = '.';
  }
  else {
    $dir = 'timed';
    $file = $saved_file || $Vend::Flypart || $Global::Variable->{MV_PAGE};
#::logDebug("static=$file");
    if($saved_file) {
      $file = $saved_file;
      $file =~ s:^scan/::;

Source: lib/Vend/Interpolate.pm
Line 5279 (context shows lines 5269-5283 in timed_build():5203)

$dir = 'timed';
$file = $saved_file || $Vend::Flypart || $Global::Variable->{MV_PAGE};
#::logDebug("static=$file");
if($saved_file) {
  $file = $saved_file;
  $file =~ s:^scan/::;
    $file = generate_key($file);
    $file = "scan/$file";
  }
  else {
    $saved_file = $file = ($Vend::Flypart || $Global::Variable->{MV_PAGE});
  }
  $file .= $Vend::Cfg->{HTMLsuffix};
}
$dir .= "/$1" 

Source: lib/Vend/Form.pm
Line 340 (context shows lines 330-344 in links():323)

$opt->{extra} = " $opt->{extra}" if $opt->{extra};

my $template = $opt->{template} || <<EOF;
<a href="{URL}"{EXTRA}>{SELECTED <b>}{LABEL}{SELECTED </b>}</a>
EOF

my $o_template = $opt->{o_template} || <<EOF;
<b>{TVALUE}</b>
EOF

my $href = $opt->{href} || $Global::Variable->{MV_PAGE};
$opt->{form} = "mv_action=return" unless $opt->{form};

my $no_encode = $opt->{pre_filter} eq 'decode_entities' ? 1 : 0;


Source: lib/Vend/Util.pm
Line 1153 (context shows lines 1143-1157 in readin():1137)

my($fn, $contents, $gate, $pathdir, $dir, $level);
local($/);

if($file =~ m{[\[<]}) {
::logGlobal("Possible code/SQL injection attempt with file name '%s'", $file);
$file = escape_chars($file);
::logGlobal("Suspect file changed to '%s'", $file);
}

$Global::Variable->{MV_PREV_PAGE} = $Global::Variable->{MV_PAGE}
if defined $Global::Variable->{MV_PAGE};
$Global::Variable->{MV_PAGE} = $file;

$file =~ s#^\s+##;
$file =~ s#\s+$##;

Source: lib/Vend/Util.pm
Line 1344 (context shows lines 1334-1348 in vendUrl():1288)

or     ($Vend::Cookie and $::Scratch->{mv_no_session_id});
$ct = ++$Vend::Session->{pageCount}
unless $opt->{no_count};

if($opt->{no_session} or $::Pragma->{url_no_session_id}) {
undef $id;
undef $ct;
}

if($opt->{link_relative}) {
  my $cur = $Global::Variable->{MV_PAGE};
  $cur =~ s{/[^/]+$}{}
    and $path = "$cur/$path";
}



Name

MV_PAYMENT_BILLING_INDICATOR

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_BILLING_INDICATOR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment.pm
Line 207 (context shows lines 197-211 in map_actual():104)

        /;

my @billing_ind = qw/
          b_address1
          b_city
        /;

if(my $str = $::Variable->{MV_PAYMENT_BILLING_SET}) {
@billing_set = grep $_ !~ /\W/, split /[\s,\0]+/, $str;
}
if(my $str = $::Variable->{MV_PAYMENT_BILLING_INDICATOR}) {
@billing_ind = grep $_ !~ /\W/, split /[\s,\0]+/, $str;
}

@billing_set{@billing_set} = @billing_set;

SEE ALSO


Name

MV_PAYMENT_BILLING_SET

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_BILLING_SET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment.pm
Line 204 (context shows lines 194-208 in map_actual():104)

            b_state
            b_zip
            b_country
          /;

my @billing_ind = qw/
            b_address1
            b_city
          /;

if(my $str = $::Variable->{MV_PAYMENT_BILLING_SET}) {
  @billing_set = grep $_ !~ /\W/, split /[\s,\0]+/, $str;
}
if(my $str = $::Variable->{MV_PAYMENT_BILLING_INDICATOR}) {
  @billing_ind = grep $_ !~ /\W/, split /[\s,\0]+/, $str;

SEE ALSO


Name

MV_PAYMENT_CURRENCY — currency for payment gateway

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_CURRENCY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/Protx2.pm
Line 770 (context shows lines 760-774 in protx():525)

my $order_id = gen_order_id($opt);
if ($txtype =~ /RELEASE|VOID|ABORT/i) {
    $vendorTxCode = $::Values->{OrigVendorTxCode};
}
else {
    $vendorTxCode = $order_id;
}

# ISO currency code sent to Protx, from the page or fall back to config files.
my $currency = $::Values->{iso_currency_code} || $::Values->{currency_code} \
 || $Vend::Cfg->{Locale}{iso_currency_code}
    || charge_param('currency') || $::Variable->{MV_PAYMENT_CURRENCY} || 'GBP';

my $psp_host = $opt->{host};

# The string sent to Protx.

Source: lib/Vend/Payment/SagePay.pm
Line 785 (context shows lines 775-789 in sagepay():576)

 $contactFax         =~ s/[^0-9-+ ]//gi;
my $giftAidPayment     = $::Values->{giftaidpayment} || charge_param('giftaidpayment') || '0';
my $authCode           = $::Values->{authcode} || '';
my $clientIPAddress    = $CGI::remote_addr if $CGI::remote_addr;
  $::Values->{authcode} = '';

::logDebug("SP".__LINE__.": bCity=$billingCity; mvccType=$cardType; start=$mvccStartDate; \
 \
 issue=$issue;");

# ISO currency code sent to SagePay, from the page or fall back to config files.
my $currency = $::Values->{iso_currency_code} || $::Values->{currency_code} \
 \
 || $Vend::Cfg->{Locale}{iso_currency_code} ||
         charge_param('currency') || $::Variable->{MV_PAYMENT_CURRENCY} || 'GBP';

my $psp_host = $opt->{host};
my $convertoffline = charge_param('convertoffline');


Source: lib/Vend/Payment/PaypalExpress.pm
Line 521 (context shows lines 511-525 in paypalexpress():501)

#::logDebug("PP".__LINE__.": sandbox=$::Values->{ppsandbox} ". charge_param \
('sandbox'). "req=".charge_param('pprequest'));
my $pprequest   = charge_param('pprequest') || $::Values->{'pprequest'} \
 || $in->{'pprequest'} || 'setrequest'; # 'setrequest' must be the default for standard Paypal. 
my $sandbox     = charge_param('sandbox') || $::Values->{'sandbox'}  \
|| $::Values->{'ppsandbox'} || ''; # 1 or true to use for testing
   $sandbox     = '' unless $sandbox =~ /sandbox|1/;
   $sandbox     = "sandbox." if $sandbox =~ /sandbox|1/;
   $::Values->{'ppsandbox'} = $::Values->{'sandbox'} = '';
   $::Scratch->{'mstatus'} = '';
#::logDebug("PP".__LINE__.": sandbox=$sandbox passwd=".charge_param('password')." \
 sig=".charge_param('signature'));

   $currency = $::Values->{'iso_currency_code'} || $::Values->{'currency_code'} \
 || $::Scratch->{'iso_currency_code'}  || 
         $Vend::Cfg->{'Locale'}{'iso_currency_code'} || charge_param \
('currency')  || $::Variable->{MV_PAYMENT_CURRENCY} || 'USD';
   $::Scratch->{'iso_currency_code'} ||= $currency;

# Credentials, prefixed with lower-cased account name if using 'getbalance' \
 for more than one account
my $account     = lc($pprequest) if $pprequest =~ /getbalance_/ || '';

SEE ALSO

charge(7ic)


Name

MV_PAYMENT_HOST

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_HOST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 401 (context shows lines 391-405 in googlecheckout():399)

::logGlobal("%s v0.7.3 payment module initialised, using %s", __PACKAGE__, \
 $selected) unless $Vend::Quiet;

}

package Vend::Payment;
use strict;
my ($gcourl,$merchantid,$merchantkey,$gcoserver,$xmlOut, $taxrate, $state, \
 $header, $gcorequest, $actual, $orderID);

sub googlecheckout {
my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
     $gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};

Source: lib/Vend/Payment/Protx2.pm
Line 601 (context shows lines 591-605 in protx():525)

}
}
# wrap around everything to bottom
else {
my %actual = map_actual();
$actual  = \%actual;
$opt     = {};

#::logDebug("actual map result: " . ::uneval($actual));
$vendor   = $opt->{id} || charge_param('id') || $::Variable->{MV_PAYMENT_ID};
$opt->{host}   = charge_param('host') || $::Variable->{MV_PAYMENT_HOST} \
 \
 || 'ukvpstest.protx.com';
$opt->{use_wget} = charge_param('use_wget') || '1';
$opt->{port}   = '443';

    if ($txtype =~ /DEFERRED|PAYMENT|AUTHENTICATE|PREAUTH/i) {

Source: lib/Vend/Payment/SagePay.pm
Line 631 (context shows lines 621-635 in sagepay():576)

my $deliveryState;

my %result;
my %query;

my (%actual) = map_actual();
$actual  = \%actual;
$opt     = {};

$vendor   = $opt->{id} || charge_param('id') || $::Variable->{MV_PAYMENT_ID};
$opt->{host} = charge_param('host') || $::Variable->{MV_PAYMENT_HOST} || 'live.sagepay.com';
$sagepayrequest = $opt->{sagepayrequest} = charge_param('sagepayrequest') || 'post';
$opt->{use_wget} = charge_param('use_wget') || '1';
$opt->{port}   = '443';
#::logDebug("SP".__LINE__.": host=$opt->{host}; spreq=$sagepayrequest");

SEE ALSO


Name

MV_PAYMENT_ID — specifies merchant identifier

SYNOPSIS

{ }

DESCRIPTION

Specifies merchant identifier for the selected payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 450 (context shows lines 440-454 in googlecheckout():399)

my $diagnose     = $::Values->{gco_diagnose} || charge_param('gco_diagnose') \
 \
 \
 || ''; # set to '1' to have GCO return the XML it receives for diagnostics
my $analytics_data = $::Values->{analyticsdata} || '';
      $analytics_data = encode('UTF-8', $analytics_data);
my $tracking       = charge_param('tracking_script') || ''; 
my $without_address = charge_param('without_address') || ''; 
my $reporttitle = charge_param('reporttitle') || ''; 
my $dec_inventory = charge_param('decrement_inventory') || ''; # set \
 to 1 to decrement inventory upon successful 'charge'
my $alwaystaxshipping = charge_param('alwaystaxshipping') || ''; # set \
 to 1 to always tax shipping despite other config options

#----------------------------------------------------------------------------------------
     $merchantid  = charge_param('merchantid')  || $::Variable->{MV_PAYMENT_ID};
     $merchantkey = charge_param('merchantkey') || $::Variable->{MV_PAYMENT_SECRET};
     $gcorequest  = charge_param('gcorequest')  || $::Values->{gcorequest} || 'post';
   $::Values->{gcorequest} = '';
    

Source: lib/Vend/Payment/ECHO.pm
Line 300 (context shows lines 290-304 in echo():274)

#::logDebug("echo called, args=" . ::uneval(\@_));

my (%actual) = map_actual();

my @errMsgs = ();
# Required for validation
if (! $user) {
$user      = $opt->{id} || 
             charge_param('id') ||  
             $::Variable->{ECHO_PAYMENT_ID} ||
             $::Variable->{MV_PAYMENT_ID} ||
              $::Variable->{CYBER_ID}
              or push @errMsgs, "No payment ID found.";
}


Source: lib/Vend/Payment/Protx2.pm
Line 600 (context shows lines 590-604 in protx():525)

        return %result;
    }
}
# wrap around everything to bottom
else {
    my %actual = map_actual();
    $actual  = \%actual;
    $opt     = {};

#::logDebug("actual map result: " . ::uneval($actual));
    $vendor   = $opt->{id} || charge_param('id') || $::Variable->{MV_PAYMENT_ID};
    $opt->{host}   = charge_param('host') || $::Variable->{MV_PAYMENT_HOST} \
 || 'ukvpstest.protx.com';
    $opt->{use_wget} = charge_param('use_wget') || '1';
    $opt->{port}   = '443';


Source: lib/Vend/Payment/SagePay.pm
Line 630 (context shows lines 620-634 in sagepay():576)

  my $billingState;
  my $deliveryState;

my %result;
my %query;

my (%actual) = map_actual();
  $actual  = \%actual;
  $opt     = {};

  $vendor   = $opt->{id} || charge_param('id') || $::Variable->{MV_PAYMENT_ID};
  $opt->{host} = charge_param('host') || $::Variable->{MV_PAYMENT_HOST} || 'live.sagepay.com';
  $sagepayrequest = $opt->{sagepayrequest} = charge_param('sagepayrequest') || 'post';
  $opt->{use_wget} = charge_param('use_wget') || '1';
  $opt->{port}   = '443';

SEE ALSO


Name

MV_PAYMENT_MODE — payment gateway mode name

SYNOPSIS

{ mode }

DESCRIPTION

Payment gateway mode name for one of the available payment modules.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_MODE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/update_order_status.tag
Line 110 (context shows lines 100-114)

elsif($oid =~ /\*$/) {
  Vend::Tags->error( {
          name => 'settle_transaction',
          set => "Order ID $oid already settled!",
        });
  return undef;
}
else {
#::logDebug("auth-code: $trec->{auth_code} oid=$oid");
  my $settled  = Vend::Tags->charge( {
            route => $::Variable->{MV_PAYMENT_MODE},
            order_id => $oid,
            amount => $amount,
            auth_code => $trec->{auth_code},
            transaction => 'settle_prior',

Source: code/UI_Tag/update_order_status.tag
Line 162 (context shows lines 152-166)

elsif($oid =~ /-$/) {
  Vend::Tags->error( {
          name => 'void_transaction',
          set => "Order ID $oid already voided!",
        });
  return undef;
}
else {
#::logDebug("auth-code: $trec->{auth_code} oid=$oid");
  my $voided  = Vend::Tags->charge( {
            route => $::Variable->{MV_PAYMENT_MODE},
            order_id => $oid,
            amount => $amount,
            auth_code => $trec->{auth_code},
            transaction => 'void',

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 252 (context shows lines 242-256)

In etc/log_transction, immediately after the
[elsif variable MV_PAYMENT_MODE]
[calc]
insert this line:
undef $Session->{payment_result}{MStatus};

and leave
[elsif variable MV_PAYMENT_MODE]
as set (contrary to earlier revisions of this document), but within the \
 same section change the following 
two instances of
[var MV_PAYMENT_MODE] to [value mv_payment_route]

Also add these five lines to the end of the section that starts "[import table=transactions ":
lead_source: [data session source]
referring_url: [data session referer]

Source: lib/Vend/Payment/SagePay.pm
Line 129 (context shows lines 119-133)

8. When running a card through 3DSecure, the route is run twice: firstly \
 to Sagepay who check whether or
not the card is part of 3DSecure - if it is they send the customer to the bank's authentication page
and upon returning from that the route must be run a second time to send \
 the authentication results to
Sagepay. The second run is initiated from the 'ord/tdsreturn' page, not \
 from etc/log_transaction as it normally
would be. To handle this change to the normal system flow you need to alter \
 log_transaction to make the 
call to the payment module conditional,ie, wrap the following code around \
 the "[charge route...]" call 
found in ln 172 (or nearby):
[if scratchd mstatus eq success]
[tmp name="charge_succeed"][scratch order_id][/tmp]
[else]
[tmp name="charge_succeed"][charge route="[var MV_PAYMENT_MODE]" amount="[scratch \
 tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
[/else]
[/if]
If the first call to Sagepay returns a request to send the customer to \
 the 3DSecure server, then IC will 
write a payment route error to the error log prior to sending the customer \
 there. This error stops the

Source: lib/Vend/Payment/Worldpay.pm
Line 161 (context shows lines 151-165)

[elsif variable MV_PAYMENT_MODE]
to
[elsif value mv_order_profile =~ /worldpay/] add an OR if required
eg [elsif value mv_order_profile =~ /googlecheckout|worldpay/]

Then in the [calc] block immediately below insert this line: 

undef $Session->{payment_result}{MStatus};

Within the same section change the following two instances of
[var MV_PAYMENT_MODE] to [value mv_payment_route]

10. Create a callback page in /pages called wpcallback.html or any name you prefer, set this page in
the Worldpay admin panel, the module also supports dynamic callback pages \
 where different catalogs can
have different callback pages, if using this the callpage URL must be set \
 in the route in catalog.cfg as

Source: lib/Vend/Payment/PRI.pm
Line 88 (context shows lines 78-92)

or

Route PRI id YourPRIID

or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"

Source: lib/Vend/Payment/PaypalExpress.pm
Line 125 (context shows lines 115-129)


In etc/log_transction, immediately after the 
[elsif variable MV_PAYMENT_MODE]
[calc]
insert this line: 
undef $Session->{payment_result}{MStatus};

and leave
[elsif variable MV_PAYMENT_MODE] 
as set (contrary to previous revisions of this document) but within the \
 same section change the following 
two instances of [var MV_PAYMENT_MODE] to [value mv_payment_route]. In \
 particular, the setting inside the
[charge route="..] line will specify which payment processor is used for \
 each particular case, and you
need to further modify this line so that it ends up like this:
[tmp name="charge_succeed"][charge route="[value mv_payment_route]" pprequest="dorequest" \
 amount="[scratch tmp_remaining]" order_id="[value mv_transaction_id]"][/tmp]
If the value of 'mv_payment_route' is set to 'paypalexpress', then this \
 is the one that is run. It is only

SEE ALSO


Name

MV_PAYMENT_OTHER_CARD

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_OTHER_CARD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 525 (context shows lines 515-529 in guess_cc_type():454)

elsif ($ccnum =~ /^6(?:3(?:34[5-9][0-9])|767[0-9]{2})\d{10}(?:\d{2,3})?$/)
{ return 'solo' }

elsif ($ccnum =~ /^62[24-68]\d{13}$/)
{ return 'chinaunionpay' }

elsif ($ccnum =~ /^6(?:304|7(?:06|09|71))\d{12,15}$/)
{ return 'laser' }

else
{ return $::Variable->{MV_PAYMENT_OTHER_CARD} || 'other' }
}


# Takes a reference to a hash (usually %CGI::values) that contains

SEE ALSO


Name

MV_PAYMENT_PRECISION — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Specifies the number of digits of precision for the gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_PRECISION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 333 (context shows lines 323-337 in echo():274)

my $server     = $opt->{server} ||
     charge_param('server') ||
$::Variable->{ECHO_PAYMENT_SERVER} ||
$::Variable->{MV_PAYMENT_SERVER} ||
     $::Variable->{CYBER_SERVER} ||
     'https://wwws.echo-inc.com/scripts/INR200.EXE';

my $precision  =  $opt->{precision} ||
        charge_param('precision') ||
  $::Variable->{ECHO_PAYMENT_PRECISION} ||
  $::Variable->{MV_PAYMENT_PRECISION} ||
         $::Variable->{CYBER_PRECISION} ||
         2;

##### ECHO SPECIFIC VARIABLES #####

SEE ALSO

charge(7ic)


Name

MV_PAYMENT_PSP

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_PSP is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 201 (context shows lines 191-205)

you not taking your customer's details, so you have the option of complying with Google or complying
with your own policy.

You must have MV_PAYMENT_MODE set in products/variable.txt to either your standard payment processor
or to 'googlecheckout'; though you may instead set this in catalog.cfg rather than variable txt as:
Variable MV_PAYMENT_MODE googlecheckout

Within the 'credit_card' section of etc/profiles.order leave
"MV_PAYMENT_MODE" 
as set and add
&set=psp __MV_PAYMENT_PSP__
&set=mv_payment_route authorizenet
(or your preferred gateway) as the last entries in the section.

and then add

Source: lib/Vend/Payment/PaypalExpress.pm
Line 103 (context shows lines 93-107)

&set=psp Paypal
&set=mv_payment_route paypalexpress
&final = yes
&setcheck = payment_method paypalexpress
__END__
or, if you want to use Paypal as a 'Buy now' button without taking any \
 customer details, then omit the
__COMMON_ORDER_PROFILE__ and the two 'email=...' lines above. 

Within the 'credit_card' section of etc/profiles.order leave "MV_PAYMENT_MODE" as set,
and add
&set=psp __MV_PAYMENT_PSP__
&set=mv_payment_route authorizenet
(or your preferred gateway instead of authorizenet) as the last entries in the section.
NB: if you are taking offline payments then do not set mv_payment_route \
 here, but instead set in the body
of the 'Buy now' button "mv_payment_route=offlinepayment

SEE ALSO


Name

MV_PAYMENT_SECRET — password for the payment gateway

SYNOPSIS

{ }

DESCRIPTION

Specifies the password used to identify the vendor.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_SECRET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 451 (context shows lines 441-455 in googlecheckout():399)

my $analytics_data = $::Values->{analyticsdata} || '';
    $analytics_data = encode('UTF-8', $analytics_data);
my $tracking       = charge_param('tracking_script') || ''; 
my $without_address = charge_param('without_address') || ''; 
my $reporttitle = charge_param('reporttitle') || ''; 
my $dec_inventory = charge_param('decrement_inventory') || ''; # set \ \

 to 1 to decrement inventory upon successful 'charge'
my $alwaystaxshipping = charge_param('alwaystaxshipping') || ''; # set \
 \
 to 1 to always tax shipping despite other config options

#----------------------------------------------------------------------------------------
   $merchantid  = charge_param('merchantid')  || $::Variable->{MV_PAYMENT_ID};
   $merchantkey = charge_param('merchantkey') || $::Variable->{MV_PAYMENT_SECRET};
   $gcorequest  = charge_param('gcorequest')  || $::Values->{gcorequest} || 'post';
 $::Values->{gcorequest} = '';
  
if ($gcorequest eq 'post') {

Source: lib/Vend/Payment/ECHO.pm
Line 310 (context shows lines 300-314 in echo():274)

       $::Variable->{MV_PAYMENT_ID} ||
        $::Variable->{CYBER_ID}
        or push @errMsgs, "No payment ID found.";
}

# Required for validation
if (! $secret) {
$secret    = $opt->{secret} ||
             charge_param('secret') ||
         $::Variable->{ECHO_PAYMENT_SECRET} ||
         $::Variable->{MV_PAYMENT_SECRET} ||
             $::Variable->{CYBER_SECRET}
             or push @errMsgs, "No payment secret found.";
}


SEE ALSO


Name

MV_PAYMENT_SERVER — hostname or IP of the payment gateway

SYNOPSIS

{ hostname | IP }

DESCRIPTION

Specifies hostname or IP of the payment gateway.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_SERVER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/ECHO.pm
Line 326 (context shows lines 316-330 in echo():274)

 for (@errMsgs) {
   ::logError($_);
 }
 return 0;
}
@errMsgs = ();

my $server     = $opt->{server} ||
                  charge_param('server') ||
           $::Variable->{ECHO_PAYMENT_SERVER} ||
           $::Variable->{MV_PAYMENT_SERVER} ||
                  $::Variable->{CYBER_SERVER} ||
                  'https://wwws.echo-inc.com/scripts/INR200.EXE';

 my $precision  =  $opt->{precision} ||

SEE ALSO


Name

MV_PAYMENT_TRANSACTION

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_PAYMENT_TRANSACTION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/Protx2.pm
Line 537 (context shows lines 527-541 in protx():525)

my ($vendor, $amount, $actual, $opt);

# Amount sent to Protx, in 2 decimal places with any cruft removed.
# Defaults to 'amount' from the Accounts IPM or an invoicing system, falling back to IC input
$amount =  $::Values->{amount} || Vend::Interpolate::total_cost();
$amount =~ s/^\D+//g;
$amount =~ s/,//g;
$amount =  sprintf '%.2f', $amount;

# Transaction type sent to Protx.
my $txtype = $::Values->{transtype} || charge_param('txtype') || $::Variable->{MV_PAYMENT_TRANSACTION} \
 || 'PAYMENT';
my $accountType = $::Values->{account_type} || charge_param('account_type') || 'E';
my $payID  = $::Values->{inv_no} || $::Session->{mv_transaction_id} || $::Session->{id}.$amount;

my $logdir;

Source: lib/Vend/Payment/SagePay.pm
Line 592 (context shows lines 582-596 in sagepay():576)

my ($vendor, $amount, $actual, $opt, $sagepayrequest, $page, $vendorTxCode, $pan, $cardType);

# Amount sent to SagePay, in 2 decimal places with cruft removed.
# Defaults to 'amount' from log_transaction or an invoicing system, falling back to IC input
   $amount =  $::Values->{amount} || charge_param('amount') || Vend::Interpolate::total_cost();
   $amount =~ s/^\D*//g;
   $amount =~ s/\,//g;
   $amount =  sprintf '%.2f', $amount;

# Transaction type sent to SagePay.
my $txtype      = $::Values->{transtype} || charge_param('txtype') | \
| $::Variable->{MV_PAYMENT_TRANSACTION} ||'PAYMENT';
my $vpsprotocol = '2.23';
my $accountType = $::Values->{account_type} || charge_param('account_type') || 'E';
my $payID       = $::Values->{inv_no} || $::Session->{mv_transaction_id} \
 || $::Session->{id}.$amount;
my $logorder    = charge_param('logorder') || 'no'; # Set to 'yes' or \
 '1' to log basket plus data useful when arguing with SagePay over empty responses

SEE ALSO


Name

MV_PREV_PAGE — contains the relative pathname of the last page read

SYNOPSIS

@@MV_PREV_PAGE@@

DESCRIPTION

This variable contains relative, system-wide path of the previous page served, without the suffix. The variable is not set in the configuration files, but is manipulated by the Interchange daemon while it is runnning.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Reading the value of MV_PREV_PAGE

Add the following to a test Interchange page:

Previous filename: @@MV_PREV_PAGE@@

NOTES

This variable is not intended to be written to.

AVAILABILITY

MV_PREV_PAGE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 1152 (context shows lines 1142-1156 in readin():1137)


  my($fn, $contents, $gate, $pathdir, $dir, $level);
  local($/);

if($file =~ m{[\[<]}) {
  ::logGlobal("Possible code/SQL injection attempt with file name '%s'", $file);
  $file = escape_chars($file);
  ::logGlobal("Suspect file changed to '%s'", $file);
}

$Global::Variable->{MV_PREV_PAGE} = $Global::Variable->{MV_PAGE}
  if defined $Global::Variable->{MV_PAGE};
$Global::Variable->{MV_PAGE} = $file;

$file =~ s#^\s+##;

SEE ALSO

MV_PAGE(7ic)


Name

MV_SEARCH_FILE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_SEARCH_FILE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Scan.pm
Line 886 (context shows lines 876-890 in _file_security():879)

defined $_[1] ? $_[1] : '';
}

sub _file_security {
my ($junk, $param, $passed) = @_;
$passed = [] unless $passed;
my(@files) = grep /\S/, split /\s*[,\0]\s*/, $param, -1;
for(@files) {
  my $ok = allowed_file($_);
  if(!$ok) {
    $ok = 1 if $_ eq $::Variable->{MV_SEARCH_FILE};
    $ok = 1 if $::Scratch->{$_};
  }
  if(/^\w+$/ and ! $::Variable->{MV_DEFAULT_SEARCH_DB}) {
    $_ = $Vend::Cfg->{Database}{$_}{file}

SEE ALSO


Name

MV_SESSION_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_SESSION_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Dispatch.pm
Line 1309 (context shows lines 1299-1313 in dispatch():1240)

    }
}

Vend::Server::set_process_name("$Vend::Cat $CGI::host $sessionid");

$::Instance->{CookieName} = 'MV_SESSION_ID' if ! $::Instance->{CookieName};

$CGI::host = 'nobody' if $Vend::Cfg->{WideOpen};

if(! $sessionid) {
  if(my $id = $::Variable->{MV_SESSION_ID}) {
    $sessionid = $CGI::values{$id} if $CGI::values{$id};
  }

  if(! $sessionid and $CGI::redirect_status and $Vend::Cfg->{RedirectCache}) {

SEE ALSO


Name

MV_SESSION_READ_RETRY — specifies the number of times to retry reading the session file

SYNOPSIS

{count}

DESCRIPTION

This variable specifies the number of times Interchange will attempt to read the user's session file before failing.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Adjusting the MV_SESSION_READ_RETRY value

Add the following to interchange.cfg:

Variable MV_SESSION_READ_RETRY 3

NOTES

AVAILABILITY

MV_SESSION_READ_RETRY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Session.pm
Line 450 (context shows lines 440-454 in read_session():444)

# Should never get here
return undef;
}

sub read_session {
my $seed = shift;
  my($s);

#::logDebug ("read session id=$Vend::SessionID  name=$Vend::SessionName\n");
$s = $Vend::SessionDBM{$Vend::SessionName}
  or $Global::Variable->{MV_SESSION_READ_RETRY}
  and do {
    my $i = 0;
    my $tries = $Global::Variable->{MV_SESSION_READ_RETRY} + 0 || 5;
    while($i++ < $tries) {

SEE ALSO


Name

MV_SHIP_ADDRESS_TEMPLATE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Overrides the default template.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_SHIP_ADDRESS_TEMPLATE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 3833 (context shows lines 3823-3837 in tag_address():3749)

                  type => $opt->{widget},
                  passed => $opt->{address_book},
                  form => $opt->{form},
                },
                $item
                );
}

if($opt->{set} || ! $item->{$attr}) {
  my $template = '';
  if($::Variable->{MV_SHIP_ADDRESS_TEMPLATE}) {
    $template .= $::Variable->{MV_SHIP_ADDRESS_TEMPLATE};
  }
  else {
    $template .= "{company}\n" if $addr->{"${pre}company"};

SEE ALSO


Name

MV_SHIP_MODIFIERS

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_SHIP_MODIFIERS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Ship.pm
Line 694 (context shows lines 684-698 in shipping():525)

    foreach $i (0 .. $#$Vend::Items) {
    my $item = $Vend::Items->[$i];
    $total += (database_field($base, $item->{code}, $field) || 0) *
          $item->{quantity};
  }
}
else {
#::logDebug("standard field selection");
    my $use_modifier;

    if ($::Variable->{MV_SHIP_MODIFIERS}){
    my @pieces = grep {$_ = quotemeta $_} split(/[\s,|]+/,$::Variable->{MV_SHIP_MODIFIERS});
    my $regex = join('|',@pieces);
    $use_modifier = 1 if ($regex && $field =~ /^($regex)$/);
    }

SEE ALSO


Name

MV_SMTPHOST — specifies the default sender hostname when SMTP is used to send mail

SYNOPSIS

{host name}

DESCRIPTION

If SMTP is used to send mail from Interchange, this variable specifies the hostname to use.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

Example: Setting the MV_SMTPHOST variable

Add the following to interchange.cfg:

Variable MV_SMTPHOST myhost.mydomain.local

NOTES

AVAILABILITY

MV_SMTPHOST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 2184 (context shows lines 2174-2188 in send_mail():2078)

  print MVMAIL $body
      or last SEND;
  print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
    if $use_mime;
  print MVMAIL "\r\n\cZ" if $Global::Windows;
  close MVMAIL or last SEND;
  $ok = ($? == 0);
}

SMTP: {
  my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
  my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
  last SMTP unless $none and $mhost;
  eval {
    require Net::SMTP;

Source: lib/Vend/Email.pm
Line 441 (context shows lines 431-445 in tag_mime_lite_email():91)


#
# Prepare for sending the message
#

# Configure Net::SMTP sending if that is requested..
if ( $using =~ /^Net::SMTP$/i ) {
# Unlike in previous implementations in IC, MV_SMTPHOST is not required.
# (Net::SMTP gets to figure out the host).
my $smtphost = $::Variable->{MV_SMTPHOST} ||
  $Global::Variable->{MV_SMTPHOST};

my $timeout = $::Variable->{MV_SMTP_TIMEOUT} ||
  $Global::Variable->{MV_SMTP_TIMEOUT} || 60;


Source: lib/Vend/Email.pm
Line 667 (context shows lines 657-671 in send_mail_legacy():561)

  print MVMAIL $body
      or last SEND;
  print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
    if $use_mime;
  print MVMAIL "\r\n\cZ" if $Global::Windows;
  close MVMAIL or last SEND;
  $ok = ($? == 0);
}

SMTP: {
  my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
  my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
  last SMTP unless $none and $mhost;
  eval {
    require Net::SMTP;


Name

MV_SMTP_TIMEOUT

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_SMTP_TIMEOUT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Email.pm
Line 444 (context shows lines 434-448 in tag_mime_lite_email():91)

#

# Configure Net::SMTP sending if that is requested..
if ( $using =~ /^Net::SMTP$/i ) {
# Unlike in previous implementations in IC, MV_SMTPHOST is not required.
# (Net::SMTP gets to figure out the host).
my $smtphost = $::Variable->{MV_SMTPHOST} ||
$Global::Variable->{MV_SMTPHOST};

my $timeout = $::Variable->{MV_SMTP_TIMEOUT} ||
$Global::Variable->{MV_SMTP_TIMEOUT} || 60;

MIME::Lite->send('smtp', $smtphost ?
    ($smtphost, $timeout) :
      ($timeout) );

SEE ALSO


Name

MV_STATE_REQUIRED

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_STATE_REQUIRED is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 1242 (context shows lines 1232-1246 in _multistate():1233)


sub _multistate {
my($ref,$var,$val) = @_;

my $error;
my $cval = _get_cval($ref, $var);

if(my $sval = $state_template{$cval}) {
  $error = 1 unless $sval =~ /\s$val\s/;
}
elsif($::Variable->{MV_STATE_REQUIRED}) {
    " $::Variable->{MV_STATE_REQUIRED} " =~ /\s$cval\s/
    and
  length($val) < 2 and $error = 1;
}

SEE ALSO


Name

MV_STATE_TABLE — name of database containing state, country and province information

SYNOPSIS

{ database... }

DESCRIPTION

Table to search for state-related information, such as state names, postcodes, tax rates and shipping methods available.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_STATE_TABLE  state

NOTES

AVAILABILITY

MV_STATE_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5504 (context shows lines 5494-5508 in tax_vat():5477)

$type =~ s/^\s+//;
$type =~ s/\s+$//;

my @taxes;

if($type =~ /^(\w+)$/) {
  my $sfield = $1;
  my $state  = $opt->{state} || $::Values->{$sfield};
  return 0 if ! $state;
  my $stable   = $opt->{state_table}
        || $::Variable->{MV_STATE_TABLE}
        || 'state';
  my $s_taxfield   = $opt->{state_tax_field}
        || $::Variable->{MV_STATE_TAX_FIELD}
        || 'tax';


Name

MV_STATE_TAX_FIELD — name of column containing state-wide tax information

SYNOPSIS

{ column... }

DESCRIPTION

Column name in the MV_STATE_TABLE database that will be looked up to retrieve state-wide tax information.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_STATE_FIELD  tax

NOTES

AVAILABILITY

MV_STATE_TAX_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5507 (context shows lines 5497-5511 in tax_vat():5477)

my @taxes;

if($type =~ /^(\w+)$/) {
my $sfield = $1;
my $state  = $opt->{state} || $::Values->{$sfield};
return 0 if ! $state;
my $stable   = $opt->{state_table}
      || $::Variable->{MV_STATE_TABLE}
      || 'state';
my $s_taxfield   = $opt->{state_tax_field}
      || $::Variable->{MV_STATE_TAX_FIELD}
      || 'tax';
  my $s_taxtype   = $opt->{tax_type_field} 
        || $::Variable->{MV_TAX_TYPE_FIELD}
        || 'tax_name';


Name

MV_SUBJECT — (partly documented)

SYNOPSIS

@@MV_SUBJECT@@

DESCRIPTION

The global variable MV_SUBJECT, set before interpolating any special page, is a more secure alternative to the subject pseudo-tag.

VARIABLE TYPE

Global variable

EXAMPLES

Example: Reading the value of MV_SUBJECT

Add the following to a test Interchange page:

Subject/title: @@MV_SUBJECT@@

NOTES

AVAILABILITY

MV_SUBJECT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Page.pm
Line 79 (context shows lines 69-83 in display_special_page():53)

$subject ||= 'unspecified error';

my $noname = $name;
$noname =~ s:^\.\./::;

$page = readfile($noname, $Global::NoAbsolute, 1) || readin($name);

die ::get_locale_message(412, qq{Missing special page "%s" for subject "%s"\n}, $name, $subject)
  unless defined $page;
$page =~ s#\[subject\]#$subject#ig;
$Global::Variable->{MV_SUBJECT} = $subject;
$Vend::PageInit = 0;
interpolate_html($page, 1);
::response();
}

SEE ALSO


Name

MV_TAX_CATEGORY_FIELD — name of column containing enumerated tax types, based on product category

SYNOPSIS

{ column... }

DESCRIPTION

Name of the column whose value will be retrieved in search of tax type applied to the specific product group.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_TAX_CATEGORY_FIELD tax_category

NOTES

AVAILABILITY

MV_TAX_CATEGORY_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5574 (context shows lines 5564-5578 in tax_vat():5477)

  $rate /= 100 if $2;
        $rate = $rate / (1 + $rate) if $Vend::Cfg->{TaxInclusive};
  my $amount = Vend::Interpolate::taxable_amount();
  $total += ($rate * $amount);
}
else {
  $tax = Vend::Util::get_option_hash($t);
}
#::logDebug("tax hash=" . uneval($tax));
my $pfield   = $opt->{tax_category_field}
      || $::Variable->{MV_TAX_CATEGORY_FIELD}
      || 'tax_category';
my @pfield = split /:+/, $pfield;

for my $item (@$Vend::Items) {


Name

MV_TAX_TYPE_FIELD — name of column containing enumerated tax names

SYNOPSIS

{ column... }

DESCRIPTION

Name of the column whose value will be retrieved in search of symbolic tax name.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Put the following in catalog.cfg:

Variable MV_TAX_TYPE_FIELD tax_name

NOTES

AVAILABILITY

MV_TAX_TYPE_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5510 (context shows lines 5500-5514 in tax_vat():5477)

my $sfield = $1;
my $state  = $opt->{state} || $::Values->{$sfield};
return 0 if ! $state;
my $stable   = $opt->{state_table}
    || $::Variable->{MV_STATE_TABLE}
    || 'state';
my $s_taxfield   = $opt->{state_tax_field}
    || $::Variable->{MV_STATE_TAX_FIELD}
    || 'tax';
my $s_taxtype   = $opt->{tax_type_field} 
      || $::Variable->{MV_TAX_TYPE_FIELD}
      || 'tax_name';
  my $db = database_exists_ref($stable)
    or return 0;
  my $addl = '';


Name

MV_TRACK_ADMIN

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_TRACK_ADMIN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Dispatch.pm
Line 1636 (context shows lines 1626-1640 in dispatch():1240)

    if delete $Vend::Session->{one_time_path_alias}{$Vend::FinalPath};
}

url_history($Vend::FinalPath) if $Vend::Cfg->{History};

Vend::Server::set_process_name("$Vend::Cat $CGI::host $sessionid " . \
 ($Vend::Session->{username} || '-') . " $Vend::FinalPath");

# TRACK
$Vend::Track = Vend::Track->new
  if ($Vend::Cfg->{UserTrack} or $Vend::Cfg->{TrackFile})
    and not ($Vend::admin and ! $::Variable->{MV_TRACK_ADMIN});
# END TRACK

if($Vend::Cfg->{DisplayErrors} and $Global::DisplayErrors) {
  $SIG{"__DIE__"} = sub {

SEE ALSO


Name

MV_TREE_TABLE — database name for tree menus

SYNOPSIS

{ database }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

The term database in Interchange lingo has a different meaning as in common language, please check database for more information.

AVAILABILITY

MV_TREE_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Menu.pm
Line 420 (context shows lines 410-424 in old_tree():383)

my $header;
$header = ::interpolate_html($opt->{header_template})
  if $opt->{header_template};
if($header =~ /\S/) {
  $header = Vend::Tags->uc_attr_list($opt, $header);
  push @out, $header;
}

my %defaults = (
      start       => $opt->{tree_selector} || 'Products',
      table       => $::Variable->{MV_TREE_TABLE} || 'tree',
      master      => $opt->{tree_master} || 'parent_fld',
      subordinate => 'code',
      autodetect  => '1',
      sort        => 'code',

Source: lib/Vend/Menu.pm
Line 553 (context shows lines 543-557 in dhtml_flyout():517)

push @out, <<EOF;
<script language="JavaScript1.3">
var ${vpf}timeoutCode = -1;
var ${vpf}mydiv = '$fdiv';
var ${vpf}lines = new Array;
EOF

my %o = (
    start       => $opt->{tree_selector} || $opt->{name},
    file    => $opt->{file},
    table       => $opt->{table} || $::Variable->{MV_TREE_TABLE} || 'tree',
    master      => $opt->{tree_master} || 'parent_fld',
    subordinate => 'code',
    autodetect  => '1',
    no_open    => 1,

Source: lib/Vend/Menu.pm
Line 948 (context shows lines 938-952 in file_tree():910)


<div id="${vpf}treebox" style="visibility: Visible">
</div>
<script language="JavaScript1.3">
var ${vpf}lines = new Array;
var ${vpf}sary = new Array;
EOF

my %o = (
    start       => $opt->{tree_selector} || 'Products',
    table       => $opt->{table} || $::Variable->{MV_TREE_TABLE} || 'tree',
    master      => $opt->{tree_master} || 'parent_fld',
    file    => $opt->{file},
    subordinate => 'code',
    autodetect  => '1',

Source: lib/Vend/Menu.pm
Line 1468 (context shows lines 1458-1472 in dhtml_tree():1431)

push @out, <<EOF;

<div id="${vpf}treebox" style="visibility: Visible">
</div>
<script language="JavaScript1.3">
var ${vpf}lines = new Array;
EOF

my %o = (
    start       => $opt->{tree_selector} || 'Products',
    table       => $opt->{table} || $::Variable->{MV_TREE_TABLE} || 'tree',
    master      => $opt->{tree_master} || 'parent_fld',
    file    => $opt->{file},
    subordinate => 'code',
    autodetect  => '1',

SEE ALSO

tree(7ic)


Name

MV_USERDB_ACL_COLUMN

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_USERDB_ACL_COLUMN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 1544 (context shows lines 1534-1548 in check_security():1527)

#return 1 if $CGI::user and ! $Global::Variable->{MV_USERDB};
if($gate) {
$gate =~ s/\s+//g;
return 1 if is_yes($gate);
}
elsif($Vend::Session->{logged_in}) {
return 1 if $::Variable->{MV_USERDB_REMOTE_USER};
my $db;
my $field;
if ($db = $::Variable->{MV_USERDB_ACL_TABLE}) {
  $field = $::Variable->{MV_USERDB_ACL_COLUMN};
    my $access = Vend::Data::database_field(
            $db,
            $Vend::Session->{username},
              $field,

SEE ALSO


Name

MV_USERDB_ACL_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_USERDB_ACL_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 1543 (context shows lines 1533-1547 in check_security():1527)

# for anyone with an HTTP basic auth will have access to everything
#return 1 if $CGI::user and ! $Global::Variable->{MV_USERDB};
if($gate) {
  $gate =~ s/\s+//g;
  return 1 if is_yes($gate);
}
elsif($Vend::Session->{logged_in}) {
  return 1 if $::Variable->{MV_USERDB_REMOTE_USER};
  my $db;
  my $field;
  if ($db = $::Variable->{MV_USERDB_ACL_TABLE}) {
    $field = $::Variable->{MV_USERDB_ACL_COLUMN};
      my $access = Vend::Data::database_field(
              $db,
              $Vend::Session->{username},

SEE ALSO


Name

MV_USERDB_REMOTE_USER — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Enabling this variable allows anyone logged in to override all existing ALCs.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_USERDB_REMOTE_USER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 1540 (context shows lines 1530-1544 in check_security():1527)

my $msg;
if(! $reconfig) {
# If using the new USERDB access control you may want to remove this next line
# for anyone with an HTTP basic auth will have access to everything
  #return 1 if $CGI::user and ! $Global::Variable->{MV_USERDB};
  if($gate) {
    $gate =~ s/\s+//g;
    return 1 if is_yes($gate);
  }
  elsif($Vend::Session->{logged_in}) {
    return 1 if $::Variable->{MV_USERDB_REMOTE_USER};
    my $db;
    my $field;
    if ($db = $::Variable->{MV_USERDB_ACL_TABLE}) {
      $field = $::Variable->{MV_USERDB_ACL_COLUMN};

SEE ALSO


Name

MV_UTF8

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_UTF8 is available in Interchange versions:

4.6.0-5.6.0

SOURCE

Interchange 5.6.0:

Source: lib/Vend/Util.pm
Line 1181 (context shows lines 1171-1185 in readin():1078)

    $file = find_special_page('violation');
    $fn = $try . "/" . escape_chars($file) . $suffix;
  }
}
else {
  $fn = $try . "/" . escape_chars($file) . $suffix;
}

if (open(MVIN, "< $fn")) {
  binmode(MVIN) if $Global::Windows;
  binmode(MVIN, ":utf8") if $::Variable->{MV_UTF8};
  undef $/;
  $contents = <MVIN>;
  close(MVIN);
  last;

Source: lib/Vend/File.pm
Line 68 (context shows lines 58-72 in writefile():64)

use File::Path;
use File::Copy;
use subs qw(logError logGlobal);
use vars qw($VERSION @EXPORT @EXPORT_OK $errstr);
$VERSION = '2.33';

sub writefile {
  my($file, $data, $opt) = @_;
my($encoding, $fallback);

if ($::Variable->{MV_UTF8}) {
  $encoding = $opt->{encoding} ||= 'utf-8';
  undef $encoding if $encoding eq 'raw';
  $fallback = $opt->{fallback};
  $fallback = Encode::PERLQQ() unless defined $fallback;

Source: lib/Vend/File.pm
Line 200 (context shows lines 190-204 in readfile():193)

# If catalog FileDatabase is enabled and there are no contents, we can retrieve
# the file from the database.

sub readfile {
  my($ifile, $no, $loc, $opt) = @_;
  my($contents,$encoding,$fallback);
  local($/);

$opt ||= {};

if ($::Variable->{MV_UTF8}) {
  $encoding = $opt->{encoding} ||= 'utf-8';
  $fallback = $opt->{fallback};
  $fallback = Encode::PERLQQ() unless defined $fallback;
  undef $encoding if $encoding eq 'raw';

Source: lib/Vend/Table/Common.pm
Line 1639 (context shows lines 1629-1643 in new_filehandle():1637)

if($Vend::admin or ! defined($cfg->{LOG_ERROR_SESSION}) or $cfg->{LOG_ERROR_SESSION}) {
  $Vend::Session->{errors} = {} unless CORE::ref($Vend::Session->{errors}) eq 'HASH';
  $Vend::Session->{errors}{$ekey} = $msg;
}
die $msg if $cfg->{DIE_ERROR};
return $cfg->{last_error} = $msg;
}

sub new_filehandle {
my $fh = shift;
binmode($fh, ":utf8") if $::Variable->{MV_UTF8};
return $fh;
}

1;

SEE ALSO


Name

MV_VALID_PROVINCE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Allows you to supply an alternate string to override the standard province validation.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_VALID_PROVINCE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 1150 (context shows lines 1140-1154 in _state_province():1143)

$val =~ /^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]\d[A-Za-z]\d[A-Za-z]\d$/;
};

sub _state_province {
my($ref,$var,$val) = @_;
my $error;
if(length($val) != 2) {
  $error = 1;
}
else {
  my $pval  = $::Variable->{MV_VALID_PROVINCE}
        ? " $::Variable->{MV_VALID_PROVINCE} "
        : $state_template{CA};
  my $sval  = $::Variable->{MV_VALID_STATE}
        ? " $::Variable->{MV_VALID_STATE} "

Source: lib/Vend/Order.pm
Line 1185 (context shows lines 1175-1189 in _province():1183)

}
else {
  return (undef, $var,
    errmsg( $state_error{US}, $val )
  );
}
}

sub _province {
my($ref,$var,$val) = @_;
my $pval  = $::Variable->{MV_VALID_PROVINCE}
      ? " $::Variable->{MV_VALID_PROVINCE} "
      : $state_template{CA};
if( $val =~ /\S/ and $pval =~ /\s$val\s/i) {
  return (1, $var, '');

SEE ALSO


Name

MV_VALID_STATE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Allows you to supply an alternate string to override the standard State validation.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_VALID_STATE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 1153 (context shows lines 1143-1157 in _state_province():1143)

sub _state_province {
my($ref,$var,$val) = @_;
my $error;
if(length($val) != 2) {
$error = 1;
}
else {
my $pval  = $::Variable->{MV_VALID_PROVINCE}
  ? " $::Variable->{MV_VALID_PROVINCE} "
  : $state_template{CA};
my $sval  = $::Variable->{MV_VALID_STATE}
  ? " $::Variable->{MV_VALID_STATE} "
    : $state_template{US};
$error = 1
  unless  $sval =~ /\s$val\s/i or $pval =~ /\s$val\s/i ;

Source: lib/Vend/Order.pm
Line 1169 (context shows lines 1159-1173 in _state():1167)

if($error) {
  return (undef, $var,
    errmsg( "'%s' not a two-letter state or province code", $val )
  );
}
return (1, $var, '');
}

sub _state {
my($ref,$var,$val) = @_;
my $sval  = $::Variable->{MV_VALID_STATE}
      ? " $::Variable->{MV_VALID_STATE} "
      : $state_template{US};

if( $val =~ /\S/ and $sval =~ /\s$val\s/i ) {

SEE ALSO


Name

MV_VARIANT_JOINER

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_VARIANT_JOINER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 2176 (context shows lines 2166-2180 in update_quantity():2050)

}

  $::Values->{"quantity$i"} = delete $CGI::values{"quantity$i"};
SKUSET: {
  my $sku;
  my $found_option;
  last SKUSET unless $sku = delete $CGI::values{"mv_sku$i"};
  my @sku = split /\0/, $sku, -1;
  for(@sku[1..$#sku]) {
    if (not length $_) {
    $_ = $::Variable->{MV_VARIANT_JOINER} || '0';
    next;
    }
    $found_option++;
  }

Source: lib/Vend/Order.pm
Line 2338 (context shows lines 2328-2342 in add_items():2276)

  $Vend::Cfg->{UseModifier} = [] if ! $Vend::Cfg->{UseModifier};
  my %seen;
  my @mods = (grep $_ !~ /^mv_/, split /\0/, $CGI::values{mv_item_option});
  @mods = grep ! $seen{$_}++, @mods;
  push @{$Vend::Cfg->{UseModifier}}, @mods;
}

if($CGI::values{mv_sku}) {
  my @sku = split /\0/, $CGI::values{mv_sku};
  for (@sku) {
    $_ = $::Variable->{MV_VARIANT_JOINER} || '0' if ! length($_);
  }
  $items[0] = join '-', @sku;
  my $sku_field = $Vend::Cfg->{Options_repository}{Matrix}->{sku} || 'sku';
  $skus[0] = Vend::Data::product_field($sku_field, $items[0]);

SEE ALSO


Name

MV_ZIP_REQUIRED

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

MV_ZIP_REQUIRED is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Order.pm
Line 1219 (context shows lines 1209-1223 in _multizip():1209)

sub _multizip {
my($ref,$var,$val) = @_;

$val =~ s/^\s+//;
my $error;
my $cval = _get_cval($ref, $var);

if (my $sub = $zip_routine{$cval}) {
  $sub->($val) or $error = 1;
}
elsif($::Variable->{MV_ZIP_REQUIRED}) {
    " $::Variable->{MV_ZIP_REQUIRED} " =~ /\s$cval\s/
    and
  length($val) < 4 and $error = 1;
}

SEE ALSO


Name

ORDERS_TO

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

ORDERS_TO is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 150 (context shows lines 140-154)

report            etc/log_transaction
track             logs/tracking.asc
counter_tid       logs/tid.counter
EOF

Route gco_final master 1
Route gco_final cascade "copy_user main_entry"
Route gco_final empty   1
Route gco_final supplant 1
Route gco_final no_receipt 1
Route gco_final email __ORDERS_TO__

The 'edit basket' URL is available to customers when they are at Google, and lets them change either
the basket contents or the delivery address.


Source: lib/Vend/Payment/GoogleCheckout.pm
Line 428 (context shows lines 418-432 in googlecheckout():399)

my $exempt_taxfield = charge_param('exempt_tax_field') || 'exempt';
my $tax_included = $::Values->{tax_included} || charge_param('tax_included') || '';
my $calculate_included_tax = $::Values->{calculate_included_tax} || charge_param \
('calculate_included_tax') || '';
my $ordernumber  = charge_param('ordernumber') || 'etc/order.number';
my $gcocounter   = charge_param('gcocounter') || 'etc/username.counter'; 
my $defaultshipmode = charge_param('default_shipmode') || 'upsg';
my $defaultcountry  = $::Values->{default_country} || charge_param('default_country') || '';
my $defaultstate    = $::Values->{default_state} || charge_param('default_state') || '';
my $bypass_auth  = charge_param('bypass_authorization') || '1';
my $senderemail  = charge_param('sender_email') ;
my $merchantemail = charge_param('merchant_email') || $::Variable->{ORDERS_TO};
my $doreceipt    = charge_param('receipt_from_merchant') || '1';
my $sendemail    = charge_param('email_auth_charge') || 'charge';
my $htmlmail     = charge_param('html_mail') || '';
my $mailriskfail = $::Values->{mailriskfail} || charge_param('mail_on_risk_failure') \
 || "Authentication checks failed";

SEE ALSO


Name

PACAKGE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PACAKGE is available in Interchange versions:

4.6.0-5.6.0

SOURCE

Interchange 5.6.0:

Source: lib/Vend/Payment/PaypalExpress.pm
Line 239 (context shows lines 229-243)

Lyn St George <info@zolotek.net>
Based on original code by Mike Heins <mheins@perusion.com>

=cut

BEGIN {
eval {
  package Vend::Payment;
  require SOAP::Lite or die __PACKAGE__ . " requires SOAP::Lite";
# without this next it defaults to Net::SSL which may crash
  require IO::Socket::SSL or die __PACAKGE__ . " requires IO::Socket::SSL";
  require Net::SSLeay;
};

if ($@) {

SEE ALSO


Name

PAGE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PAGE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 3383 (context shows lines 3373-3387 in tag_more_list():3223)

}
else {
  $r =~ s:\[(last|next)[-_]anchor\]$All\[/\1[-_]anchor\]::gi;
}

unless ($page_anchor) {
  if($r =~ s:\[page[-_]anchor\]($All)\[/page[-_]anchor\]::i) {
    $page_anchor = $1;
  }
  else {
    $page_anchor = '__PAGE__';
  }
}
elsif ($page_anchor ne 'none') {
  $page_anchor = qq%<img src="$page_anchor?__PAGE__"__BORDER__>%;

Source: lib/Vend/Interpolate.pm
Line 3387 (context shows lines 3377-3391 in tag_more_list():3223)


unless ($page_anchor) {
if($r =~ s:\[page[-_]anchor\]($All)\[/page[-_]anchor\]::i) {
  $page_anchor = $1;
}
else {
  $page_anchor = '__PAGE__';
}
}
elsif ($page_anchor ne 'none') {
$page_anchor = qq%<img src="$page_anchor?__PAGE__"__BORDER__>%;
}

$page_anchor =~ s/\$(MIN|MAX)?PAGE\$/__${1}PAGE__/g;


SEE ALSO


Name

PAGE_TITLE_NAME — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It allows you to override the page title in preview mode.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PAGE_TITLE_NAME is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 2409 (context shows lines 2399-2413 in preview_page():2398)

my ($ref, $opt) = @_;
my $dest = preview_dir();
$dest .= "/$ref->{ui_name}";
$::Scratch->{tmp_tmpfile} = $dest;
my $tmp = { %$ref };
my $record = ref_content($tmp)
  or return death("preview_template", "bad news");
my $text = format_page(
        $tmp,
        {
          preview => $::Variable->{PAGE_TITLE_NAME} || 'page_title',
          preview_tag => errmsg('****PREVIEW****'),
        },
      );
$record->{page_text} = $text;

SEE ALSO


Name

PRI_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 89 (context shows lines 79-93)


Route PRI id YourPRIID

or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"

SEE ALSO


Name

PRI_REFID_MODE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_REFID_MODE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 94 (context shows lines 84-98)

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"
Route  PRI      refid_mode  "__PRI_REFID_MODE__"

A fully valid variable.txt entry to work with the PRI module would be:

MV_PAYMENT_MODE  PRI  Payment

SEE ALSO


Name

PRI_REGKEY

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_REGKEY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 90 (context shows lines 80-94)

Route PRI id YourPRIID

or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"
Route  PRI      refid_mode  "__PRI_REFID_MODE__"

SEE ALSO


Name

PRI_TEST_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_TEST_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 91 (context shows lines 81-95)


or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"
Route  PRI      refid_mode  "__PRI_REFID_MODE__"
    

SEE ALSO


Name

PRI_TEST_MODE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_TEST_MODE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 93 (context shows lines 83-97)


Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"
Route  PRI      refid_mode  "__PRI_REFID_MODE__"
    
A fully valid variable.txt entry to work with the PRI module would be:


SEE ALSO


Name

PRI_TEST_REGKEY

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

PRI_TEST_REGKEY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/PRI.pm
Line 92 (context shows lines 82-96)

or with only PRI as a payment provider

Variable MV_PAYMENT_ID      YourPRIID

A fully valid catalog.cfg entry to work with the standard demo would be:

Variable MV_PAYMENT_MODE    "__MV_PAYMENT_MODE__"
Route  PRI      id          "__PRI_ID__"
Route  PRI      regkey      "__PRI_REGKEY__"
Route  PRI      test_id     "__PRI_TEST_ID__"
Route  PRI      test_regkey "__PRI_TEST_REGKEY__"
Route  PRI      test_mode   "__PRI_TEST_MODE__"
Route  PRI      refid_mode  "__PRI_REFID_MODE__"
    
A fully valid variable.txt entry to work with the PRI module would be:

SEE ALSO


Name

RECEIPT_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

RECEIPT_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 409 (context shows lines 399-413 in googlecheckout():399)

sub googlecheckout {
my ($opt, $purchaseID, $mv_order_number, $msg, $cart, %result);
$gcoserver   = charge_param('googlehost')  || $::Variable->{MV_PAYMENT_HOST} \
 \
 \
 \
 \
 || 'https://checkout.google.com/api/checkout/v2'; # live
my $catroot     = charge_param('cat_root') || $::Variable->{CAT_ROOT};
my $ordersdir   = charge_param('ordersdir') || 'orders';
my $currency    = $::Values->{currency} || charge_param('currency') || 'GBP';  
my $editbasketurl = charge_param('edit_basket_url') || $::Variable->{EDIT_BASKET_URL};
$editbasketurl =~ s/\.html$//i;
 $editbasketurl .= ".html?id=$::Session->{id}";
my $continueshoppingurl = charge_param('continue_shopping_url') || $::Variable->{CONTINUE_SHOPPING_URL};
my $receipturl  = charge_param('receipt_url') || $::Variable->{RECEIPT_URL};
my $gcoipn_url  = charge_param('gcoipn_url') || $::Variable->{GCOIPN_URL};
my $gcocmd_url  = charge_param('gcocmd_url') || $::Variable->{GCOCMD_URL}; \
 \
 # from IC admin panel, not from GCO
my $chargecard  = $::Values->{charge_card} || charge_param('charge_card') || '1';
my $basket_expiry = charge_param('basket_expiry') || $::Variable->{BASKET_EXPIRY} || '1 month';

SEE ALSO


Name

SECURE_SERVER

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

SECURE_SERVER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 436 (context shows lines 426-440 in googlecheckout():399)

my $bypass_auth  = charge_param('bypass_authorization') || '1';
my $senderemail  = charge_param('sender_email') ;
my $merchantemail = charge_param('merchant_email') || $::Variable->{ORDERS_TO};
my $doreceipt    = charge_param('receipt_from_merchant') || '1';
my $sendemail    = charge_param('email_auth_charge') || 'charge';
my $htmlmail     = charge_param('html_mail') || '';
my $mailriskfail = $::Values->{mailriskfail} || charge_param('mail_on_risk_failure') \
 \
 || "Authentication checks failed";
my $gcocmd       = $::Values->{gcocmd} || '';
my $avsmatch     = charge_param('avs_match_accepted') || 'partial';
my $cv2match     = charge_param('cv2_match_accepted') || 'yes';
my $checkouturl  = charge_param('checkouturl') || "$::Variable->{SECURE_SERVER}$::Variable->{CGI_URL}/ord/checkout";
my $returnurl    = charge_param('returnurl')   || "$::Variable->{SECURE_SERVER}$::Variable->{CGI_URL}/ord/gcoreceipt";
   $returnurl    =~ s/\.html$//i;
   $returnurl   .= ".html?id=$::Session->{id}";
my $diagnose     = $::Values->{gco_diagnose} || charge_param('gco_diagnose') \
 || ''; # set to '1' to have GCO return the XML it receives for diagnostics

Source: lib/Vend/Payment/SagePay.pm
Line 604 (context shows lines 594-608 in sagepay():576)

my $accountType = $::Values->{account_type} || charge_param('account_type') || 'E';
my $payID       = $::Values->{inv_no} || $::Session->{mv_transaction_id} \
 \
 || $::Session->{id}.$amount;
my $logorder    = charge_param('logorder') || 'no'; # Set to 'yes' or \ \

 '1' to log basket plus data useful when arguing with SagePay over empty responses
my $logsagepay  = charge_param('logsagepay') || 'no'; # Set to yes or \
 1 to log sagepay activity for debugging
my $logzero     = charge_param('logzero')   || 'no';
my $available   = $::Values->{available} || charge_param('available')  || 'no';
my $description = "$::Values->{company} $::Values->{fname} $::Values->{lname}";
   $description = substr($description,0,99);
my $apply3ds    = $::Values->{apply3ds} ||  charge_param('apply3ds') \
 || '0'; # '2' will turn 3ds off, '0' is default live variant
my $applyAVSCV2 = $::Values->{applyavscv2} || charge_param('applyavscv2') || '0';
my $termurl     = charge_param('returnurl') || "$::Variable->{SECURE_SERVER}$::Variable->{CGI_URL}/ord/tdsreturn";
my $tdscallback = charge_param('tdscallback') || '/gateway/service/direct3dcallback.vsp';
my $checkouturl = charge_param('checkouturl') || "$::Variable->{SECURE_SERVER}$::Variable->{CGI_URL}/ord/checkout";
my $checkstatus = charge_param('check_status') || '1';
my $checkstatusurl = charge_param('check_status_url') || '/TxStatus/TxStatus.asp';

SEE ALSO


Name

SERVER_NAME — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It specifies the domain name of your catalog.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

SERVER_NAME is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Util.pm
Line 2185 (context shows lines 2175-2189 in send_mail():2078)

or last SEND;
print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
if $use_mime;
print MVMAIL "\r\n\cZ" if $Global::Windows;
close MVMAIL or last SEND;
$ok = ($? == 0);
}

SMTP: {
my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
};

Source: lib/Vend/Email.pm
Line 668 (context shows lines 658-672 in send_mail_legacy():561)

or last SEND;
print MVMAIL Vend::Interpolate::do_tag('mime boundary') . '--'
if $use_mime;
print MVMAIL "\r\n\cZ" if $Global::Windows;
close MVMAIL or last SEND;
$ok = ($? == 0);
}

SMTP: {
my $mhost = $::Variable->{MV_SMTPHOST} || $Global::Variable->{MV_SMTPHOST};
my $helo =  $Global::Variable->{MV_HELO} || $::Variable->{SERVER_NAME};
last SMTP unless $none and $mhost;
eval {
require Net::SMTP;
};

Source: lib/Vend/Payment/iTransact.pm
Line 296 (context shows lines 286-300 in itransact():217)

        phone       =>   $actual{phone_day},
        email       =>   $actual{email},
        ccnum       =>   $actual{mv_credit_card_number},
        ccmo        =>   $exp_month,
        ccyr        =>   $exp_year,
        ret_mode    =>   "redirect",
       );

my $hp = $opt->{home_page}
    || charge_param('home_page')
    || $::Variable->{SERVER_NAME};
$hp = "http://$hp" unless $hp =~ /^\w+:/;
$values{home_page} = $hp;

$opt->{submit_url} ||= 'https://secure.itransact.com/cgi-bin/rc/ord.cgi';

SEE ALSO


Name

SHIP_DEFAULT_ZIP

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

SHIP_DEFAULT_ZIP is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 53 (context shows lines 43-57)

);
my %mailtypes = (
  'package'                  => 1,
  'postcards or aerogrammes' => 1,
  'matter for the blind'     => 1,
  'envelope'                 => 1,
  );

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
 my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';

SEE ALSO


Name

SQLDSN — default DSN string used for SQL database connections

SYNOPSIS

DSN

DESCRIPTION

This variable specifies the default DSN to be used in SQL database connections.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Setting SQLDSN for Postgres

Variable SQLDSN dbi:Pg:database=MYDBNAME

Example: Setting SQLDSN for MySQL

Variable SQLDSN dbi:mysql:database=MYDBNAME

NOTES

No magic is happening here, mind you. Your "template", the demo catalog, or some piece of code must — at some point — refer to the SQLDSN variable explicitly. Interchange does not somehow do this by itself.

See the DSN glossary entry for complete discussion.

AVAILABILITY

SQLDSN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Ship/QueryUPS.pm
Line 305 (context shows lines 295-309 in calculate():41)

To aggregate by 1, use .999999.

=item cache_table

Set to the name of a table (default ups_cache) which can cache the
calls so repeated calls for the same values will not require repeated
calls to UPS.

Table needs to be set up with:

Database   ups_cache        ship/ups_cache.txt         __SQLDSN__
Database   ups_cache        AUTO_SEQUENCE  ups_cache_seq
Database   ups_cache        DEFAULT_TYPE varchar(12)
Database   ups_cache        INDEX  weight origin zip shipmode country


SEE ALSO


Name

SURVEY_LOG_DIR — directory to store survey results

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies the directory to store survey results.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Setting SURVEY_LOG_DIR

Variable SURVEY_LOG_DIR logs/survey

NOTES

AVAILABILITY

SURVEY_LOG_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/auto_wizard.coretag
Line 254 (context shows lines 244-258 in survey_log_to_file():242)


if(! $opt->{output_repeated} and already($wizname)) {
  return template_attr($wizname, $ref, $opt, $fnames);
}

my $fn   = $ref->{survey_file};
my $cfn  = $ref->{survey_counter};
my $sqlc = $ref->{survey_counter_sql};

if(! $fn) {
  $fn = $::Variable->{SURVEY_LOG_DIR} || 'logs/survey';
  $fn .= "/$wizname.txt";
}

if(! $cfn and ! $sqlc) {

SEE ALSO


Name

TAXCOUNTRY — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Allows you to supply an alternate string of valid countries to override the standard Country validation.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TAXCOUNTRY is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5416 (context shows lines 5406-5420 in fly_tax():5413)

switch_discount_space($oldspace) if defined $oldspace;

return $taxable;
}



sub fly_tax {
my ($area, $opt) = @_;

if(my $country_check = $::Variable->{TAXCOUNTRY}) {
  $country_check =~ /\b$::Values->{country}\b/
    or return 0;
}



Name

TAXHANDLING

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TAXHANDLING is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5431 (context shows lines 5421-5435 in fly_tax():5413)

if(! $area) {
my $zone = $Vend::Cfg->{SalesTax};
while($zone =~ m/(\w+)/g) {
last if $area = $::Values->{$1};
}
}
#::logDebug("flytax area=$area");
return 0 unless $area;
my $rates = $::Variable->{TAXRATE};
my $taxable_shipping = $::Variable->{TAXSHIPPING} || '';
my $taxable_handling = $::Variable->{TAXHANDLING} || '';
$rates =~ s/^\s+//;
$rates =~ s/\s+$//;
$area =~ s/^\s+//;
$area =~ s/\s+$//;


Name

TAXRATE — key=value pairs used for taxing calculation

SYNOPSIS

{ area=value... }

DESCRIPTION

An accessory-list style of values (key/value pairs) defining areas and corresponding tax values.

This is used in conjunction with the FlyTax taxing method.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

IL=7.25, NV=5.5

NOTES

AVAILABILITY

TAXRATE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5429 (context shows lines 5419-5433 in fly_tax():5413)

}

if(! $area) {
  my $zone = $Vend::Cfg->{SalesTax};
  while($zone =~ m/(\w+)/g) {
    last if $area = $::Values->{$1};
  }
}
#::logDebug("flytax area=$area");
return 0 unless $area;
my $rates = $::Variable->{TAXRATE};
my $taxable_shipping = $::Variable->{TAXSHIPPING} || '';
my $taxable_handling = $::Variable->{TAXHANDLING} || '';
$rates =~ s/^\s+//;
$rates =~ s/\s+$//;


Name

TAXSHIPPING — list of geographical identifiers for which taxing is applied

SYNOPSIS

{ area name... }

DESCRIPTION

A space- or comma-separated list of codes for which shipping is taxed and needs to be applied. This is used in conjunction with the FlyTax taxing method.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example:

Variable TAXSHIPPING NV, IL

NOTES

AVAILABILITY

TAXSHIPPING is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Interpolate.pm
Line 5430 (context shows lines 5420-5434 in fly_tax():5413)


if(! $area) {
my $zone = $Vend::Cfg->{SalesTax};
while($zone =~ m/(\w+)/g) {
  last if $area = $::Values->{$1};
}
}
#::logDebug("flytax area=$area");
return 0 unless $area;
my $rates = $::Variable->{TAXRATE};
my $taxable_shipping = $::Variable->{TAXSHIPPING} || '';
my $taxable_handling = $::Variable->{TAXHANDLING} || '';
$rates =~ s/^\s+//;
$rates =~ s/\s+$//;
$area =~ s/^\s+//;

Source: lib/Vend/Payment/GoogleCheckout.pm
Line 501 (context shows lines 491-505 in googlecheckout():399)

my $defaultcountry = charge_param('defaultcountry');
my $defaultstate = charge_param('defaultstate');
my $country  = uc($actual->{country});
           $country  = $defaultcountry unless $country; 
 my $state    = uc($actual->{state});
             $state    = $defaultstate unless $state;
 my $zip_pattern = $actual->{zip} || $::Values->{zip};
             $zip_pattern =~ /(\S\S\S).*/;
             $zip_pattern = "$1"."*";
   my $taxshipping = 'false';
             $taxshipping = 'true' if (($country =~ /$::Variable->{TAXSHIPPING}/) \
 or ($state =~ /$::Variable->{TAXSHIPPING}/) or ($alwaystaxshipping == '1'));
::logDebug(":GCO:".__LINE__.": shipping=$::Session->{final_shipping}, $shipping; \
 handling=$handling; taxshipping=$::Variable->{TAXSHIPPING}; \
 country=$country; tx=$taxshipping");
my $stax = Vend::Interpolate::salestax();
print "GCO:".__LINE__.": stax=$stax; mvst=$::Values->{mv_salestax}, $::Values->{salestax}\n";
if ($salestax == '0') { 


Name

TRUSTCOMMERCE_ACTION

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TRUSTCOMMERCE_ACTION is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/TCLink.pm
Line 280 (context shows lines 270-284 in trustcommerce():233)


$actual->{mv_credit_card_exp_month} =~ s/\D//g;
$actual->{mv_credit_card_exp_year} =~ s/\D//g;
$actual->{mv_credit_card_exp_year} =~ s/\d\d(\d\d)/$1/;
$actual->{mv_credit_card_number} =~ s/\D//g;
$actual->{b_zip} =~ s/\D//g;

my $exp = sprintf '%02d%02d', $actual->{mv_credit_card_exp_month},
  $actual->{mv_credit_card_exp_year};

my $transtype = $opt->{transaction} || $::Variable->{TRUSTCOMMERCE_ACTION};
$transtype ||= 'sale';

my %type_map = (
  auth       =>  'preauth',

SEE ALSO


Name

TRUSTCOMMERCE_AVS

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TRUSTCOMMERCE_AVS is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/TCLink.pm
Line 310 (context shows lines 300-314 in trustcommerce():233)

if(! $amount) {
  $amount = Vend::Interpolate::total_cost();
  $amount = Vend::Util::round_to_frac_digits($amount,$precision);
}
      $amount =~ s/\D//g;

$order_id = gen_order_id($opt);

$name = $actual->{b_fname} . ' ' . $actual->{b_lname};

      $avs = $opt->{avs} || $::Variable->{TRUSTCOMMERCE_AVS} || 'n';

my %query = (
  amount          => $amount,
  cc      => $actual->{mv_credit_card_number},

SEE ALSO


Name

TRUSTCOMMERCE_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TRUSTCOMMERCE_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/TCLink.pm
Line 239 (context shows lines 229-243 in trustcommerce():233)

}

package Vend::Payment;

sub trustcommerce {
my ($user, $amount) = @_;

my $opt;
if(ref $user) {
  $opt = $user;
  $user = $opt->{id} || $::Variable->{TRUSTCOMMERCE_ID} || undef;
  $secret = $opt->{secret} || $::Variable->{TRUSTCOMMERCE_SECRET} || undef;
}
else {
  $opt = {};

SEE ALSO


Name

TRUSTCOMMERCE_SECRET

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TRUSTCOMMERCE_SECRET is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/TCLink.pm
Line 240 (context shows lines 230-244 in trustcommerce():233)


package Vend::Payment;

sub trustcommerce {
my ($user, $amount) = @_;

my $opt;
if(ref $user) {
$opt = $user;
$user = $opt->{id} || $::Variable->{TRUSTCOMMERCE_ID} || undef;
$secret = $opt->{secret} || $::Variable->{TRUSTCOMMERCE_SECRET} || undef;
}
else {
$opt = {};
}

SEE ALSO


Name

TRUSTCOMMERCE_TEST

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

TRUSTCOMMERCE_TEST is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Payment/TCLink.pm
Line 316 (context shows lines 306-320 in trustcommerce():233)

$order_id = gen_order_id($opt);

$name = $actual->{b_fname} . ' ' . $actual->{b_lname};

    $avs = $opt->{avs} || $::Variable->{TRUSTCOMMERCE_AVS} || 'n';

my %query = (
amount          => $amount,
cc      => $actual->{mv_credit_card_number},
  exp      => $exp,
  demo      => $opt->{test} || charge_param('test') || $::Variable->{TRUSTCOMMERCE_TEST},
  name      => $name,
  address1    => $actual->{b_address},
  city      => $actual->{b_city},
  state      => $actual->{b_state},

SEE ALSO


Name

UI_ACCESS_KEY_LIMIT — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

Define the number of keys returned.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_ACCESS_KEY_LIMIT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/list_keys.coretag
Line 50 (context shows lines 40-54)

$db = $db->ref() unless $Vend::Interpolate::Db{$table};
my $keyname = $db->config('KEY');
if($db->config('LARGE')) {
  return ::errmsg('--not listed, too large--');
}
my $query = "select $keyname from $table order by $keyname";
#::logDebug("list_keys: query=$query");
$keys = $db->query(
        {
          query => $query,
          ml => $::Variable->{UI_ACCESS_KEY_LIMIT} || 500,
          st => 'db',
        }
      );
if(defined $keys) {

Source: dist/lib/UI/Primitive.pm
Line 342 (context shows lines 332-346 in list_keys():311)

return '' unless $db;
$db = $db->ref() unless $Vend::Interpolate::Db{$table};
my $keyname = $db->config('KEY');
if($db->config('LARGE')) {
  return ::errmsg('--not listed, too large--');
}
my $query = "select $keyname from $table order by $keyname";
$keys = $db->query(
        {
          query => $query,
          ml => $::Variable->{UI_ACCESS_KEY_LIMIT} || 500,
          st => 'db',
        }
      );
if(defined $keys) {

SEE ALSO


Name

UI_ACCESS_TABLE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It allows you to specify the UserDB file to be used for access to the admin.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_ACCESS_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/Primitive.pm
Line 108 (context shows lines 98-112 in ui_acl_enabled():98)

sub ui_acl_enabled {
my $try = shift;
my $table;
$Global::SuperUserFunction = \&is_super;
my $default = defined $Global::Variable->{UI_SECURITY_OVERRIDE}
  ? $Global::Variable->{UI_SECURITY_OVERRIDE}
  : 0;
if ($Vend::superuser) {
return $Vend::UI_entry = { super => 1 };
}
$table = $::Variable->{UI_ACCESS_TABLE} || 'access';
$Vend::WriteDatabase{$table} = 1;
my $db = Vend::Data::database_exists_ref($table);
return $default unless $db;
$db = $db->ref() unless $Vend::Interpolate::Db{$table};

Source: dist/lib/UI/Primitive.pm
Line 136 (context shows lines 126-140 in get_ui_table_acl():127)


sub get_ui_table_acl {
my ($table, $user, $keys) = @_;
$table = $::Values->{mv_data_table} unless $table;
my $acl_top;
if($user and $user ne $Vend::username) {
  if ($Vend::UI_acl{$user}) {
    $acl_top = $Vend::UI_acl{$user};
  }
  else {
    my $ui_table = $::Variable->{UI_ACCESS_TABLE} || 'access';
    my $acl_txt = Vend::Interpolate::tag_data($ui_table, 'table_control', $user);
    return undef unless $acl_txt;
    $acl_top = $ui_safe->reval($acl_txt);
    return undef unless ref($acl_top);

SEE ALSO


Name

UI_BASE — specify relative system path to the admin interface files

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies the relative path to the admin interface. It is used system-wide.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

This variable should be set in dist/lib/UI/ui.cfg.

AVAILABILITY

UI_BASE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Table/Editor.pm
Line 3899 (context shows lines 3889-3903 in editor():2206)

  $template->{$c} =~ s/\$LABEL\$/{LABEL}/g;
}
}

my $meta_string = '';
my $meta_url;
my $meta_url_specific;
if($show_meta) {
# Get global variables
my $base = $::Variable->{UI_BASE}
     || $Global::Variable->{UI_BASE} || 'admin';
my $page = $Global::Variable->{MV_PAGE};
my $id = $t . "::$c";
$id = $opt->{ui_meta_view} . "::$id"
      if $opt->{ui_meta_view} and $opt->{ui_meta_view} ne 'metaconfig';

Source: code/Widget/uploadhelper.widget
Line 29 (context shows lines 19-33)

my $umask = $opt->{umask} || '022';
my $path = $opt->{path} || $opt->{outboard};
my $size = $opt->{cols} || $opt->{width};

$path =~ s:^/+::;
my $view_url;
$size = qq{ SIZE="$size"} if $size > 0;
my $out = '';
  if ($val) {
  if($path) {
    my $base = $::Variable->{UI_BASE} || 'admin';
    my $view_url = Vend::Interpolate::tag_area("$base/do_view", "$path/$val");
    $out .= qq{<A HREF="$view_url">};
  }
  $out .= $val;

Source: code/UI_Tag/version.coretag
Line 33 (context shows lines 23-37)


if($opt->{global_error}) {
  push @out, $Global::ErrorFile;
  $done_something = 1;
}

if($opt->{local_error}) {
  my $dfn = my $fn = $Vend::Cfg->{ErrorFile};
  my $pre = $Global::Catalog{$Vend::Cat}->{dir} . '/';
  $fn =~ s:^\Q$pre\E::;
  my $href = $Tag->area("$::Variable->{UI_BASE}/do_view", $fn);
  push(@out, qq{<a href="$href">$dfn</a>});
  $done_something = 1;
}


Source: code/UI_Tag/file_navigator.coretag
Line 32 (context shows lines 22-36)

      *S_ISGID = sub {return 1024};
      *S_ISVTX = sub {return 512};
}
sub {
my ($dir_mask, $opt) = @_;


#::logDebug("file-nav dir_mask: $dir_mask opt: " . ::uneval($opt));
  $dir_mask = '*';

my $base_admin = ( $::Variable->{UI_BASE} || 'admin');
my $base_url = $Vend::Cfg->{VendURL}
      . '/'
      . ($opt->{base_url} || $base_admin);
my $view_href = $opt->{view_href} || "$base_admin/do_view";

SEE ALSO


Name

UI_COMPONENT_DIR

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_COMPONENT_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 1007 (context shows lines 997-1011 in get_content_dirs():991)

# look no farther
}
elsif($opt->{type} eq 'page') {
$dir = $Vend::Cfg->{PageDir};
}
else {
my $tdir  =  $opt->{template_dir}
      || $::Variable->{UI_TEMPLATE_DIR} || 'templates';
if($opt->{type} eq 'component') {
  $dir = $opt->{component_dir}
     || $::Variable->{UI_COMPONENT_DIR} || "$tdir/components";
}
  else {
    $dir = $tdir;
  }

Source: dist/lib/UI/ContentEditor.pm
Line 2333 (context shows lines 2323-2337 in write_component():2331)


sub write_template {
my ($record, $dest) = @_;
my $dir = $::Variable->{UI_TEMPLATE_DIR} || 'templates';
$dest ||= "$dir/$record->{code}";
Vend::Tags->write_relative_file($dest, $record->{temp_text});
}

sub write_component {
my ($record, $dest) = @_;
my $dir = $::Variable->{UI_COMPONENT_DIR} || 'templates/components';
$dest ||= "$dir/$record->{code}";
Vend::Tags->write_relative_file($dest, $record->{comp_text});
}


SEE ALSO


Name

UI_COMPONENT_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_COMPONENT_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 179 (context shows lines 169-183 in get_cdb():175)

return $store unless $type;
$store->{$type} ||= {};
return $store->{$type} unless $name;
return $store->{$type}{$name};
}

sub get_cdb {
my $opt = shift;
return $opt->{component_db} if defined $opt->{component_db};
my $tab = $opt->{component_table};
$tab  ||= $::Variable->{UI_COMPONENT_TABLE};
$tab  ||= 'component';
$opt->{component_db} = ::database_exists_ref($tab) || '';
}


SEE ALSO


Name

UI_DATE_BEGIN — default first year for date widget

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_DATE_BEGIN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Form.pm
Line 528 (context shows lines 518-532 in date_widget():444)


my $cy = $t[5] + 1900;

# If year_begin or year_end are /00+/, make current year
for(qw/ year_begin year_end /) {
  if( length($opt->{$_}) > 1 and $opt->{$_} == 0) {
    $opt->{$_} = $cy;
  }
}

if(my $by = $opt->{year_begin} || $::Variable->{UI_DATE_BEGIN}) {
  my $ey = $opt->{year_end}  || $::Variable->{UI_DATE_END} || ($cy + 10);
  if($by < 100) {
    $by = $cy - abs($by);
  }


Name

UI_DATE_END — default last year for date widget

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_DATE_END is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Form.pm
Line 529 (context shows lines 519-533 in date_widget():444)

my $cy = $t[5] + 1900;

# If year_begin or year_end are /00+/, make current year
for(qw/ year_begin year_end /) {
if( length($opt->{$_}) > 1 and $opt->{$_} == 0) {
  $opt->{$_} = $cy;
}
}

if(my $by = $opt->{year_begin} || $::Variable->{UI_DATE_BEGIN}) {
my $ey = $opt->{year_end}  || $::Variable->{UI_DATE_END} || ($cy + 10);
if($by < 100) {
  $by = $cy - abs($by);
}
  if($ey < 100) {


Name

UI_ERROR_PAGE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It allows one to override the admin error page.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_ERROR_PAGE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/flex_select.coretag
Line 86 (context shows lines 76-90 in flex_select_init():30)


$Tmp->{flex_select} ||= {};
my $ts = $Tmp->{flex_select}{$table} = {};

if(! $db) {
  $Tag->error({
          name => 'flex_select',
          set =>  errmsg('no %s database', $table),
        });
  my $url = $Tag->area( {
            href => $::Variable->{UI_ERROR_PAGE} || 'admin/error',
            secure => $::Variable->{UI_SECURE},
          });
#::logDebug("delivering error url=$url");
  $Tag->deliver( { location => $url });

SEE ALSO


Name

UI_IMAGE_DIR — specify web server path to the admin interface images and CSS

SYNOPSIS

{ path }

DESCRIPTION

This variable specifies the web server path to the admin interface images and CSS definitions.

VARIABLE TYPE

Global variable,
Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

This variable should be set in dist/lib/UI/ui.cfg.

AVAILABILITY

UI_IMAGE_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/SystemTag/image.tag
Line 35 (context shows lines 25-39)

@imagefields = qw( image ) if ! @imagefields;

my @imagesuffixes = qw( jpg gif png jpeg );
my $filere = qr/\.\w{2,4}$/;
my $absurlre = qr!^(?i:https?)://!;

if ($opt->{ui}) {
# unless no image dir specified, add locale string
my $locale = $Scratch->{mv_locale} ? $Scratch->{mv_locale} : 'en_US';
$imagedir    = $::Variable->{UI_IMAGE_DIR}
        || $Global::Variable->{UI_IMAGE_DIR};
$imagedirsecure  = $::Variable->{UI_IMAGE_DIR}
        || $Global::Variable->{UI_IMAGE_DIR};
for ($imagedir, $imagedirsecure) {
    if ($_) {

SEE ALSO


Name

UI_ITEM_TABLES

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_ITEM_TABLES is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Options/Simple.pm
Line 279 (context shows lines 269-283 in admin_page():255)

  or return;
my ($k,$v);
$db->clone_row($CGI->{ui_clone_id}, $CGI->{sku});
$db->clone_set('sku', $CGI->{ui_clone_id}, $CGI->{sku});
return;
[/perl]
[/if]

[if cgi sku]
  [tag flag write]options[/tag]
  [perl tables="options __UI_ITEM_TABLES__"]
      my $otab = 'options';
      my $odb = $Db{$otab};

      foreach(sort keys %{$CGI}) {

SEE ALSO


Name

UI_LARGE_TABLE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It specifies that flex-select should not use ra=all if UI_LARGE_TABLE is set.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_LARGE_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/flex_select.coretag
Line 94 (context shows lines 84-98 in flex_select_init():30)

    });
my $url = $Tag->area( {
        href => $::Variable->{UI_ERROR_PAGE} || 'admin/error',
        secure => $::Variable->{UI_SECURE},
      });
#::logDebug("delivering error url=$url");
$Tag->deliver( { location => $url });
return;
}

if( $::Variable->{UI_LARGE_TABLE} =~ /\b$table\b/ or $db->config('LARGE') ) {
  $ts->{large} = 1;
}

if( $db->config('COMPOSITE_KEY') ) {

SEE ALSO


Name

UI_META_LINK — toggle UI meta link display

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

The variable enables display of "Edit metadata" links in the UI.

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Enable "Edit metadata" UI links

Variable UI_META_LINK 1

NOTES

AVAILABILITY

UI_META_LINK is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Table/Editor.pm
Line 3325 (context shows lines 3315-3329 in editor():2206)

my @ext_enable;

if($opt->{left_width} and ! $opt->{label_cell_width}) {
  $opt->{label_cell_extra} .= qq{ width="$opt->{left_width}"};
}

my $show_meta;
if($super and ! $opt->{no_meta}) {
  $show_meta = defined $def->{ui_meta_force}
        ?  $def->{ui_meta_force}
        : $::Variable->{UI_META_LINK};
}

if($show_meta) {
  if(! $opt->{row_template} and ! $opt->{simple_row}) {

SEE ALSO


Name

UI_META_SELECT

SYNOPSIS

{ }

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_META_SELECT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/flex_select.coretag
Line 712 (context shows lines 702-716 in flex_select_init():30)

}

$opt->{ui_style} = 1 unless defined $opt->{ui_style};
$opt->{no_checkbox} = 1 if $ts->{multikey};

my $show_meta;
my $meta_anchor;
if($Tag->if_mm('super') and ! $opt->{no_meta}) {
  $show_meta = defined $::Values->{ui_meta_force}
        ? $::Values->{ui_meta_force}
        : $::Variable->{UI_META_SELECT};
  if($opt->{meta_image}) {
    $meta_anchor = qq{<img src="$opt->{meta_image}" border=0>};
  }
  else {

SEE ALSO


Name

UI_META_TABLE — name of the metadata table

SYNOPSIS

{ database name }

DESCRIPTION

Allows you to specify an alternate table where metadata is kept.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_META_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/row_edit.coretag
Line 22 (context shows lines 12-26)

UserTag row-edit addAttr
UserTag row-edit Interpolate 1
UserTag row-edit Version     $Revision: 1.12 $
UserTag row-edit Routine     <<EOR
sub {
my ($key,$table,$size,$columns,$opt) = @_;
use vars qw/$CGI $Values $Variable/;
#::logDebug("row_edit options=" . ::uneval($opt));
$table = $table || $CGI::values{mv_data_table} || return "BLANK DB";
my $db = ::database_exists_ref($table);
my $mtab = $::Variable->{UI_META_TABLE} || 'mv_metadata';
my $mdb = ::database_exists_ref($mtab);
$opt->{view} ||= $CGI->{ui_meta_view};

my $view = Vend::Table::Editor::meta_record($table, $opt->{view}) || {};

Source: lib/Vend/Table/Editor.pm
Line 665 (context shows lines 655-669 in meta_record():657)

}

sub meta_record {
my ($item, $view, $mdb, $extended_only, $overlay) = @_;

#::logDebug("meta_record: item=$item view=$view mdb=$mdb");
return undef unless $item;

my $mtable;
if(! ref ($mdb)) {
  $mtable = $mdb || $::Variable->{UI_META_TABLE} || 'mv_metadata';
#::logDebug("meta_record mtable=$mtable");
  $mdb = database_exists_ref($mtable)
    or return undef;
}

Source: lib/Vend/Table/Editor.pm
Line 763 (context shows lines 753-767 in display():726)

$table and $column or $opt->{meta}
  or last METALOOK;

## We get a metarecord directly, though why it would be here
## and not in options I don't know
if($opt->{meta} and ref($opt->{meta}) eq 'HASH') {
  $record = $opt->{meta};
  last METALOOK;
}

$mtab = $opt->{meta_table} || $::Variable->{UI_META_TABLE} || 'mv_metadata'
  or last METALOOK;
my $meta = Vend::Data::database_exists_ref($mtab)
  or do {
    ::logError("non-existent meta table: %s", $mtab);

Source: dist/lib/UI/ContentEditor.pm
Line 1732 (context shows lines 1722-1736 in make_control_editor():1696)

  action => 'return',
  defaults => 1,
  force_defaults => 1,
  form_extra => $extra,
  href   => $href,
  js_changed => 'changed',
  nocancel => 1,
  noexport => 1,
  no_meta => 1,
  show_reset => 1,
  table => $::Variable->{UI_META_TABLE} || 'mv_metadata',
  view => 'ui_component',
  widget => $widopt,
  hidden => $hidden,
);

SEE ALSO


Name

UI_PAGE_DIR

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_PAGE_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 2319 (context shows lines 2309-2323 in write_page():2317)

my $out = "[comment]\n";
$out .= join "\n", @header;
$out .= "\n\n";
$out .= join "\n", @controls;
$out .= "\n[/comment]\n";
$out .= $body;
}

sub write_page {
my ($record, $dest) = @_;
my $dir = $::Variable->{UI_PAGE_DIR} || 'pages';
$dest ||= "$dir/$record->{code}";
Vend::Tags->write_relative_file($dest, $record->{page_text});
}


SEE ALSO


Name

UI_PAGE_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_PAGE_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 197 (context shows lines 187-201 in get_pdb():193)

my $tab = $opt->{template_table};
$tab  ||= $::Variable->{UI_TEMPLATE_TABLE};
$tab  ||= 'template';
$opt->{template_db} = ::database_exists_ref($tab) || '';
}

sub get_pdb {
my $opt = shift;
return $opt->{page_db} if defined $opt->{page_db};
my $tab = $opt->{page_table};
$tab  ||= $::Variable->{UI_PAGE_TABLE};
$tab  ||= 'page';
$opt->{page_db} = ::database_exists_ref($tab) || '';
}


SEE ALSO


Name

UI_REGION_DIR

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_REGION_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 2193 (context shows lines 2183-2197 in format_template():2148)

push @header, "ui_version: " . Vend::Tags->version();
delete $ref->{ui_name};
delete $ref->{ui_type};
delete $ref->{"ui_$type"};
delete $ref->{ui_slots};
delete $ref->{ui_version};
my $body = delete $ref->{ui_body};
$body =~ s/\r\n/\n/g;
$body =~ s/\r/\n/g;

my $dir = $::Variable->{UI_REGION_DIR} || 'templates/regions';

my $layout = delete $ref->{ui_template_layout} || [];
my $regdir;
for my $var (@$layout) {

SEE ALSO


Name

UI_SECURE — force UI into secure mode

SYNOPSIS

{ 0 | 1 }

DESCRIPTION

If set, it determines whether or not to force UI into secure mode.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_SECURE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/flex_select.coretag
Line 87 (context shows lines 77-91 in flex_select_init():30)

$Tmp->{flex_select} ||= {};
my $ts = $Tmp->{flex_select}{$table} = {};

if(! $db) {
$Tag->error({
        name => 'flex_select',
        set =>  errmsg('no %s database', $table),
      });
my $url = $Tag->area( {
          href => $::Variable->{UI_ERROR_PAGE} || 'admin/error',
          secure => $::Variable->{UI_SECURE},
        });
#::logDebug("delivering error url=$url");
$Tag->deliver( { location => $url });
  return;

Source: lib/Vend/Table/Editor.pm
Line 1311 (context shows lines 1301-1315 in tabbed_display():1079)

$opt->{panel_style}
}
-->
</style>
EOF
my $s1 = '';
my $s2 = '';
my $ibase = $Tag->image({
            ui      => $Vend::admin,
            dir_only  => 1,
            secure    => $Vend::admin && $::Variable->{UI_SECURE},
          });
$opt->{clear_image} ||= 'bg.gif';
my $clear = "$ibase/$opt->{clear_image}";
my @dntabs;

SEE ALSO


Name

UI_SECURITY_OVERRIDE — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

If configured and no UI_ACCESS_TABLE found, then it will return that there is an ACL set. This would allow you to test ACLs See sub ui_acl_enabled() for more details.

StandardCatalog (catalog.cfg)VariableValues Standard catalog (catalog.cfg) Variable values

VARIABLE TYPE

Global variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_SECURITY_OVERRIDE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/Primitive.pm
Line 102 (context shows lines 92-106 in ui_acl_enabled():98)

return 1;
}

my %wrap_dest;
my $compdb;

sub ui_acl_enabled {
my $try = shift;
my $table;
$Global::SuperUserFunction = \&is_super;
my $default = defined $Global::Variable->{UI_SECURITY_OVERRIDE}
      ? $Global::Variable->{UI_SECURITY_OVERRIDE}
      : 0;
if ($Vend::superuser) {
  return $Vend::UI_entry = { super => 1 };

SEE ALSO


Name

UI_TEMPLATE_DIR — location of the admin templates

SYNOPSIS

{ }

DESCRIPTION

The variable specifies the directory where the admin templates are kept.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_TEMPLATE_DIR is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 1004 (context shows lines 994-1008 in get_content_dirs():991)

my $dir;

if($dir = $opt->{dir}) {
  # look no farther
}
elsif($opt->{type} eq 'page') {
  $dir = $Vend::Cfg->{PageDir};
}
else {
  my $tdir  =  $opt->{template_dir}
        || $::Variable->{UI_TEMPLATE_DIR} || 'templates';
  if($opt->{type} eq 'component') {
    $dir = $opt->{component_dir}
       || $::Variable->{UI_COMPONENT_DIR} || "$tdir/components";
  }

Source: dist/lib/UI/ContentEditor.pm
Line 2326 (context shows lines 2316-2330 in write_template():2324)


sub write_page {
my ($record, $dest) = @_;
my $dir = $::Variable->{UI_PAGE_DIR} || 'pages';
$dest ||= "$dir/$record->{code}";
Vend::Tags->write_relative_file($dest, $record->{page_text});
}

sub write_template {
my ($record, $dest) = @_;
my $dir = $::Variable->{UI_TEMPLATE_DIR} || 'templates';
$dest ||= "$dir/$record->{code}";
Vend::Tags->write_relative_file($dest, $record->{temp_text});
}


SEE ALSO


Name

UI_TEMPLATE_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_TEMPLATE_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: dist/lib/UI/ContentEditor.pm
Line 188 (context shows lines 178-192 in get_tdb():184)

my $tab = $opt->{component_table};
$tab  ||= $::Variable->{UI_COMPONENT_TABLE};
$tab  ||= 'component';
$opt->{component_db} = ::database_exists_ref($tab) || '';
}

sub get_tdb {
my $opt = shift;
return $opt->{template_db} if defined $opt->{template_db};
my $tab = $opt->{template_table};
$tab  ||= $::Variable->{UI_TEMPLATE_TABLE};
$tab  ||= 'template';
$opt->{template_db} = ::database_exists_ref($tab) || '';
}


SEE ALSO


Name

UI_T_ROW_EVEN

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_T_ROW_EVEN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Options/Simple.pm
Line 366 (context shows lines 356-370 in admin_page():255)

<input type="hidden" name="ui_page_title" value="[cgi ui_page_banner]">
<input type="hidden" name="ui_return_to"  value="@@MV_PAGE@@">
<input type="hidden" name="mv_action"     value="back">

<table border="0"><tr><td valign="top">

[query list=1 sql="select * from options where sku='[filter op=sql interpolate=1][cgi \
 item_id][/filter]' and o_group is not null"]
[list]
[if-sql-data options o_group]
[calc] $Scratch->{mod_code} = q{[sql-code]}; $Scratch->{mod_code} =~ s/-/_/g; return;[/calc]
<table border="0" cellspacing="0" cellpadding="3" bgcolor="[sql-alternate \
 2]__UI_T_ROW_EVEN__[else]__UI_T_ROW_ODD__[/else][/sql-alternate]">
<tr><td valign="center">Name: <input type="text" size="20" name="opt_group_[scratch \
 mod_code]" value="[filter entities][sql-param o_group][/filter]">

<a href="[area href='@@MV_PAGE@@'
form='deleterecords=1

SEE ALSO


Name

UI_USER_MERGE_TABLES

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_USER_MERGE_TABLES is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/user_merge.tag
Line 58 (context shows lines 48-62)

$opt->{from_order} = 1;
}
else {
return $err->("Unable to determine what to do, no table or from_user...");
}

my $ufield = $opt->{user_field} || 'username';
my $ofield = $opt->{order_field} || 'order_number';

my $utab = $opt->{user_table} || $::Variable->{UI_USER_MERGE_USER_TABLE} || 'userdb';
my $ttabs = $opt->{merge_tables} || $::Variable->{UI_USER_MERGE_TABLES} \
 \
 || 'transactions orderline';

my @ttab = grep /\w/, split /[\s,\0]+/, $ttabs;

my %kfield;

SEE ALSO


Name

UI_USER_MERGE_USER_TABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UI_USER_MERGE_USER_TABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/user_merge.tag
Line 57 (context shows lines 47-61)

elsif ($table eq 'transactions') {
  $opt->{from_order} = 1;
}
else {
  return $err->("Unable to determine what to do, no table or from_user...");
}

my $ufield = $opt->{user_field} || 'username';
my $ofield = $opt->{order_field} || 'order_number';

my $utab = $opt->{user_table} || $::Variable->{UI_USER_MERGE_USER_TABLE} || 'userdb';
my $ttabs = $opt->{merge_tables} || $::Variable->{UI_USER_MERGE_TABLES} \
 || 'transactions orderline';

my @ttab = grep /\w/, split /[\s,\0]+/, $ttabs;


SEE ALSO


Name

UPS_CACHE_EXPIRE —

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_CACHE_EXPIRE is available in Interchange versions:

5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: lib/Vend/Ship/QueryUPS.pm
Line 140 (context shows lines 130-144 in calculate():41)

}

my $string = join " AND ", @items;
my $q = qq{SELECT code,cost,updated from $tname WHERE $string};
my $ary = $db->query($q);
#::logDebug("query cache: " . ::uneval($ary));
if($ary and $ary->[0] and $cache_code = $ary->[0][0]) {
  $shipping = $ary->[0][1];
  $updated = $ary->[0][2];
  $now = time();
  if($now - $updated > $Variable->{UPS_CACHE_EXPIRE} || 86000) {
    undef $shipping;
    $updated = $now;
  }
  elsif($shipping <= 0) {

SEE ALSO


Name

UPS_COUNTRY_FIELD

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_COUNTRY_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/ups_query.tag
Line 26 (context shows lines 16-30)

$opt ||= {};
BEGIN {
eval {
  require Business::UPS;
  import Business::UPS;
};
};

$origin    = $::Variable->{UPS_ORIGIN}
      if ! $origin;
$country  = $::Values->{$::Variable->{UPS_COUNTRY_FIELD}}
      if ! $country;
$zip    = $::Values->{$::Variable->{UPS_POSTCODE_FIELD}}
        if ! $zip;


Source: lib/Vend/Ship/QueryUPS.pm
Line 55 (context shows lines 45-59 in calculate():41)

do_error("Ship mode %s: Requires installation of Business::UPS", $mode);
}

$opt->{service}         ||= $opt->{table};
if(! $opt->{service} and $extra =~ /^\w+$/)  {
$opt->{service} = $extra;
}
$opt->{service} ||= $opt->{table} || $mode;

$opt->{origin}      ||= $::Variable->{UPS_ORIGIN};
$opt->{country_field}  ||= $::Variable->{UPS_COUNTRY_FIELD} || 'country';
$opt->{geo}        ||= $::Variable->{UPS_POSTCODE_FIELD} || 'zip';

my $origin  = $opt->{origin};
my $country = $opt->{country} || $::Values->{$opt->{country_field}};

SEE ALSO


Name

UPS_COUNTRY_REMAP — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

# Remap Monaco to France for UPS
Variable UPS_COUNTRY_REMAP   MC=FR

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_COUNTRY_REMAP is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/ups_query.tag
Line 46 (context shows lines 36-50)

elsif(! $modulo) {
$modulo = 9999999;
}

$country = uc $country;

  my %exception;

$exception{UK} = 'GB';

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
  # do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
  my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});

Source: code/UserTag/ups_query.tag
Line 50 (context shows lines 40-54)

$country = uc $country;

my %exception;

$exception{UK} = 'GB';

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
# do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});
Vend::Util::get_option_hash(\%exception, $new);
}
else {
  Vend::Util::hash_string($::Variable->{UPS_COUNTRY_REMAP}, \%exception);

Source: code/UserTag/ups_query.tag
Line 54 (context shows lines 44-58)

$exception{UK} = 'GB';

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
# do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});
Vend::Util::get_option_hash(\%exception, $new);
}
else {
Vend::Util::hash_string($::Variable->{UPS_COUNTRY_REMAP}, \%exception);
}

$country = $exception{$country} if $exception{$country};


Source: lib/Vend/Ship/QueryUPS.pm
Line 79 (context shows lines 69-83 in calculate():41)

$modulo = $::Variable->{UPS_QUERY_MODULO} || 150;
}
elsif(! $modulo) {
$modulo = 9999999;
}

$country = uc $country;

  my %exception = ( UK => 'GB');

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
  # do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
  my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});

Source: lib/Vend/Ship/QueryUPS.pm
Line 83 (context shows lines 73-87 in calculate():41)

}

$country = uc $country;

my %exception = ( UK => 'GB');

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
# do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});
Vend::Util::get_option_hash(\%exception, $new);
}
else {
  Vend::Util::hash_string($::Variable->{UPS_COUNTRY_REMAP}, \%exception);

Source: lib/Vend/Ship/QueryUPS.pm
Line 87 (context shows lines 77-91 in calculate():41)

my %exception = ( UK => 'GB');

if(! $::Variable->{UPS_COUNTRY_REMAP} ) {
# do nothing
}
elsif ($::Variable->{UPS_COUNTRY_REMAP} =~ /=/) {
my $new = Vend::Util::get_option_hash($::Variable->{UPS_COUNTRY_REMAP});
Vend::Util::get_option_hash(\%exception, $new);
}
else {
Vend::Util::hash_string($::Variable->{UPS_COUNTRY_REMAP}, \%exception);
}

$country = $exception{$country} if $exception{$country};


SEE ALSO


Name

UPS_ORIGIN — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

It sets a default value for the shipping origin.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_ORIGIN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/ups_query.tag
Line 24 (context shows lines 14-28)

sub {
 my( $mode, $origin, $zip, $weight, $country, $opt) = @_;
$opt ||= {};
BEGIN {
  eval {
    require Business::UPS;
    import Business::UPS;
  };
};

$origin    = $::Variable->{UPS_ORIGIN}
        if ! $origin;
$country  = $::Values->{$::Variable->{UPS_COUNTRY_FIELD}}
        if ! $country;
$zip    = $::Values->{$::Variable->{UPS_POSTCODE_FIELD}}

Source: lib/Vend/Ship/QueryUPS.pm
Line 54 (context shows lines 44-58 in calculate():41)

unless($Have_Business_UPS) {
  do_error("Ship mode %s: Requires installation of Business::UPS", $mode);
}

$opt->{service}         ||= $opt->{table};
if(! $opt->{service} and $extra =~ /^\w+$/)  {
  $opt->{service} = $extra;
}
$opt->{service} ||= $opt->{table} || $mode;

$opt->{origin}      ||= $::Variable->{UPS_ORIGIN};
$opt->{country_field}  ||= $::Variable->{UPS_COUNTRY_FIELD} || 'country';
$opt->{geo}        ||= $::Variable->{UPS_POSTCODE_FIELD} || 'zip';

my $origin  = $opt->{origin};

SEE ALSO


Name

UPS_POSTCODE_FIELD

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_POSTCODE_FIELD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/ups_query.tag
Line 28 (context shows lines 18-32)

eval {
require Business::UPS;
import Business::UPS;
};
};

$origin    = $::Variable->{UPS_ORIGIN}
    if ! $origin;
$country  = $::Values->{$::Variable->{UPS_COUNTRY_FIELD}}
    if ! $country;
$zip    = $::Values->{$::Variable->{UPS_POSTCODE_FIELD}}
      if ! $zip;

my $modulo = $opt->{aggregate};


Source: lib/Vend/Ship/QueryUPS.pm
Line 56 (context shows lines 46-60 in calculate():41)

}

$opt->{service}         ||= $opt->{table};
if(! $opt->{service} and $extra =~ /^\w+$/)  {
$opt->{service} = $extra;
}
$opt->{service} ||= $opt->{table} || $mode;

$opt->{origin}      ||= $::Variable->{UPS_ORIGIN};
$opt->{country_field}  ||= $::Variable->{UPS_COUNTRY_FIELD} || 'country';
$opt->{geo}        ||= $::Variable->{UPS_POSTCODE_FIELD} || 'zip';

my $origin  = $opt->{origin};
my $country = $opt->{country} || $::Values->{$opt->{country_field}};


SEE ALSO


Name

UPS_QUERY_MODULO — (partly documented)

SYNOPSIS

{ }

DESCRIPTION

If shipping aggregation is used, it allows you to override the weight in which aggregation occurs. If not set, aggregation occurs at 150.

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

UPS_QUERY_MODULO is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/ups_query.tag
Line 34 (context shows lines 24-38)

$origin    = $::Variable->{UPS_ORIGIN}
  if ! $origin;
$country  = $::Values->{$::Variable->{UPS_COUNTRY_FIELD}}
  if ! $country;
$zip    = $::Values->{$::Variable->{UPS_POSTCODE_FIELD}}
    if ! $zip;

my $modulo = $opt->{aggregate};

if($modulo and $modulo < 10) {
  $modulo = $::Variable->{UPS_QUERY_MODULO} || 150;
}
elsif(! $modulo) {
  $modulo = 9999999;
}

Source: lib/Vend/Ship/QueryUPS.pm
Line 69 (context shows lines 59-73 in calculate():41)

my $country = $opt->{country} || $::Values->{$opt->{country_field}};

$country ||= $opt->{default_country} || 'US';

my $zip     = $opt->{zip}    || $::Values->{$opt->{geo}};
$zip ||= $opt->{default_geo};

my $modulo = $opt->{aggregate};

if($modulo and $modulo <= 1) {
  $modulo = $::Variable->{UPS_QUERY_MODULO} || 150;
}
elsif(! $modulo) {
  $modulo = 9999999;
}

Source: lib/Vend/Ship/QueryUPS.pm
Line 268 (context shows lines 258-272 in calculate():41)

value in absence of ZIP. No default -- will return 0 and error if
no zip.

=item default_country

The country code to use if none supplied -- for defaulting shipping to some
value in absence of country. Default US.

=item aggregate

If 1, aggregates by a call to weight=150 (or $Variable->{UPS_QUERY_MODULO}).
Multiplies that times number necessary, then runs a call for the
remainder. In other words:

[ups-query weight=400 mode=GNDCOM aggregate=1]

SEE ALSO


Name

USPS_CONTAINER

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_CONTAINER is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 57 (context shows lines 47-61)

'matter for the blind'     => 1,
'envelope'                 => 1,
);

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';

$service = uc $service;
  if (! $supported_services{$service}) {

SEE ALSO


Name

USPS_ID

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_ID is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 54 (context shows lines 44-58)

my %mailtypes = (
 'package'                  => 1,
 'postcards or aerogrammes' => 1,
 'matter for the blind'     => 1,
 'envelope'                 => 1,
 );

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
   my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';

SEE ALSO


Name

USPS_MACHINABLE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_MACHINABLE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 58 (context shows lines 48-62)

'envelope'                 => 1,
);

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';

$service = uc $service;
if (! $supported_services{$service}) {
$error_msg .= "unknown service type $service.";

SEE ALSO


Name

USPS_MAILTYPE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_MAILTYPE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 79 (context shows lines 69-83)

return;
}

  if ($service eq 'PARCEL') {
if ($weight < .375 or $weight > 35) {
    $machinable = 'False';
}
  }

  if ($opt->{country}) {
$mailtype = lc ($opt->{mailtype} || $::Variable->{USPS_MAILTYPE} || 'package');
unless ($mailtypes{$mailtype}) {
    $error_msg = "unknown mail type '$mailtype'.";
    return;
}

SEE ALSO


Name

USPS_MODULO

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_MODULO is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 86 (context shows lines 76-90)

}

if ($opt->{country}) {
$mailtype = lc ($opt->{mailtype} || $::Variable->{USPS_MAILTYPE} || 'package');
unless ($mailtypes{$mailtype}) {
  $error_msg = "unknown mail type '$mailtype'.";
  return;
}
  }

  my $modulo = $opt->{modulo} || $::Variable->{USPS_MODULO};
  if ($modulo and ($modulo < $weight)) {
$m_rep = int $weight / $modulo;
$m_mod = $weight % $modulo;
$weight = $modulo;

SEE ALSO


Name

USPS_ORIGIN

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_ORIGIN is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 52 (context shows lines 42-56)

   'OVERSIZE' => 1,
   );
my %mailtypes = (
     'package'                  => 1,
     'postcards or aerogrammes' => 1,
     'matter for the blind'     => 1,
     'envelope'                 => 1,
     );

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';

SEE ALSO


Name

USPS_PASSWORD

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_PASSWORD is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 55 (context shows lines 45-59)

'package'                  => 1,
'postcards or aerogrammes' => 1,
'matter for the blind'     => 1,
'envelope'                 => 1,
);

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
  my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';


SEE ALSO


Name

USPS_SIZE

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_SIZE is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 66 (context shows lines 56-70)

my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';

$service = uc $service;
if (! $supported_services{$service}) {
$error_msg .= "unknown service type $service.";
return;
  }

  my $size = uc ($opt->{size} || $::Variable->{USPS_SIZE} || 'REGULAR');
  if (! $package_sizes{$size}) {
$error_msg .= "unknown package size $size.";
return;
}

SEE ALSO


Name

USPS_URL

SYNOPSIS

DESCRIPTION

VARIABLE TYPE

Catalog variable

EXAMPLES

No examples are available at this time. We do consider this a problem and will try to supply some.

NOTES

AVAILABILITY

USPS_URL is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/usps_query.tag
Line 56 (context shows lines 46-60)

'postcards or aerogrammes' => 1,
'matter for the blind'     => 1,
'envelope'                 => 1,
);

my $error_msg = 'USPS: ';
my $origin = $opt->{origin} || $::Variable->{USPS_ORIGIN} || $::Variable->{UPS_ORIGIN};
my $destination = $opt->{destination} || $::Values->{zip} || $::Variable->{SHIP_DEFAULT_ZIP};
my $userid = $opt->{userid} || $::Variable->{USPS_ID};
my $passwd = $opt->{passwd} || $::Variable->{USPS_PASSWORD};
my $url = $opt->{url} || $::Variable->{USPS_URL} || 'http://Production.ShippingAPIs.com/ShippingAPI.dll';
my $container = $opt->{container} || $::Variable->{USPS_CONTAINER} || 'None';
my $machinable = $opt->{machinable} || $::Variable->{USPS_MACHINABLE} || 'False';

  $service = uc $service;

SEE ALSO


Name

VISIT_TIMEOUT — time after which user request is treated as new visit

SYNOPSIS

{ seconds }

DESCRIPTION

This variable specifies the minimal time required between two user requests, for the next request to be treated as the beginning of a new user visit (and not as part of the current series of requests).

VARIABLE TYPE

Catalog variable

EXAMPLES

Example: Setting VISIT_TIMEOUT

Variable VISIT_TIMEOUT 600

NOTES

AVAILABILITY

VISIT_TIMEOUT is available in Interchange versions:

4.6.0-5.7.0 (git-head)

SOURCE

Interchange 5.7.0:

Source: code/UI_Tag/traffic_report.coretag
Line 101 (context shows lines 91-105)

   05 May
   06 June
   07 July
   08 August
   09 September
   10 October
   11 November
   12 December
/;

  my $timeout = $::Variable->{VISIT_TIMEOUT} || (30 * 10);

my $by_day = $opt->{by_day} || $CGI::values{ui_by_day};
my $len;
$len = $by_day ? 8 : 6;

SEE ALSO

DocBook!Interchange!