Update of /cvsroot/openinteract/OpenInteract2/pkg/object_tags/OpenInteract2/Action
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30046/object_tags/OpenInteract2/Action
Added Files:
ObjectTags.pm
Log Message:
OIN-37: migrate delicious_tags package to core
--- NEW FILE: ObjectTags.pm ---
package OpenInteract2::Action::ObjectTags;
# $Id: ObjectTags.pm,v 1.1 2005/03/29 05:10:37 lachoy Exp $
use strict;
use base qw( OpenInteract2::Action );
use Log::Log4perl qw( get_logger );
use OpenInteract2::Constants qw( :log );
use OpenInteract2::Context qw( CTX );
use OpenInteract2::TaggableObject;
$OpenInteract2::Action::ObjectTags::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/);
sub all_tags {
my ( $self ) = @_;
my $tag_class = CTX->lookup_object( 'object_tag' );
my $tags = $tag_class->fetch_all_tags_with_count();
return $self->generate_content({ tag_and_count => $tags });
}
sub related_tags {
my ( $self ) = @_;
my $object = $self->param( 'object' ) || $self->param( 'c_object' );
my %params = ();
if ( $object ) {
my $type = $object->CONFIG->{object_name};
my $id = $object->id;
my $related_with_count = OpenInteract2::TaggableObject
->fetch_my_tags_with_count( $type, $id );
%params = (
object => $object,
tag_and_count => $related_with_count,
);
}
return $self->generate_content( \%params );
}
sub tagged_objects {
my ( $self ) = @_;
return $self->generate_content( $self->_generate_tagged_objects_params );
}
sub show_tagged_objects {
my ( $self ) = @_;
return $self->generate_content( $self->_generate_tagged_objects_params );
}
sub _generate_tagged_objects_params {
my ( $self ) = @_;
my $request = CTX->request;
my $tag = $self->param( 'tag' ) || $request->param( 'tag' );
my %params = ( tag => $tag );
if ( $tag ) {
my $tag_class = CTX->lookup_object( 'object_tag' );
my $object_refs = $tag_class->fetch_group({
where => 'tag = ?',
value => [ $tag ],
});
$params{tag_info} = $object_refs;
}
else {
$self->param_add(
error_msg => $self->_msg( 'tags.error.related_objects_no_tag' ) );
}
return \%params;
}
1;
|