| blib/lib/WebEditor/OldFeatures/KeyDB.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 9 | 35 | 25.7 |
| branch | 0 | 6 | 0.0 |
| condition | 0 | 3 | 0.0 |
| subroutine | 3 | 5 | 60.0 |
| pod | 0 | 1 | 0.0 |
| total | 12 | 50 | 24.0 |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package WebEditor::OldFeatures::KeyDB; | ||||||
| 2 | |||||||
| 3 | 1 | 1 | 1073 | use strict; | |||
| 1 | 2 | ||||||
| 1 | 34 | ||||||
| 4 | 1 | 1 | 6 | use vars qw($VERSION); | |||
| 1 | 1 | ||||||
| 1 | 60 | ||||||
| 5 | $VERSION = sprintf("%d.%02d", q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/); | ||||||
| 6 | |||||||
| 7 | 1 | 1 | 6 | use WE::Util::LangString qw(langstring); | |||
| 1 | 1 | ||||||
| 1 | 415 | ||||||
| 8 | |||||||
| 9 | ###################################################################### | ||||||
| 10 | # | ||||||
| 11 | # updating keyword database | ||||||
| 12 | # | ||||||
| 13 | sub updatekeydb { | ||||||
| 14 | 0 | 0 | 0 | my $self = shift; | |||
| 15 | |||||||
| 16 | 0 | my $root = $self->Root; | |||||
| 17 | 0 | my $objdb = $root->ObjDB; | |||||
| 18 | 0 | my $c = $self->C; | |||||
| 19 | |||||||
| 20 | 0 | my ($folder_id) = 0; | |||||
| 21 | 0 | my %keywords; | |||||
| 22 | my %id2title; | ||||||
| 23 | |||||||
| 24 | 0 | foreach my $lang (@{ $c->project->sitelanguages }) { | |||||
| 0 | |||||||
| 25 | # "Walk" through every object | ||||||
| 26 | $objdb->walk($folder_id, sub { | ||||||
| 27 | 0 | 0 | my ($id) = @_; | ||||
| 28 | 0 | my $obj = $objdb->get_object($id); | |||||
| 29 | # Check if object is released | ||||||
| 30 | #print " $id : "; |
||||||
| 31 | 0 | 0 | 0 | if ($obj->Release_State eq 'released' && $obj->Keywords) { | |||
| 32 | #print "ok"; | ||||||
| 33 | #warn $obj->Id; | ||||||
| 34 | 0 | foreach my $word ( split(/,/, langstring($obj->Keywords, $lang) ) ) { | |||||
| 35 | #nur als Kleinbuchstaben speichern | ||||||
| 36 | 0 | $keywords{lc($word)} .= $obj->Id.","; | |||||
| 37 | 0 | my $title = $obj->Title->{$lang}; | |||||
| 38 | 0 | 0 | if ($root->can("get_section")) { | ||||
| 39 | 0 | $title .= "|".$root->get_section($obj->Id); | |||||
| 40 | } | ||||||
| 41 | 0 | $id2title{$obj->Id} = $title; | |||||
| 42 | #print $word." " if ($debug); | ||||||
| 43 | } | ||||||
| 44 | } | ||||||
| 45 | 0 | }); | |||||
| 46 | |||||||
| 47 | # Write keywords to file | ||||||
| 48 | 0 | my $file = $c->paths->pubhtmldir."/html/keywords_".$lang.".dat"; | |||||
| 49 | 0 | 0 | open (SEARCH, ">$file") | ||||
| 50 | or error( "can't writeopen keyworddb $file"); | ||||||
| 51 | 0 | foreach my $key (sort keys %keywords) { | |||||
| 52 | 0 | print SEARCH "$key|".$keywords{$key}."\n"; | |||||
| 53 | } | ||||||
| 54 | 0 | print SEARCH ">>> Id to title\n"; | |||||
| 55 | 0 | foreach my $id (sort keys %id2title) { | |||||
| 56 | 0 | print SEARCH "$id=".$id2title{$id}."\n"; | |||||
| 57 | } | ||||||
| 58 | 0 | close SEARCH; | |||||
| 59 | #print " Keywords-Datei $file gespichert.\n"; |
||||||
| 60 | |||||||
| 61 | } | ||||||
| 62 | } | ||||||
| 63 | |||||||
| 64 | 1; |