GIJOE さん、ご反応ありがとうございます。
問題がわかりましたので、ご報告させていただきます。
Quote:
GIJOE wrotes:
とりあえず、
という判定条件を、
としたらどうなりますか?
やってみました。
if ( sizeof( @$_POST ) > 0 && file_exists(XOOPS_ROOT_PATH.'/modules/cubeUtils/class/MultiLanguage.class.php')) {
echo 0;
としてみたんですが、やっぱり post をしてみても無反応でした。
が、ここで気づきました。あれですよね。redirect してるから、ただ var_dump() してもだめですよね。というわけで die() をあわせてやってみたところ、! empty( $_POST ) の条件式が有効になりました。
array(hoge) {
["cat_title"]=>
array(2) {
["ja"]=>
string(27) "日本語"
["en"]=>
string(13) "English"
}
}
ここまでこれたら解析できるぞ、と mergeRecursive() のところで $data を var_dump() してみました。
} else if( in_array( $index , $cubeUtilMlang->mLanguages ) ) {
$merged_string .= '['.$index.']'.$data[ $index ].'[/'.$index.']' ;
$langs_counter ++ ;
}
}
echo '<pre>' ;
var_dump( str_replace( '[','-',$merged_string ) ) ;
echo '</pre>' ;
die();
#cubeUtils の出力制御って、var_dump() のときにも有効なんですね。str_replace() で、ブラケットをマイナスにしないと中身が見られないことになかなか気づけませんでした。
ともあれ、上述の処理で、foreach() もうまく機能していることがわかり、じゃあ何がいけないのか……。
次の行を見てやっとわかりました。
if( $langs_counter == sizeof( $cubeUtilMlang->mLanguages ) ) {
言語の数を確認してたんですね! 適用しようとしていたサイトでは4カ国語を使う予定でした。でも、ほかの2カ国語の翻訳のアテがなく、とりあえず英語だけやっとこ、と input のフィールドを、日本語と英語の2つだけにしていたのです。他の予定言語についても空のフィールドを足しておきましたところ、みごとにうごきました。
レアケースかとは思いますが、ご報告まで。
Quote:
あと、テンプレートは見るからにおかしいですよね。
<snip>
じゃないと、マージした意味がありません。
name 属性を間違えるなんて、そんなルーキーのようなミスはしてないだろうとおもっていたら、ほんとだ、間違ってました orz 。
マイナーからやり直してきます……