Jak wyświetlić odsłonięte sortowanie w widokach za pomocą jednego rozwijanego widżetu?
10
Domyślnie moduł Widoki 3.0 dla Drupal 7 używa dwóch menu rozwijanych do wyświetlania odsłoniętego sortowania. Pierwsza lista rozwijana, aby wybrać nazwę pola, a druga -, aby wybrać kierunek sortowania.
Jak mogę odkryć sortowanie w jednym menu rozwijanym?
Znalezienie tej opcji zajęło mi 30 minut. W twoim widoku znajdziesz go w ustawieniach BEF => Zaawansowane opcje sortowania => Połącz porządek sortowania z sortowaniem według. Dzięki!!!
Musisz stworzyć mały moduł z następującymi hakami:
/**
* Implements hook_form_alter().
*
* Alter exposed filter form in views
*/function MODULE_form_views_exposed_form_alter(&$form,&$form_state, $form_id){if(isset($form['sort_by'])){// Combine sort drop-downs into one.
$form['sorting']= array('#type'=>'select','#id'=>'sort','#title'=> $form['sort_by']['#title'],);foreach($form['sort_by']['#options']as $sort_by_key => $sort_by_title){foreach($form['sort_order']['#options']as $sort_order_key => $sort_order_title){
$form['sorting']['#options'][$sort_by_key .'|'. $sort_order_key]= $sort_by_title .' '. $sort_order_title;}}// Get default value for combined sort.
$sort_by_keys = array_keys($form['sort_by']['#options']);
$form['sorting']['#default_value']= $sort_by_keys[0].'|'. $form['sort_order']['#default_value'];}// Explode combined sort field into two values that are appropriate for views.if(isset($form_state['input']['sorting'])){
$sorting = explode('|', $form_state['input']['sorting']);
$form_state['input']['sort_by']= $sorting[0];
$form_state['input']['sort_order']= $sorting[1];}}/**
* Default preprocess function for all filter forms.
*/function MODULE_preprocess_views_exposed_form(&$vars){
$form =&$vars['form'];// Render new created sort field.if(isset($form['sorting'])){
$form['sorting']['#printed']= FALSE;
$vars['sorting']= drupal_render($form['sorting']);// Need to rebuild the submit button.
$form['submit']['#printed']= FALSE;
$vars['button']= drupal_render_children($form);}}
Następnie musisz skopiować plik „views / theme / views -posed-form.tpl.php” do folderu motywu i zastąpić widżety $ sort_by i $ sort_order nowym $ sorting
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.