PowerEdit プラグインで概要を適正に表示する
昨日公開した PowerEdit プラグインでは概要フィールドを表示していませんでしたが、概要フィールドを適正に表示する方法を紹介します。
PowerEdit プラグインで概要を表示していない理由は、一括編集画面表示時には概要フィールドの内容は、その手前の一覧画面の詳細表示用に最適化(一覧に概要を表示するため、概要フィールドが空の場合、本文の内容を抜粋)してしまっており、CMSContext プラグインで MTExcerpt タグに no_generate モディファイアを適用しても加工後のデータしか取得できません(下)。この状態で保存を行うと、概要フィールドに余分な内容が保存されてしまいます(赤枠部分)。
したがって、ソースコードを修正して、概要フィールドが空のときは何も表示しないようにします(下)。
ただし、この修正を行うと、ブログ記事一覧表示の詳細モードの表示で概要フィールドが空の場合は表示されなくなります。
もう少しエレガントな修正方法があるかもしれませんがとりあえず。
1.パッチをあてる
lib/MT/CMS/Entry.pm に以下のパッチを適用します。
--- Entry.pm.bak Fri Nov 14 01:55:15 2008
+++ Entry.pm Fri Nov 14 01:56:03 2008
@@ -1843,13 +1843,6 @@
if ( $row->{excerpt} ) {
$row->{excerpt} = remove_html( $row->{excerpt} );
}
- if ( !$row->{excerpt} ) {
- my $text = remove_html( $row->{text} ) || '';
- $row->{excerpt} = first_n_text( $text, $excerpt_max_len );
- if ( length($text) > length( $row->{excerpt} ) ) {
- $row->{excerpt} .= ' ...';
- }
- }
$row->{text} = break_up_text( $row->{text}, $text_max_len )
if $row->{text};
$row->{title_long} = remove_html( $obj->title );
パッチの適用方法が分からない場合は、lib/MT/CMS/Entry.pm を任意のエディタで開いて、下記の赤色部分をコメントアウトしてください。
変更前
...前略...
if ( $row->{excerpt} ) {
$row->{excerpt} = remove_html( $row->{excerpt} );
}
if ( !$row->{excerpt} ) {
my $text = remove_html( $row->{text} ) || '';
$row->{excerpt} = first_n_text( $text, $excerpt_max_len );
if ( length($text) > length( $row->{excerpt} ) ) {
$row->{excerpt} .= ' ...';
}
}
$row->{text} = break_up_text( $row->{text}, $text_max_len )
if $row->{text};
...後略...
変更後
...前略...
if ( $row->{excerpt} ) {
$row->{excerpt} = remove_html( $row->{excerpt} );
}
<span class="attn"># if ( !$row->{excerpt} ) {
# my $text = remove_html( $row->{text} ) || '';
# $row->{excerpt} = first_n_text( $text, $excerpt_max_len );
# if ( length($text) > length( $row->{excerpt} ) ) {
# $row->{excerpt} .= ' ...';
# }
# }</span>
$row->{text} = break_up_text( $row->{text}, $text_max_len )
if $row->{text};
...後略...
2.entry_table.tmpl を編集する
「4.代替テンプレートの設定」でダウンロードした alt-tmpl.zip の中にある entry_table.tmpl を任意のエディタで開き、下記の赤色部分を削除します。
...前略...
<mt:ignore>
<tr>
<th><__trans phrase="Excerpt"></th>
<td colspan="9"><textarea style="width:760px" type="text" name="excerpt_<$mt:var name="id"$>"><mt:entryExcerpt convert_breaks="0" no_generate="1" escape="html" /></textarea>
</tr>
</mt:ignore>
...後略...
プラグインの修正
PowerEdit.pl を任意のエディタで開き、赤色のコメントアウトマークを削除します。
...前略...
if ($q->param('text_more_' . $id )) {
$entry->text_more($q->param('text_more_' . $id ));
}
# if ($q->param('excerpt_' . $id )) {
# $entry->excerpt($q->param('excerpt_' . $id ));
# }
if ($q->param('keywords_' . $id )) {
$entry->keywords($q->param('keywords_' . $id ));
}
...後略...
これでブログ記事一括編集画面に概要フィールドが表示され、正常に変更できるようになります。
Posted by yujiro このページの先頭に戻る
- MovableTypeで削除したコンテンツデータや記事を復元できる「Trashプラグイン」
- Movable Typeのデータ更新を抑止する「DataUpdateSuppressorプラグイン」
- Movable Typeのウェブサイト管理者にブログ作成権限を与える「CreateBlogPermissionプラグイン」
- Movable Typeでダッシュボードのサイト情報期間を変更できる「SiteStatsTermChangerプラグイン」
- Movable Typeの管理画面のtitle要素を変更する「TitleChangerプラグイン」
- Movable Type管理画面のセッションタイムアウトを延長する「SessionTimeoutExtenderプラグイン」
- Movable Type管理画面で左右のメニューを非表示にする「MenuHiddenerプラグイン」
- Movable Typeのテンプレート編集画面でシンタックスハイライトを無効にする「InvalidateCodeMirrorプラグイン」バージョンアップ(v0.12)
- Movable Typeでログイン後の管理画面を変更する「ScreenChangerプラグイン」
- Movable Typeのテーマにウェブページを利用できる「PageImExporterプラグイン」バージョンアップ(カスタムフィールド対応)
- Movable Typeのテンプレート編集画面でシンタックスハイライトを無効にする「InvalidateCodeMirrorプラグイン」バージョンアップ(v0.11)
- Movable Typeの記事一覧画面にアイテムを表示する「EntryAssetListingプラグイン」バージョンアップ
- Movable Typeのテーマにブログ記事を利用できる「EntryImExporterプラグイン」バージョンアップ(カスタムフィールド対応)
- Movable Typeのテーマにブログ記事を利用できる「EntryImExporterプラグイン」バージョンアップ
- Movable Typeでアイテムアップロード時にリサイズ可能な「UploadImageResizerプラグイン」バージョンアップ
トラックバックURL
コメントする
greeting