Changeset 432
- Timestamp:
- 09/20/07 02:49:25 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
HatenaBookmarker/trunk/HatenaBookmarker/HatenaBookmarker.pl
r431 r432 28 28 settings => new MT::PluginSettings([ 29 29 ['hatena_username', { Default => '' }], 30 ['hatena_password', { Default => '' }] 30 ['hatena_password', { Default => '' }], 31 ['hatena_bm_title', { Default => q(<$MTBlogName encode_html="1"$>: <$MTEntryTitle encode_html="1"$>) }], 31 32 ]) 32 33 }); … … 104 105 my $entry = $class->load($entry_id) 105 106 or return $app->error($plugin->translate('Invalid entry_id')); 106 bookmark_entry($app, $entry) 107 if $entry->status == MT::Entry::RELEASE(); 107 if ($entry->status == MT::Entry::RELEASE()) { 108 MT::Util::start_background_task( 109 sub { bookmark_entry($app, $entry) } 110 ); 111 } 108 112 } 109 113 $app->call_return; … … 153 157 my $saved_title = $bookmark->title; 154 158 my $saved_summary = extract_summary($bookmark); 155 my $title = $entry->blog->name . ': ' . $entry->title;159 my $title = format_bm_title($config->{hatena_bm_title}, $entry); 156 160 my $summary = tags2summary($entry) || keywords2summary($entry->keywords) || ''; 157 161 … … 190 194 } 191 195 196 # format bookmark title 197 use MT::Template::Context; 198 use MT::Builder; 199 sub format_bm_title { 200 my ($format, $entry) = @_; 201 my $ctx = MT::Template::Context->new; 202 $ctx->stash('entry', $entry); 203 $ctx->stash('blog' , $entry->blog); 204 my $builder = MT::Builder->new; 205 my $tokens = $builder->compile($ctx, $format) 206 or return $ctx->error($builder->errstr); 207 defined(my $title = $builder->build($ctx, $tokens)) 208 or return $ctx->error($builder->errstr); 209 210 $title; 211 } 212 192 213 # extract summary text from a hatena entry 193 214 sub extract_summary { 194 my ($entry) = @_;215 my $entry = shift; 195 216 my $summary = ''; 196 my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');197 for my $subject ($entry->getlist($dc , 'subject')) {217 my $dc_ns = 'http://purl.org/dc/elements/1.1/'; 218 for my $subject ($entry->getlist($dc_ns, 'subject')) { 198 219 $summary .= '[' . $subject . ']'; 199 220 } … … 203 224 # convert MT keywords to summary text 204 225 sub keywords2summary { 205 my ($str) = @_;226 my $str = shift; 206 227 return '' unless $str; 207 228 $str =~ s/\#.*$//g; HatenaBookmarker/trunk/HatenaBookmarker/lib/HatenaBookmarker/L10N/ja.pm
r431 r432 14 14 'Hatena Username' => 'はてなIDのユーザ名', 15 15 'Hatena Password' => 'はてなIDのパスワード', 16 'Bookmark Title Format' => 'ブックマークのタイトルの形式', 16 17 'Bookmark Entries' => 'ブログ記事のブックマーク', 17 18 'Are you sure you want to bookmark the selected entries?' => '選択したブログ記事をブックマークしてよろしいですか?', 18 19 'Bookmark Pages' => 'ウェブページのブックマーク', 19 'Are you sure you want to bookmark the selected entries?' => '選択したウェブページをブックマークしてよろしいですか?',20 'Are you sure you want to bookmark the selected pages?' => '選択したウェブページをブックマークしてよろしいですか?', 20 21 ); 21 22 HatenaBookmarker/trunk/HatenaBookmarker/tmpl/config.tmpl
r430 r432 9 9 <input type="password" name="hatena_password" id="hatena_password" size="20" value="<TMPL_VAR NAME=HATENA_PASSWORD ESCAPE=HTML>" /> 10 10 </mtapp:setting> 11 <mtapp:setting 12 id="hatena_bm_title" 13 label="<__trans phrase="Bookmark Title Format">"> 14 <input name="hatena_bm_title" id="hatena_bm_title" size="50" value="<TMPL_VAR NAME=HATENA_BM_TITLE ESCAPE=HTML>" /> 15 </mtapp:setting>
