Name

meta-record —

ATTRIBUTES

Attribute Pos. Req. Default Description
interpolate     0 interpolate output?
hide     0 Hide the tag return value?

DESCRIPTION

BEHAVIOR

This tag does not appear to be affected by, or affect, the rest of Interchange.

EXAMPLES

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

NOTES

AVAILABILITY

meta-record is available in Interchange versions:

4.6.0-5.9.0 (git-head)

SOURCE

Interchange 5.9.0:

Source: code/UI_Tag/meta_record.coretag
Lines: 13


# Copyright 2002-2007 Interchange Development Group and others
# 
# This program is free software; you can redistribute it and/or modify
# 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.
# 
# $Id: meta_record.coretag,v 1.5 2007-03-30 23:40:54 pajamian Exp $

UserTag meta-record Order      item view source
UserTag meta-record attrAlias  table item
UserTag meta-record Version    $Revision: 1.5 $
UserTag meta-record MapRoutine Vend::Table::Editor::meta_record

Source: lib/Vend/Table/Editor.pm
Lines: 720

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;
}
#::logDebug("meta_record has an item=$item and mdb=$mdb");

my $record;

my $mkey = $view ? "${view}::$item" : $item;

if( ref ($mdb) eq 'HASH') {
  $record = $mdb;
}
else {
  $record = $mdb->row_hash($mkey);
#::logDebug("used mkey=$mkey to select record=$record");
}

$record ||= $mdb->row_hash($item) if $view and $mdb;
#::logDebug("meta_record  record=$record");

return undef if ! $record;

# Get additional settings from extended field, which is a serialized
# hash
my $hash;
if(! $record->{extended}) {
    return undef if $extended_only;
}
else {
  ## From Vend::Util
  $hash = get_option_hash($record->{extended});
  $record = {} if $extended_only;
  if(ref $hash eq 'HASH') {
    @$record{keys %$hash} = values %$hash;
  }
  else {
    undef $hash;
    return undef if $extended_only;
  }
}

# Allow view settings to be placed in the extended area
if($view and $hash and $hash->{view}) {
  my $view_hash = $record->{view}{$view};
  ref $view_hash
    and @$record{keys %$view_hash} = values %$view_hash;
}

# Allow overlay of certain settings
if($overlay and $record->{overlay}) {
  my $ol_hash = $record->{overlay}{$overlay};
  Vend::Util::copyref($ol_hash, $record) if $ol_hash;
}
#::logDebug("return meta_record=" . ::uneval($record) );
return $record;
}

AUTHORS

Interchange Development Group

SEE ALSO

DocBook! Interchange!