Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (53 sloc) 1.57 KB
# 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.
UserTag db_columns Order name columns joiner passed_order
UserTag db_columns AttrAlias table name
UserTag db_columns AttrAlias fields columns
UserTag db_columns Version 1.5
UserTag db_columns Routine <<EOR
sub {
my ($table,$columns, $joiner, $passed_order) = @_;
$table = $Values->{mv_data_table}
unless $table;
my $db = Vend::Data::database_exists_ref($table)
or return undef;
my $acl = UI::Primitive::get_ui_table_acl($table);
$db = $db->ref() unless $Vend::Interpolate::Db{$table};
my $key = $db->config('KEY');
$joiner = "\n" unless defined $joiner;
my @cols;
if(! $columns || $columns =~ /^[\s,\0]*$/) {
@cols = $db->columns();
}
else {
@cols = grep /\S/, split /[\s,\0]+/, $columns;
my (@allcols) = $db->columns();
my %col;
if($passed_order) {
@col{@allcols} = @allcols;
@allcols = @cols;
my $found;
for(@cols) {
next unless $_ eq $key;
$found = 1;
last;
}
unshift (@allcols, $key) if ! $found;
}
else {
@col{@cols} = @cols;
}
$col{$key} = $key if ! defined $col{$key};
@cols = grep defined $col{$_}, @cols;
}
if($acl) {
@cols = UI::Primitive::ui_acl_grep( $acl, 'fields', @cols);
}
return @cols if wantarray;
return join $joiner, @cols;
}
EOR
You can’t perform that action at this time.