モジュールのパラメータを使用して特定のことを行うのに問題があります。コードから次のエラーが発生し続けます。
PHP Fatal error: Call to a member function get() on a non-object
このエラーは、次のファイルの10行目で発生します。
<?php
echo($params)
class modSystemValidation {
function buildForm() {
$form = '';
$tabIndex = 0;
if($params->get('includeGender','0') == 1 ) {
$form .= '<div id="gender"><input type="radio" name="gender" id="gender_m" value="m" tabindex="' . $tabIndex . '" class="label" /><label for="gender_m">Male</label><input type="radio" name="gender" id="gender_f" value="f" tabindex="' . $tabIndex + 1 . '" /><label for="gender_f"></label></div>';
$tabIndex++;
$tabIndex++;
}
}
return $form
}
modSystemValidation::buildForm();
?>
これが、echo($ params)を使用してページに関してparamsがエコーするものであると結論付けることができました。
{"includeFirstName":"1","includeLastName":"1","includeEmail":"1","includePhone":"0","includeAddress1":"0","includeAddress2":"0","includeZip":"0","includeCity":"0","includeState":"0","includeGender":"0","validateFirstName":"0","validateLastName":"0","validateEmail":"0","validatePhone":"0","validateAddress1":"0","validateAddress2":"0","validateZip":"0","validateCity":"0","validateState":"0","validateGender":"0"}
私の問題は、$ params変数がオブジェクトではなく配列であるということだと思いますが、is_array()関数とis_object()関数でこれを確認するのは難しいようです。
誰かがこの質問に答える前に、ここで簡単な概要を説明します。
- $paramsが定義されていることを知っています
- ここでの私の問題は、$ paramsを調べて、その内容に基づいて何かを行う方法が必要なことです。
- Joomla標準用にコードを正しく構成するための助けに感謝しますが、この問題が解決するまでそれを延期したいと思います。
どんな助けでも大歓迎です、私は単に私のモジュールのパラメータにアクセスし、ユーザーがその特定のフィールドを有効にしたかどうかに基づいてフォーム値を構築しようとしています。今のところ、現在のコードでは性別フィールドがページに配置されないことを知っています。これは予想されることです。私が解決しようとしているのは、get関数を使用して10行目にエラーが発生する理由です。$ paramsはクラスの外部にエコーできますが、クラスの内部にはエコーできませんか?これは私には意味がなく、問題が発生している場所のようです。