meta-record —
| Attribute | Pos. | Req. | Default | Description |
|---|---|---|---|---|
| interpolate | 0 | interpolate output? | ||
| hide | 0 | Hide the tag return value? |
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;
}