%perl>;
$m->comp('/widgets/wrappers/sharky/table_top.mc', caption => 'Current Category' );
$m->comp('/widgets/listManager/listManager.mc',
object => 'category',
userSort => 0,
def_sort_field => 'uri',
title => 'Current Category',
objs => [ $category ],
profile => undef,
fields => [qw(uri site name)],
select => '',
addition => '',
);
$m->comp('/widgets/profile/hidden.mc',
name => 'category_id',
value => $existing_category);
$m->comp('/widgets/wrappers/sharky/table_bottom.mc');
%perl>
<& /widgets/search/search.mc,
object => 'category',
field => 'uri',
type => 'singular',
use_form_tag => 0
&>
<& '/widgets/wrappers/sharky/table_top.mc', caption => 'Choose Categories' &>
<& /widgets/listManager/listManager.mc,
object => 'category',
title => 'Choose Categories',
select => undef,
profile => $category_profile,
exclude => $exclude_cats,
fields => [qw(uri site name)],
addition => '',
behavior => 'expand',
&>
<& '/widgets/wrappers/sharky/table_bottom.mc' &>
<%args>
$widget
%args>
<%init>
my $media = get_state_data($widget, 'media');
my $category = $media->get_category;
my $existing_category = $category->get_id;
my $exclude_cats = sub {
my $cat = shift;
# exclude unauthorized categories
return 1 unless chk_authz($cat, READ, 1);
# exclude already-associated category
return 1 if $cat->get_id == $existing_category;
return 0;
};
%init>
<%once>
my $category_profile = sub {
my ($o,$flags) = @_;
unless ($flags->{'featured'}) {
return ['Associate', $r->uri, "media_prof|assoc_category_cb=".$o->get_id];
} else {
return ['Un-Associate', $r->uri, "media_prof|unassoc_category_cb=".$o->get_id];
}
};
%once>