Changeset 22
- Timestamp:
- 04/06/05 20:25:07 (4 years ago)
- Files:
-
- 1 modified
-
all-keywords/trunk/all-keywords.pl (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
all-keywords/trunk/all-keywords.pl
r20 r22 1 1 # A plugin for adding keywords-handling tags 2 2 # 3 # Release 0.1 1 (Mar 20, 2005)3 # Release 0.12 (Mar 23, 2005) 4 4 # 5 5 # This software is provided as-is. You may use it for commercial or … … 15 15 require MT::Plugin; 16 16 my $plugin = new MT::Plugin(); 17 $plugin->name("AllKeywords Plugin 0.1 1");17 $plugin->name("AllKeywords Plugin 0.12"); 18 18 $plugin->description("Add MTAllKeywords tags for listing blog-wide keywords and entry keywords"); 19 19 $plugin->doc_link("http://as-is.net/hacks/2005/03/allkeywords_plugin.html"); … … 30 30 MT::Template::Context->add_container_tag('MostRelatedEntries' => \&most_related_entries); 31 31 32 sub split_keywords { 33 my ($string, $delimiter, $case_sensitive) = @_; 34 return unless $string; 35 my @keywords; 36 $string =~ s/^\s+//; 37 $string =~ s/\s+$//; 38 $string = lc $string unless $case_sensitive; 39 return $delimiter ? 40 map { s/^\s+//; s/\s+$//; $_ } split($delimiter, $string) : 41 split(/\s+/, $string); 42 } 43 32 44 sub all_keywords { 33 45 my ($ctx, $args, $cond) = @_; … … 51 63 while (my $e = $iter->()) { 52 64 next unless $e->keywords; 53 my $e_keywords = $case_sensitive ? $e->keywords : lc $e->keywords; 54 my @keywords = $delimiter ? 55 split($delimiter, $e_keywords) : split(/\s+/, $e_keywords); 65 my @keywords = split_keywords($e->keywords, $delimiter, $case_sensitive); 56 66 foreach my $keyword (@keywords) { 57 67 if (exists($all_keywords{$keyword})) { … … 109 119 my $case_sensitive = $args->{case_sensitive} || 1; 110 120 111 my $e_keywords = $case_sensitive ? $e->keywords : lc $e->keywords; 112 my @keywords = $delimiter ? 113 split($delimiter, $e_keywords) : split(/\s+/, $e_keywords); 121 my @keywords = split_keywords($e->keywords, $delimiter, $case_sensitive); 114 122 my $res = ''; 115 123 my $builder = $ctx->stash('builder'); … … 167 175 direction => $sort_order }); 168 176 my @entries; 169 $keywords = lc $keywords unless $case_sensitive; 170 my @patterns = $delimiter ? 171 split($delimiter, $keywords) : split(/\s+/, $keywords); 177 my @patterns = split_keywords($keywords, $delimiter, $case_sensitive); 172 178 my $i = 0; 173 179 while (my $e = $iter->()) { 174 180 last if $lastn && $i >= $lastn; 175 181 next unless $e->keywords; 176 my $e_keywords = $case_sensitive ? $e->keywords : lc $e->keywords; 177 my @keywords = $delimiter ? 178 split($delimiter, $e_keywords) : split(/\s+/, $e_keywords); 182 my @keywords = split_keywords($e->keywords, $delimiter, $case_sensitive); 179 183 my $check = 1; 180 184 foreach my $pattern (@patterns) { … … 228 232 my $lastn = $args->{lastn} || 0; 229 233 230 my $entry_keywords = $case_sensitive ? $entry->keywords : lc $entry->keywords; 231 my @patterns = $delimiter ? 232 split($delimiter, $entry_keywords) : split(/\s+/, $entry_keywords); 234 my @patterns = split_keywords($entry->keywords, $delimiter, $case_sensitive); 233 235 234 236 my $blog_id = $ctx->stash('blog_id'); … … 243 245 next unless $e->keywords; 244 246 next if $e->id == $entry->id; 245 my $e_keywords = $case_sensitive ? $e->keywords : lc $e->keywords; 246 my @keywords = $delimiter ? 247 split($delimiter, $e_keywords) : split(/\s+/, $e_keywords); 247 my @keywords = split_keywords($e->keywords, $delimiter, $case_sensitive); 248 248 my $count = 0; 249 249 foreach my $pattern (@patterns) {
![(please configure the [header_logo] section in trac.ini)](/public/chrome/common/trac_banner.png)