Line # Revision Author
1 480 ahitrov package tag::Tag;
2
3 use base 'Contenido::Document';
4 use Contenido::Globals;
5
6 sub extra_properties
7 {
8 return (
9 { 'attr' => 'name', 'rusname' => 'Название тега', shortname => 'Тег' },
10 )
11 }
12
13
14 sub class_name
15 {
16 return 'Тег';
17 }
18
19 sub class_description
20 {
21 return 'Тег';
22 }
23
24 sub class_table
25 {
26 return 'tag::SQL::TagsTable';
27 }
28
29 sub search_fields {
30 return ('name');
31 }
32
33 sub pre_store
34 {
35 my $self = shift;
36
37 482 ahitrov for ( $self->{name} ) {
38 s/^\s+//;
39 s/\s+$//;
40 }
41
42 550 ahitrov if ( !$self->sections && ref $project->s_alias eq 'HASH' && exists $project->s_alias->{tags} ) {
43 549 ahitrov my $default_section = $project->s_alias->{tags};
44 $self->sections( $default_section ) if $default_section;
45 }
46 480 ahitrov
47 return 1;
48 }
49
50 sub post_delete
51 {
52 my $self = shift;
53
54 my $links = $self->keeper->get_links(
55 class => 'tag::Cloud',
56 source_id => $self->id,
57 return_mode => 'array_ref',
58 );
59 if ( ref $links eq 'ARRAY' && @$links ) {
60 foreach my $link ( @$links ) {
61 $link->delete;
62 }
63 }
64 }
65
66 1;