Welcome !! Now 2008.07.25 16:23 (JST)

MODx0.9.5 rev2106の問題点と解決策

[ ハウトゥ,トラブル ]

MODx0.9.5 rev2106の問題点と解決策についてまとめてみました

TABLE OF CONTENTS

サンプルサイトの問題について

  1. ドキュメントID37「[*loginName*]
  2. WebLogin
  3. Jot!
  4. miniblog
  5. Request_an_account
  6. ContactUs
  7. テンプレートMODxCSSで読み込まれるCSSが妙※回避※
  8. AjaxSearch

サンプルサイト以外で確認出来ている問題

  1. ファイル管理でファイルの中身をのぞいた時2バイト文字が化ける※解決※
  2. TinyMCEのインタフェイスが日本語化されていない※解決※
  3. 0.9.5標準実装のプラグイン「TemplateSwitcher」が有効になっていると、ドキュメントのキャッシュ機能が無効になる※回避※
  4. QuickEdit固定バーを利用するための変数タグ書式[*#変数名*]を利用するとログアウトした後、HTMLソースの該当箇所にゴミ(<quickedit:content />)が残る…キャッシュ機能を無効にしていると残らない

サンプルサイトの問題について

MODxのサンプルサイトには、以下のような問題や不明な点があります。対処法がわかっているものに関しては、それも記しています。

【01】ドキュメントID37「[*loginName*]

ドキュメントID37「[*loginName*]」、エイリアスが、blog-loginというドキュメントは、どこからもリンクかかってない?。サンプルサイトで使われてない…?。

【02】WebLogin

MODx設定で、「CAPTCHAコードの使用:」Yesにしていると、ユーザログインで1度目のログインに失敗する

  1. WEBから、ユーザログインとパスワードを入力し Login
  2. 添付のメッセージ
    セキュリティコードエラー
  3. OK
  4. 画面に戻る
  5. 再度パスワード入力し Login
  6. ログイン出来る

0.9.6 でfix

Remember me にチェックしても記憶しません…?

  • クッキー常に受け入れる
  • ブラウザ FF
  1. ユーザ名とパスワードを入力
  2. Remember me にチェックを入れ、Login
  3. Logout
  4. ユーザー名、パスワード欄 クリアされている

FireFoxで「Forget your password?」をクリックした後、表示される input入力エリアにカーソルが表示されない。

(入力は出来る。動作も問題なし)。
またIE6.0では問題なし

【03】Jot!

0.9.5標準実装のJot1.0、動作せず

「post comment」をクリックした後、「Uh oh ... it's a 404! (Page Not Found)」にリダイレクトされる

対策

Jot1.0.1が出ているのでバージョンアップすると動作するようになる。が。。

Jot1.0.1は、コメント欄に2バイト文字しか入力しないと投稿出来ない

コメント欄に2バイト文字しか入力しないと「You forgot to enter a comment.」と言われて投稿出来ない。
コメント欄に一文字でもシングルバイトがあればOK(タイトルは2バイトのみでもOK)。

jot1.1.2が出ています。これにアップグレードすると問題を解決できます

【04】miniblog

こちらは、フォーラムで既出の問題です。
参考トピ:miniblogについて

ポップアップするカレンダーの前の年/次の年、前の月/次の月アイコンをクリックした時のURL(パス)がおかしい

対策

これは、chaunkのFromBlogに記述された、Javascritpの問題で、以下のように修正して解決出来る

nwpub_cal1.path="manager/media/";

nwpub_cal1.path="[(site_url)]manager/media/";

フレンドリーURLを使用した時、「blog it!」をクリックした後、アクセスされるべきURLがおかしい(ドキュメントID.htmlになってる)

これは、Newspublisherの問題で未決

管理者権限でログインして該当ドキュメントを保存しなおなさいと、Dittoに反映されない

回避策

これは、Newspublisherのスニペットの呼び出しで、パラメータ「&clearcache=`1`」を指定するとポストの後、Dittoでの出力に反映される

IE6.0で「Add a blog entry」にアクセスするとコンテンツ部が、リッチテキストエディタになっていない

私の環境だけかも知れないのですが、IE6.0で「Add a blog entry」にクセスすると、スクリプトエラーがステータスバーに表示され、コンテンツ部が、リッチテキストエディタになっていません。

そしてログアウトすると、Loginページ(ID 4)にリダイレクトされます
IEの設定のせい。。?かな。。?

【05】Request_an_account

Captcha Codeを入力しなくても、アカウントの作成が出来てしまう

対策

ツール>設定>ユーザで、CAPTCHAの使用をyesにすれば、チェック機能が働く。CAPTHAの使用をしたくなければ、chunkの「FormSignup」の該当部分を削除した方がよいでしょう。

複数のidが定義されている

フォームのlabel、inputのforとidが、サイドバーのログイン部分のfor、idの値とダブっていて、例えば、passwordを入力しようとしてクリックしても、サイドバーのパスワード部分に入力されてしまう(FFで確認)。
(IEでは問題なく動いちゃう…?)

対策

チャンクFormSignupのその部分を修正すればとりあえず動く(と思います…)。
ついでにtabindexも直しました。。
ログインフォームを直した方が良かったかも。。ファイル添付

【06】ContactUs

WEBから送信しようとすると、Internal server errorが出る

eFormのパラメータ設定ミスが原因

対策

Contact Us(ID6)以下の部分を修正する

[!eForm? &formid=`ContactForm` &subject=`[+subject+]` &to=`[(email_sender)]` &ccsender=`1` &tpl=`ContactForm` &report=`ContactFormReport` &gotoid=`46`  !]

&to=`[(emailsender)]`

必要ないスニペットコールが記述されている

[[Contac tForm? &sendTo=`[(emailsender)]`]]

上記は、eFormと同様の機能であり、本来書く必要のないものと思われます。また「Contact Form」は0.9.5には、標準実装されていません

【07】テンプレートMODxCSSで読み込まれるCSSが妙

詳しくは見ていないのですが、目につくところでは、MODxCssのdarkを選択した時、FFでは、一部リンクが効かなくなり、IEでは、表示崩れを起こしています

一応、かなり目につくところだけ修正しましたが(見栄えという意味です)、実際には他にもinvalidな定義があると思われます。

ファイル添付:modx.cssdark.css

【08】AjaxSearch

MODxをインストールしている環境によって、2バイト文字の検索が出来ない

以下の条件において、2バイト文字の検索が出来ません

msql4.1以上(5も含む)の場合で、システム変数の「character_set」と運用キャラクタコードセットが異なる場合

対策:manager/index.phpとAjaxSearch.inc.phpの書き換え

  1. manager/index.phpは136行目付近を以下のように書き換えます
    } else {
    mysql_select_db($dbase);
    }
    

    } else {
    mysql_select_db($dbase);
    }
    mysql_query("SET NAMES 運用文字コード(utf8など);");
  2. AjaxSearch.inc.phpは20行目付近を以下のように書き換えます
    $db = mysql_connect($database_server, $database_user, 
    $database_password, true)or die("Cannot connect to database 
    (connectForAjax)");
    $selected = mysql_select_db($database, $db) or die 
    ("Cannot select database (connectForAjax)");

    $db = mysql_connect($database_server, $database_user, 
    $database_password, true)
    or die("Cannot connect to database (connectForAjax)");
    mysql_query("SET NAMES utf8;");
    $selected = mysql_select_db($database, $db) or die 
    ("Cannot select database (connectForAjax)");

msql4.1より前の場合で、運用キャラクタコードセットがEUC以外の場合

対策:

ZeRoさんがAjaxSearch.inc.phpを書いてくださいましたのでダウンロードし上書きアップロードしてください

上記2通りの方法で解決しない場合

phpの「internal_encoding」を確認して、もし、「internal_encoding」が、運用キャラクタコードセットと異なる場合は、Internal_encodingと運用キャラクタコードセットを同じ設定にしてみてください。

例:

Internal_encoding がISO-8859-1で、サイトのキャラクタコードセットがUTF-8の場合

対策:

php.iniでInternal_encodingをUTF-8にします。

検索結果の文中で検索語がハイライトしない

サンプルサイトで読み込んでいるCSSに、ハイライト用のクラスが定義されていないのが原因です。
以下のようにCSSに追記すると良いでしょう

span.AS_ajax_highlight {
background-color:#ff0;
color:#333;
font-style:italic;
}

クラス名以外の値は任意で変えてください

サンプルサイト以外で確認出来ている問題

【01】ファイル管理でファイルの中身をのぞいた時2バイト文字が化ける

例えば、cssなどでfont-familyに日本語の文字フォントを指定していたりすると化けます。それを保存すると、化けたまま保存されます

対策:

manager/action/files.dynamic.phpの543行目付近を以下のように訂正します

<td><textarea style="width:100%; height:370px;" name="content"><?php echo 
htmlentities($buffer); ?></textarea></td>

<td><textarea style="width:100%; height:370px;" name="content"><?php $code = 
mb_detect_encoding($buffer,'ASCII,JIS,UTF-8,EUC-JP,SJIS'); $buffer = 
mb_convert_encoding($buffer,$modx->config['modx_096charset'],$code);?><?php echo 
htmlentities($buffer,ENT_COMPAT,$modx->config['modx_096charset']); ?></textarea></td>

【02】TinyMCEのインタフェイスが日本語化されていない

デフォルトでは、以下のように、TinyMCEのインタフェイスが日本語化されていません

対策:

リソース>TinyMCE を開いて197行目に以下を追記します

global $manager_language;

【03】0.9.5標準実装のプラグイン「TemplateSwitcher」が有効になっていると、ドキュメントのキャッシュ機能が無効になる

0.9.5には、ユーザクッキーを利用してテンプレートを簡単に切り替えるプラグイン「TemplateSwitcher」が標準実装されていますが、このプラグインが有効の場合、ドキュメントの設定で、「キャッシュ可」にチェックが入っていても、キャッシュ機能が無効になりキャッシュされません。

対策:

  • 「TemplateSwitcher」 を無効にする または、
  • 「TemplateSwitcher」 の「<!-- donotswitch -->」コメントを使う。
    <!-- donotswitch -->は、TemplateSwitcherを無効にするコメントです。これをTemplateSwitcherを無効にしたいテンプレート内に記述すると、TemplateSwitcherが無効になり、結果的に、このコメントを書いたテンプレートを利用しているドキュメントで、キャッシュ可にチェックが入っているものがキャッシュされるようになります。

△ページトップ