# package CustomFields::Util, line 212
# Populate where the fields are in @pre_sort
for (my $i = 0; $i < scalar @pre_sort; $i++) {
my $basename = $pre_sort[$i]->{basename};
$markers{$basename} = $i;
}
if($app->user) {
my $author_id = $app->user->id;
require MT::PluginData;
my $plugindata = MT::PluginData->get_by_key({ plugin => 'CustomFields', key => "field_order_$author_id" });
my $data = $plugindata->data || {};
$data->{$blog_id} ||= {};
my $order = $data->{$blog_id}->{$obj_type};
if($order) {
# Break up order and populate @post_sort from the markers
foreach my $basename (split ',', $order) {
my $i = $markers{$basename};
next if !defined($i);
push @post_sort, $pre_sort[$i];
}
# Now we add any fields that weren't in our order
# For example if someone set the order and then added fields
foreach my $basename (keys %markers) {
my $found = index $order, $basename;
next unless $found == -1;
my $i = $markers{$basename};
push @post_sort, $pre_sort[$i];
}
return \@post_sort;
}
}
return \@pre_sort;