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 )