Add new filters see BT#10849

ofaj
jmontoyaa 9 years ago
parent 804a02d6db
commit 6f94f28109
  1. 59
      load_search.php

@ -620,7 +620,6 @@ $(function() {
'.$jsTag.'
});
</script>';
if (!empty($filterToSend)) {
// Get start and end date from ExtraFieldSavedSearch
$defaultExtraStartDate = isset($defaults['extra_access_start_date']) ? $defaults['extra_access_start_date'] : '';
@ -643,6 +642,64 @@ if (!empty($filterToSend)) {
((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL))
)";
$extraFieldOptions = new ExtraFieldOption('session');
$extraFieldSession = new ExtraField('session');
foreach ($filterToSend['rules'] as &$filterItem) {
switch ($filterItem['field']) {
case 'extra_ecouter':
case 'extra_lire':
case 'extra_participer_a_une_conversation':
case 'extra_s_exprimer_oralement_en_continu':
case 'extra_ecrire':
$selectedValue = '';
$filterItem['field'] = str_replace('extra_', '', $filterItem['field']);
$extraFieldSessionData = $extraFieldSession->get_handler_field_info_by_field_variable($filterItem['field']);
// see https://task.beeznest.com/issues/10849#change-81902
if (is_array($filterItem['data'])) {
$myOrder = [];
foreach ($filterItem['data'] as $option) {
foreach ($extraFieldSessionData['options'] as $optionValue) {
if ($option == $optionValue['option_value']) {
$myOrder[$optionValue['option_order']] = $optionValue['option_value'];
}
}
}
if (!empty($myOrder)) {
// Taking last from list
$selectedValue = end($myOrder);
}
} else {
$selectedValue = $filterItem['data'];
}
$newOptions = array_column($extraFieldSessionData['options'], 'option_value', 'option_order');
$searchOptions = [];
for ($i = 1; $i < count($newOptions); $i++) {
if ($selectedValue == $newOptions[$i]) {
if (isset($newOptions[$i-1])) {
$searchOptions[] = $newOptions[$i-1];
}
if (isset($newOptions[$i])) {
$searchOptions[] = $newOptions[$i];
}
if (isset($newOptions[$i+1])) {
$searchOptions[] = $newOptions[$i+1];
}
break;
}
}
$filterItem['data'] = $searchOptions;
break;
}
//var_dump($filterToSend['rules']);
}
if ($userStartDate && !empty($userStartDate)) {
$filterToSend['custom_dates'] = $sql;
}

Loading…
Cancel
Save