/** * @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); }