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 (cvs-head)

SOURCE

Interchange 5.7.0:

Source: code/UserTag/css.tag
Line 36 (context shows lines 26-40)

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\]([\000-\377]*)\[/selected]::i;
my $alt = $1;
return $html if $page ne $current;

Source: code/UserTag/forum.tag
Line 134 (context shows lines 124-138)

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 724 (context shows lines 714-728 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 879 (context shows lines 869-883 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 (rev. 2.309 from Mon Nov 17 00:01:20 2008)
Line 3243 (context shows lines 3233-3247 in tag_more_list():3209)



$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 (rev. 2.309 from Mon Nov 17 00:01:20 2008)
Line 4774 (context shows lines 4764-4778 in tag_loop_list():4767)

  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 (rev. 2.309 from Mon Nov 17 00:01:20 2008)
Line 5233 (context shows lines 5223-5237 in timed_build():5166)

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 (rev. 2.309 from Mon Nov 17 00:01:20 2008)
Line 5242 (context shows lines 5232-5246 in timed_build():5166)

$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 (rev. 2.76 from Sun May 11 00:01:19 2008)
Line 322 (context shows lines 312-326 in links():305)

$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 (rev. 2.120 from Sat Sep 27 00:01:21 2008)
Line 1106 (context shows lines 1096-1110 in readin():1090)

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 (rev. 2.120 from Sat Sep 27 00:01:21 2008)
Line 1290 (context shows lines 1280-1294 in vendUrl():1234)

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

if($opt->{no_session}) {
  undef $id;
  undef $ct;
}

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


AUTHORS

Interchange Development Group

SEE ALSO

MV_PREV_PAGE(7ic)

DocBook! Interchange!