診断士の経営視点とSEのシステム技術の両面からIT・システム開発・Web技術+アウトドア情報を提供しています

トップブログでつくるビジネスサイト無料ブログでここまでできるCMSでつくるビジネスサイトウェブ講座&SEOシステム開発個人情報保護Googleでお仕事信州撮っておき情報








スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[--------] スポンサー広告 | |

MT なぜ保存ボタンは問題ないのに確認ボタンでエラーになるのか? 

MTビジネステンプレートで問題発生!?

MTの投稿時、保存ボタンの横に確認ボタンがある。人によっては、プレビューやプレビューボタンと呼んでいるようだ。迂闊にも自分ではあまりプレビュー機能を使っていなかったので気がつかなかったが、MTビジネステンプレートで確認ボタンをクリックするとエラーが発生するとのこと。

エラーと聞いてはほおっておけない。さっそく調査開始

バグ対応の第一歩はエラーの内容を知ることから

新規投稿画面で確認ボタンをクリックすると、なるほどエラーになる。バグ対応はエラーの内容、特にエラーメッセージを知ることから始まる。こんなメッセージだった。


エラーが発生しました。
close Can't call method "entry_based" on an undefined value at lib/XX/XXXXXX
/ContextHandlers.pm line 99999.

ArchiveTitleが原因らしい

いろいろと調査してみると、同様のエラーに悩んでいる人もいるようだ。ArchiveTitleが原因らしい。ArchiveTitleは推奨されなくなった という記事もある。

MTのリファレンスによると、「ブログ記事一覧アーカイブのタイトルを表示します。表示されるタイトルは、アーカイブの種類に依存します。たとえば、月別アーカイブや、MTArchiveList ブロックタグに archive_type="Monthly" モディファイアを設定したブロックの中では、年月を表示します。」

別に推奨しない という記述はない。しかし、エラーは発生している。リファレンスによると、名前のとおり アーカイブの中の使用を前提としている。

確かに singleページで ArchiveTitleを使うのは問題がある。保存ボタンではエラーにならず、確認ボタンでエラーになる という点に疑問は残るが、エラーの解消を最優先としよう。アーカイブの種類に応じて、ArchiveTitle と EntryTitle を使い分けるように変更する。

先ほどと同様に確認ボタンをクリックすると、エラーは解消された。

なぜ保存ボタンは問題ないのに、確認ボタンでエラーになるのか?

エラーが発生していたのは、パン屑リストのモジュール。いろいろなページの種類に対応して、現在表示しているページ階層を表示するのがパン屑リストだ。リンクの有無に対応したり、表示中のページへのリンクを外したりして使い勝手を改善したが、その表示中のページかどうかの判定用に変数を保存する箇所でエラーとなっていた。(情けは人のためならず、ちょっと違うか?)

ArchiveTitleを使っていても、保存ボタンをクリックしたときはエラーにはならない。だが、確認ボタンをクリックするとエラーになる。なんでだろう。

保存ボタンをクリックした後は一般には再構築が走る。再構築はブログ記事リストをアーカイブとして処理している。ところが確認ボタンでは、1件の記事をプレビュー表示しようとしている、これはアーカイブではない、ために ArchiveTitle でエラーとなる。こういうことだろう。

ということで一件落着? システム開発ではいろいろな使い方を想定しなければならないことはわかってはいたが、実際問題としてすべての使用条件を検査するには困難な面もある。いろいろな人に使ってもらい、現象を報告してもらうことが重要だということを再認識した。




こんばんわ

> ということで一件落着?

あの~、失礼ですけど、解決策は・・・?

p.s. 桜にまぎれて・・・。実験っすか?(^^)
[ 編集 ] [2009/04/21 21:18]

う~ん、

内容が理解できません。
エンジニアとしては、完全に失格な私です。

新HPですが、遅ればせながら、
やっと再始動し始めました。
まるで、蝸牛のような足取りですが。
ということで、ちょっと先になりますが、
ご指導お願いいたします。

(気長に見てください)

[ 編集 ] [2009/04/21 23:37]

解決策は

> アーカイブの種類に応じて、ArchiveTitle と
> EntryTitle を使い分けるように変更する。
これです。

この記事はシステムあるいはCMSの技術メモです。
> エンジニアとしては、完全に失格な私です。
建築技術の話ではないので大丈夫ですよ。

[ 編集 ] [2009/04/22 08:00]

助かりました

こちらの記事のおかげで、
同じエラーが出ていて
同じようにエントリータイトルを呼び出すのに
アーカイブタイトルを入れていたため、
エントリータイトルに直したら直りました!
助かりました、ありがとうございます!
[ 編集 ] [2010/08/22 15:55]

お役にたてて

YUKIさん
当ブログの記事がお役に立てて何よりです。

また、わざわざコメントをいれていただきありがとうございます。
励みになります。

[ 編集 ] [2010/08/23 10:41]

コメントの投稿













管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://wiz2.blog16.fc2.com/tb.php/439-6eca7393








トップブログでつくるビジネスサイト無料ブログでここまでできるCMSでつくるビジネスサイトウェブ講座&SEOシステム開発個人情報保護Googleでお仕事信州撮っておき情報
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。