2012-04-19 4 views
1

をフィルタリングします。このユースケースは適切に実行され、私は満足しています。成果物をクラウンするには、最初は十分に見える形のタイトルオーバーライドShowing search results for '%1'を追加する必要がありますが、計画どおりには機能していません。検索値がブロック内に露出フォームから収集されたURL = mysite.com/search/all?search=wombatについては、 Drupalの7ビューコンテキストは、私は、検索APIを介して検索結果を返すビューを持っているタイトルの上書き

は、私はどちらか取得しています:

「『すべて』のための検索」の検索結果を表示します

か、私はURLに表示されていない対象のタイトルのオーバーライドで%1を入力すると、私が手:。

%1" の検索結果を表示

私の目標は、取得することです(私は例外値として設定するか、または何か他のもの)例外値として 『すべて「のタイトルの上書きは、それがSearch for ...一部を削除することで動作しますが、置換が上で拾っ

を『ウォンバット』の検索結果を表示』ここで私はクエリ文字列(search = wombat)の値を取得する必要があります。

誰でも光を当てることはできますか?

答えて

1

タイトルを上書きするために使用できる '%1'と '%2'は、パスの1番目と2番目の引数(Drupalの言葉)を参照し、 '検索'と 'すべてですか?検索=ウォンバット自体にパスコンポーネントとして、ウォンバット 『」あなたの代わりに必要なもの、あなたの場合は...

があります』。 「対象者がURLに表示されていないため、タイトルの上書き」の場合:

は、おそらくあなたは、あなたが話しているような場合を加工してそれを達成することができます。コンテキストフィルタセクションには、 が存在しない場合にデフォルト値を指定するオプションがあります(ここでは、あなたが働いていると仮定しています)。おそらく、あなたが「 PHPコード」オプションを使用することができ、あなたの「ウォンバット」の文字列を分離し、デフォルトコンテキストフィルタとしてそれを返し、その後、あなたは「%1」を介してそれを得ることができます。

URLのその部分は、このようなものになります取得するためのPHPコード:

return htmlentities($_GET['search']); 

の$ _GET()URLでその変数の値を返す、とにhtmlentities()は単ににありますXSSに脆弱なURLの一部を使用しているので、安全に保管してください。そのコンボは1が存在しない場合(1)デフォルトの引数を設定し、2)あなたのタイトルのプリントアウトで、新たに設定された引数)が動作することを利用した場合

を参照してください!

+0

感謝Borianaを使用しています。それでも%1を得ることはできませんでしたが、クエリ文字列から値を取得することはそのトリックでした。 –

0

この問題は修正されました。 以下の2つのフックを使用して、フィルタのdefalut値をプログラムで変更することができます。

<?php 
/** 
* hook_views_pre_view 
* @param type $view 
* @param type $display_id 
* @param type $args 
*/ 
function MODULE_NAME_views_pre_view(&$view, &$display_id, &$args) { 
    if ($view->name == 'VIEW_NAME') { 
    $filters = $view->display_handler->get_option('filters'); 
    $view->display_handler->override_option('filters', $filters); 
    } 
} 



/** 
* hook__views_pre_build 
* @param type $view 
* @return type 
*/ 
function MODULE_NAME_views_pre_build($view) { 
    if ($view->name=='VIEW_NAME') { 
    $view->display['page']->handler->handlers['filter']['filter_field']->value['value'] = 8; 
    return $view; 
    }  
} 
?> 

このコードは私にとって役に立ちました。私はこれが解決に向けて貢献し、Drupalの7.

関連する問題