それで、@ David Lanierの提案した方法を試しましたが、頭を完全に包み込むことができませんでした。そこで、Drupalの基本に戻り、hook_form_alter()
アプローチから試してみました。いくつかのトラブルシューティングの後、デフォルトのビューフィルター値の変更に関する投稿も見つけました。私は同じアプローチを取り、それを機能させました。以下は使用したコードで、サイト固有のものを削除するためにいくつかの変更を加えています。いつものように、「modulename」をモジュールの名前に置き換えてください。
function modulename_form_alter(&$form, $form_state, $form_id) {
// is this the right form?
if($form['#id'] == 'name-of-the-views-form-displayed') {
if (empty($_GET['label-of-the-filter'])) {
$form_state['input']['label-of-the-filter'] = 'default-value-for-filter';
}
}
}
name-of-the-views-form-displayed
変更したいビューフォームの名前に置き換えてください。これを見つける最も簡単な方法は、ブラウザーでビューのソースを調べ(これはFirebugが大好きです)、form
要素を見つけて、そのid
属性を取得することです。フィルターの名前と設定する値を見つけるには、フィルターを変更して「検索」を実行します。アドレスバーを見ると、URLのパラメーターとしてここで使用する必要がある値が表示されます。
これが他の人たちにもこの問題を回避してくれることを願っています!