Subscribe: RSS
  • 追記です。
    すみません。

    1242行目をコメントアウトというのは、

    // Constructor
    	function Csv(&$params) {
    	$this->params =& $params;
    	$this->setLocale();
    }




    // Constructor
    	function Csv(&$params) {
    	$this->params =& $params;
    	//$this->setLocale();
    }


    にしたということです。
    • Csv2Docは、PHPのfgetcsv
      http://jp.php.net/manual/ja/function.fgetcsv.php
      を使っているので、
      サーバのデフォルトロケールが日本語UTF-8なら、問題ありませんが、
      それ以外だと、マルチバイト文字でおかしくなる可能性もあります。

      EC-CUBEがデフォルトのロケールで動く仕組みで、
      それがUTF-8ということなら、良いのでしょうが…
      EC-CUBEのことはわかりません。

      ちなみに、ロケールの設定は、PHP特有ではなく、
      どんな言語でも、サーバ内のプログラムは少なからず影響のある設定だと思います。
      例えば、ロケールの設定には時刻もあって、この設定で日本時間になるなどです。
      (今回の件は、時刻は関係ありませんが)
        ★日本公式フォーラム2009年9月1日本格始動!★
        http://modxcms-jp.com/bb/

        ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
        http://d.hatena.ne.jp/hikidas_ikeda/
        ▼制作済みHTMLページをmodxで更新するデモ
        http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
      • デフォルトのロケールを調べる方法ですが、
        phpinfo()の出力に、
        EnvironmentのLANGがあるかと思います。
        これがロケールの設定だったと思います。
          ★日本公式フォーラム2009年9月1日本格始動!★
          http://modxcms-jp.com/bb/

          ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
          http://d.hatena.ne.jp/hikidas_ikeda/
          ▼制作済みHTMLページをmodxで更新するデモ
          http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
        • なるほど。

          phpinfo()で調べてみましたが、LANGという項目が見つからず、
          Environmentで関係ありそうなのは、下記だけでした。

          HTTP_ACCEPT_CHARSET	Shift_JIS,utf-8;q=0.7,*;q=0.3
          HTTP_ACCEPT_LANGUAGE	ja,en-US;q=0.8,en;q=0.6
          _SERVER["HTTP_ACCEPT_LANGUAGE"]	ja,en-US;q=0.8,en;q=0.6


          ためしに
          &sys_locale=ロケール設定;string;en-US.Shift_JIS

          を試しましたが、同じエラーでした。
          上記の情報から、どのような設定値にすればよいかお分りでしょうか?

          ちなみに、ロケールの設定は、PHP特有ではなく、
          どんな言語でも、サーバ内のプログラムは少なからず影響のある設定だと思います。
          そうなんですね、うーん。
          • デフォルトのロケール設定を見る方法ですが、
            以下のコードを、assets\modules\csv2doc\Csv2Doc.class.inc.phpの
            「function setLocale() {」の次の行あたりに入れてもらうと、
            「確認する」を押したときに、画面の上あたりに
            --------
            locale default setting:
            string(**) "********"
            --------
            のような感じで出るかと思います。
            echo "locale default setting:<br />\n";
            var_dump(setlocale(LC_ALL,"0"));


            あと、設定値ですが、
            「ja_JP.UTF8」とか「ja.UTF-8」「ja.UTF8」なんかも試してみる価値があるかもしれません。

              ★日本公式フォーラム2009年9月1日本格始動!★
              http://modxcms-jp.com/bb/

              ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
              http://d.hatena.ne.jp/hikidas_ikeda/
              ▼制作済みHTMLページをmodxで更新するデモ
              http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
            • ほんとに、ご親切にありがとうございます。

              アドバイス通りにしたところ、
              locale default setting:
              string(21) "C/C/C/C/ja_JP.UTF-8/C"

              と表示されました。
              「C」とはなんなのだろう。
              ちゃんと、ja_JP.UTF-8に設定されているということなんでしょうか。

              あと、設定値ですが、
              「ja_JP.UTF8」とか「ja.UTF-8」「ja.UTF8」なんかも試してみる価値があるかもしれません。
              どれも、同様のエラーが表示される結果でした、
              • 「C」は、標準的なC言語の設定という意味だったような…
                具体的には、文字は1バイトASCII文字になるかと思います。

                ただ、「C/C/C/C/ja_JP.UTF-8/C」のような組み合わせについては、
                どういう意味があるのか、よくわかりません。

                これとは関係ありませんが、
                もしかして、「LC_ALL」がNGだということがあるのかもしれません。(根拠はありませんが)
                一度
                if (! setlocale(LC_ALL, $this->paramV('sys_locale'))) {
                の「LC_ALL」を「LC_CTYPE」に変えてみていただけますでしょうか?

                これでダメだったら、戻り値の真偽判定が問題ということもあるのかもしれませんので、
                同じ箇所を
                if (setlocale(LC_CTYPE, $this->paramV('sys_locale')) === FALSE) {

                に変えてみてもらえますでしょうか?
                  ★日本公式フォーラム2009年9月1日本格始動!★
                  http://modxcms-jp.com/bb/

                  ▼ウェブ屋のCMS→modxヒキダス流(備忘録)
                  http://d.hatena.ne.jp/hikidas_ikeda/
                  ▼制作済みHTMLページをmodxで更新するデモ
                  http://www.hikidas.com/hikidas/modx_document/modx_demo_osc2009kansai.php
                • はじめまして。
                  modxを使い始めたばかりでまだまだひよっこなのですが、よろしくお願いいたします。

                  こちらのモジュールをつかって一括登録しようとしたのですが、管理画面のmessages欄に
                  「CSVファイル読み込みエラー(/***//assets/files /data.csv)」
                  とコメントが出て、CSVファイルを読み込んでもらえませんでした。

                  モジュールのインストール時にエラーも出ませんでしたので、きちんとインストールできていると思います。
                  CSVファイルはダウンロードサイトと同じものをサンプルで作りました。
                  しかしエラーが出るということは、やはりCSVファイルがおかしいのでしょうか。

                  こちらのモジュールが使えたら、すごく便利なので助かります。
                  お手数ですが対応策など教えていただければと思いますので、よろしくお願いいたします。

                  PHP:5.2.13
                  modx:1.0.3j
                  Csv2Doc:0.9.3b4
                  • すみません、おさわがせいたしましたが自己解決しました。

                    CSVファイルをFTPでアップロードしていたのですが、試しにファイル管理でアップロードしたところ、
                    「この種類のファイルはアップロードできません。」となりアップできませんでした。
                    そこでユーザー管理の詳細設定で、アップロード可能なファイルタイプを「グローバル設定を使用」ではなく、
                    CSVを加えた自己設定に修正しました。
                    その結果、きちんとCSVファイルを読み込みしてもらい、登録することができました。

                    同じようにグローバル設定のファイル管理設定のアップロード可能なファイルタイプに
                    CSVを加えても可能でした。

                    これで一気に登録できるのでホッとしてます。
                    ありがたく使わせていただきます。