|
@@ -117,63 +117,62 @@ if (($search || $forceSearch) && ($search !== 'false')) {
|
|
|
}
|
|
|
$filters = isset($_REQUEST['filters']) && !is_array($_REQUEST['filters']) ? json_decode($_REQUEST['filters']) : false;
|
|
|
|
|
|
- /*if (!empty($filters) && !empty($filters->rules)) {
|
|
|
- $whereCondition .= ' AND ( ';
|
|
|
- $counter = 0;
|
|
|
- foreach ($filters->rules as $key => $rule) {
|
|
|
- $whereCondition .= getWhereClause($rule->field, $rule->op, $rule->data);
|
|
|
-
|
|
|
- if ($counter < count($filters->rules) -1) {
|
|
|
- $whereCondition .= $filters->groupOp;
|
|
|
+ if (!empty($filters)) {
|
|
|
+ if (in_array($action, ['get_questions', 'get_sessions'])) {
|
|
|
+ switch ($action) {
|
|
|
+ case 'get_questions':
|
|
|
+ $type = 'question';
|
|
|
+ break;
|
|
|
+ case 'get_sessions':
|
|
|
+ $type = 'session';
|
|
|
+ break;
|
|
|
}
|
|
|
- $counter++;
|
|
|
- }
|
|
|
- $whereCondition .= ' ) ';
|
|
|
- }*/
|
|
|
-
|
|
|
- // for now
|
|
|
- switch ($action) {
|
|
|
- case 'get_questions':
|
|
|
- $type = 'question';
|
|
|
- break;
|
|
|
- case 'get_sessions':
|
|
|
- $type = 'session';
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (!empty($type) && !empty($filters)) {
|
|
|
|
|
|
- // Extra field.
|
|
|
-
|
|
|
- $extraField = new ExtraField($type);
|
|
|
- $result = $extraField->getExtraFieldRules($filters, 'extra_');
|
|
|
- $extra_fields = $result['extra_fields'];
|
|
|
- $condition_array = $result['condition_array'];
|
|
|
+ if (!empty($type)) {
|
|
|
+ // Extra field.
|
|
|
+ $extraField = new ExtraField($type);
|
|
|
+ $result = $extraField->getExtraFieldRules($filters, 'extra_');
|
|
|
+ $extra_fields = $result['extra_fields'];
|
|
|
+ $condition_array = $result['condition_array'];
|
|
|
+
|
|
|
+ $extraCondition = '';
|
|
|
+ if (!empty($condition_array)) {
|
|
|
+ $extraCondition = ' AND ( ';
|
|
|
+ $extraCondition .= implode($filters->groupOp, $condition_array);
|
|
|
+ $extraCondition .= ' ) ';
|
|
|
+ }
|
|
|
|
|
|
- $extraCondition = '';
|
|
|
- if (!empty($condition_array)) {
|
|
|
- $extraCondition = ' AND ( ';
|
|
|
- $extraCondition .= implode($filters->groupOp, $condition_array);
|
|
|
- $extraCondition .= ' ) ';
|
|
|
- }
|
|
|
+ $whereCondition .= $extraCondition;
|
|
|
|
|
|
- $whereCondition .= $extraCondition;
|
|
|
+ // Question field
|
|
|
|
|
|
- // Question field
|
|
|
+ $resultQuestion = $extraField->getExtraFieldRules($filters, 'question_');
|
|
|
+ $questionFields = $resultQuestion['extra_fields'];
|
|
|
+ $condition_array = $resultQuestion['condition_array'];
|
|
|
|
|
|
- $resultQuestion = $extraField->getExtraFieldRules($filters, 'question_');
|
|
|
- $questionFields = $resultQuestion['extra_fields'];
|
|
|
- $condition_array = $resultQuestion['condition_array'];
|
|
|
+ if (!empty($condition_array)) {
|
|
|
+ $extraQuestionCondition = ' AND ( ';
|
|
|
+ $extraQuestionCondition .= implode($filters->groupOp, $condition_array);
|
|
|
+ $extraQuestionCondition .= ' ) ';
|
|
|
+ // Remove conditions already added
|
|
|
+ $extraQuestionCondition = str_replace($extraCondition, '', $extraQuestionCondition);
|
|
|
+ }
|
|
|
|
|
|
- if (!empty($condition_array)) {
|
|
|
- $extraQuestionCondition = ' AND ( ';
|
|
|
- $extraQuestionCondition .= implode($filters->groupOp, $condition_array);
|
|
|
- $extraQuestionCondition .= ' ) ';
|
|
|
- // Remove conditions already added
|
|
|
- $extraQuestionCondition = str_replace($extraCondition, '', $extraQuestionCondition);
|
|
|
+ $whereCondition .= $extraQuestionCondition;
|
|
|
+ }
|
|
|
+ } elseif (!empty($filters->rules)) {
|
|
|
+ $whereCondition .= ' AND ( ';
|
|
|
+ $counter = 0;
|
|
|
+ foreach ($filters->rules as $key => $rule) {
|
|
|
+ $whereCondition .= getWhereClause($rule->field, $rule->op, $rule->data);
|
|
|
+
|
|
|
+ if ($counter < count($filters->rules) -1) {
|
|
|
+ $whereCondition .= $filters->groupOp;
|
|
|
+ }
|
|
|
+ $counter++;
|
|
|
+ }
|
|
|
+ $whereCondition .= ' ) ';
|
|
|
}
|
|
|
-
|
|
|
- $whereCondition .= $extraQuestionCondition;
|
|
|
}
|
|
|
}
|
|
|
|