App-Office-CMS
view release on metacpan or search on metacpan
lib/App/Office/CMS/Database/Design.pm view on Meta::CPAN
my($time) = strftime('%Y-%m-%d %X', @time);
my(@field) = (qw/
menu_orientation_id
name
os_type_id
output_directory
output_doc_root
site_id
/);
my($data) = {};
for (@field)
{
$$data{$_} = $$design{$_};
}
# Set this no matter whether we're adding or updating.
$$data{upper_name} = uc $$data{name};
if ($context eq 'add')
{
$$design{id} = $self -> db -> insert_hash_get_id($table_name, $data);
}
else
{
$self -> db -> simple -> update($table_name, $data, {id => $$design{id} });
}
$self -> log(debug => "Saved ($context) design '$$design{name}' with id $$design{id}");
} # End of save_design_record.
# --------------------------------------------------
sub search
{
my($self, $name, $result) = @_;
$self -> log(debug => "search($name)");
my($design_set) = $self -> get_designs_by_approx_name($name);
$self -> log(debug => "Design match count: " . scalar @$design_set);
my($site);
for my $design (@$design_set)
{
$site = $self -> db -> site -> get_site_by_id($$design{site_id});
$self -> build_search_result('Design', $result, $site, $design);
}
return $result;
} # End of search.
# --------------------------------------------------
sub update
{
my($self, $design) = @_;
$self -> log(debug => "update($$design{name})");
$self -> log(debug => '-' x 50);
$self -> log(debug => "Site: $_ => $$design{$_}") for sort keys %$design;
$self -> log(debug => '-' x 50);
my($action) = $$design{exact_match} ? 'update' : 'add';
$self -> save_design_record($action, $design);
if ($action eq 'add')
{
$self -> db -> session -> param(edit_design_id => $$design{id});
}
return ucfirst "$action design '$$design{name}'";
} # End of update.
# --------------------------------------------------
1;
( run in 0.807 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )