Пример #1
0
 /**
  * @param $filterValue
  * @param $return
  * @return mixed
  */
 protected function taxonomyValueSetter($filterValue, $return)
 {
     $return[$filterValue['fieldID']]['overwrite'] = $filterValue['set']['overwrite'];
     $return[$filterValue['fieldID']]['active'] = $filterValue['active'];
     $value = QueryModel::isValue($return[$filterValue['fieldID']]['value'], $return[$filterValue['fieldID']]['type']);
     if (!$value && $filterValue['active']) {
         $return[$filterValue['fieldID']]['value'] = $filterValue['set']['filterValue'] ? $filterValue['set']['filterValue'] : '';
         $return[$filterValue['fieldID']]['operator'] = $filterValue['set']['selected_operator'] ? $filterValue['set']['selected_operator'] : '';
         //exception for toggle field
         if (is_null(Input::get($filterValue['fieldID'])) && $return[$filterValue['fieldID']]['type'] == 'toggle_field') {
             $return[$filterValue['fieldID']]['value'] = $return[$filterValue['fieldID']]['value'] ? '1' : 'skip';
         }
     }
     if ($filterValue['set']['overwrite']) {
         $return[$filterValue['fieldID']]['value'] = $filterValue['set']['filterValue'] ? $filterValue['set']['filterValue'] : '';
         $return[$filterValue['fieldID']]['operator'] = $filterValue['set']['selected_operator'] ? $filterValue['set']['selected_operator'] : '';
         //exception for toggle field
         if ($return[$filterValue['fieldID']]['type'] == 'toggle_field') {
             $return[$filterValue['fieldID']]['value'] = $return[$filterValue['fieldID']]['value'] == '1' ? '1' : 'skip';
         }
     }
     $val = QueryModel::isValue($return[$filterValue['fieldID']]['value'], $return[$filterValue['fieldID']]['type']);
     if ($val) {
         $return[$filterValue['fieldID']]['enable'] = true;
     }
     return $return;
 }
Пример #2
0
 /**
  * @param $arrFilter
  * @return array
  */
 public static function generateSQLQueryFromFilterArray($arrFilter)
 {
     $qStr = '';
     $qTextSearch = '';
     $isFulltextSearch = false;
     $searchSettings = array();
     QueryModel::$arrTaxonomiesFields = array();
     // fix issue https://github.com/alnv/fmodul/issues/4#issuecomment-239238372
     QueryModel::$strTaxonomyQuery = '';
     // fix issue https://github.com/alnv/fmodul/issues/4#issuecomment-239238372
     foreach ($arrFilter as $field) {
         if ($field['enable']) {
             switch ($field['type']) {
                 case 'simple_choice':
                     $qStr .= QueryModel::simpleChoiceQuery($field);
                     break;
                 case 'date_field':
                     $qStr .= QueryModel::dateFieldQuery($field);
                     break;
                 case 'search_field':
                     $qStr .= QueryModel::searchFieldQuery($field);
                     break;
                 case 'multi_choice':
                     $qStr .= QueryModel::multiChoiceQuery($field);
                     break;
                 case 'toggle_field':
                     $qStr .= QueryModel::toggleFieldQuery($field);
                     break;
                 case 'taxonomy_field':
                     QueryModel::setupTaxonomyFieldQueryArray($field);
                     break;
                 case 'fulltext_search':
                     $isValue = QueryModel::isValue($field['value']);
                     if ($isValue) {
                         $isFulltextSearch = true;
                         $qTextSearch = $field['value'];
                         $searchSettings = array('fields' => $field['fullTextSearchFields'] ? $field['fullTextSearchFields'] : 'title,description', 'orderBy' => $field['fullTextSearchOrderBy'] ? $field['fullTextSearchOrderBy'] : 'title');
                     }
                     break;
             }
         }
     }
     // taxonomy query builder
     if (count(QueryModel::$arrTaxonomiesFields) > 0) {
         QueryModel::taxonomyFieldQueryBuilder();
         $qStr = QueryModel::$strTaxonomyQuery;
     }
     return array('qStr' => $qStr, 'isFulltextSearch' => $isFulltextSearch, '$qTextSearch' => $qTextSearch, 'searchSettings' => $searchSettings);
 }