1

分類用語の階層があり、ビューのフィルターとして使用しています。選択ボックスに階層が表示されていますが、子用語はハイフン(-)で表示されます。フォームアルターにハイフンをドロップしようとしましたが、空白スペースを置き換えることができませんでした。

if ($form_id == 'views_exposed_form') {
        $i = 0;
        foreach ($form['field_region_tid']["#options"] as $op) {
            foreach ($op->option as $key => $arr) {
                if ($arr != null) {
                    $form['field_region_tid']["#options"][$i]->option[$key] = str_replace("-"," ", $arr);

                }

            }
            $i++;
        }

    }

子オプションの先頭に空白を入れるにはどうすればよいですか。それとも私は他の方法をすべきですか?ありがとう!

4

2 に答える 2

0

問題がフックが呼び出されたときである場合、答えはそこにあります

hook_module_implements_alter()

しかし、それはあなたの言うとおりではありません。あなたのコードは問題ないようです。

str_replace("-"," ", $arr);

?

于 2013-02-19T12:27:52.480 に答える
0

form_id から、ビューによって生成されたフォームであることがわかります。ifその場合、両方のモジュールの重みにより、ビュー モジュールの後にモジュールが実行されるため、条件内のコードが呼び出されることはありません。それを修正するには:

  1. データベース マネージャー (ほとんどの場合 PhpMyAdmin) を開き、systemテーブルを開きます。

  2. 次に、モジュールの重みを 10 より大きい値に変更します。これはビュー モジュールのデフォルトの重みであり、ビュー モジュールの後にモジュールを実行する必要があるためです。

これが役に立てば幸いです...ムハンマド。

于 2012-11-15T12:10:03.867 に答える