インストール不具合(標準チャンクやスニペットがインストールされない)

質問全般・改善要望
返信する
clefarray
メンバー
メンバー
記事: 10
登録日時: 2010年2月16日(火) 16:20

インストール不具合(標準チャンクやスニペットがインストールされない)

投稿記事 by clefarray »

MODx1.0.3Jのインストール時に不具合と思われる症状を確認しました。
ただ、いままで誰からも報告が無いことから、もしかしたら DB に依存する問題なのかもしれませんが。。。
(不具合確認: MySQL5.0.67 windows)

インストール中の「インストールオプションの選択」画面で”MODxHost ”テンプレートにチェックを入れた場合、
順調に「インストールを実行しました。」画面までは遷移しますが、
その画面内で”テンプレート”の項目に「Incorrect integer value: '' for column 'locked' at row 1」というエラーメッセージが表示され、処理が中断されます。
よって、それ以降のスニペットやプラグインなどがインストールされません。
ただ、インストール自体は”正常終了”という扱いになり、「インストール終了」ボタンが表示されます。

エラーの原因は tinyint 型である site_templates テーブルの`locked`カラムに文字列で INSERT または REPLACE しようとしていることだと思われます。
/install/instprocessor.php line337, 344

v1.0.3からテンプレートのインストール機能がついたようですが、テンプレートファイル内にある @lock_template の値が 0 の場合は無視されるようで、
MODxHost テンプレートはこれに該当し、結果的に locked='' という SQL を発行してしまっています。
ですので、instprocessor.php の 311行目を
$locked = mysql_real_escape_string(isset($moduleTemplates[$si][5]) && $moduleTemplates[$si][5] ? $moduleTemplates[$si][5] : 0);
のように変更することで改善できました。


個人的には、エラー発生の有無に関わらず、tinyint 型なのですから null ではなく明確に数値を指定したほうが良いかと思いますが、いかがでしょうか?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: インストール不具合(標準チャンクやスニペットがインストールされない)

投稿記事 by yama »

対応策まで探っていただいて、ありがとうございます。おっしゃるとおりだと思うので、次回はそのように対応します。

1.0.1から組み込まれたこの部分、他にもバグがありそうな感じです。たとえば環境によっては所属カテゴリーの更新でコケるようですが・・
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: インストール不具合(標準チャンクやスニペットがインストールされない)

投稿記事 by yama »

1.0.3J-r2をリリースしましたが、この件ノーチェックでした。次回で対応したいと思います
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: インストール不具合(標準チャンクやスニペットがインストールされない)

投稿記事 by yama »

この件、1.0.3J-r2で対応してました。
返信する