芝麻web文件管理V1.00
编辑当前文件:/home/royashxg/www/wp-content/plugins/fluentform/app/Modules/Entries/EntryQuery.php
request = wpFluentForm('request'); $this->formModel = wpFluent()->table('fluentform_forms'); $this->responseModel = wpFluent()->table('fluentform_submissions'); } public function getResponses() { $query = $this->responseModel ->where('form_id', $this->formId) ->orderBy('id', \FluentForm\App\Helpers\Helper::sanitizeOrderValue($this->sort_by)); if ($this->per_page > 0) { $query = $query->limit($this->per_page); } if ($this->page_number > 0) { $query = $query->offset(($this->page_number - 1) * $this->per_page); } if ($this->is_favourite) { $query->where('is_favourite', $this->is_favourite); $query->where('status', '!=', 'trashed'); } else { if (!$this->status) { $query->where('status', '!=', 'trashed'); } else { $query->where('status', $this->status); } } if ($this->startDate && $this->endDate) { $endDate = $this->endDate; $endDate .= ' 23:59:59'; $query->where('created_at', '>=', $this->startDate); $query->where('created_at', '<=', $endDate); } if ($this->search) { $searchString = $this->search; $query->where(function ($q) use ($searchString) { $q->where('id', 'LIKE', "%{$searchString}%") ->orWhere('response', 'LIKE', "%{$searchString}%") ->orWhere('status', 'LIKE', "%{$searchString}%") ->orWhere('created_at', 'LIKE', "%{$searchString}%"); }); } if ($this->wheres) { foreach ($this->wheres as $where) { if (is_array($where) && count($where) > 1) { if (count($where) > 2) { $column = $where[0]; $operator = $where[1]; $value = $where[2]; } else { $column = $where[0]; $operator = '='; $value = $where[1]; } if (is_array($value)) { $query->whereIn($column, $value); } else { $query->where($column, $operator, $value); } } } } $total = $query->count(); $responses = $query->get(); $responses = apply_filters_deprecated( 'fluentform_get_raw_responses', [ $responses, $this->formId ], FLUENTFORM_FRAMEWORK_UPGRADE, 'fluentform/get_raw_responses', 'Use fluentform/get_raw_responses instead of fluentform_get_raw_responses.' ); $responses = apply_filters('fluentform/get_raw_responses', $responses, $this->formId); return [ 'data' => $responses, 'paginate' => [ 'total' => $total, 'per_page' => $this->per_page, 'current_page' => $this->page_number, 'last_page' => ceil($total / $this->per_page), ], ]; } public function getResponse($entryId) { return wpFluent()->table('fluentform_submissions')->find($entryId); } public function getNextResponse($entryId) { $query = $this->getNextPrevEntryQuery(); $operator = 'ASC' == $this->sort_by ? '>' : '<'; return $query->select('id') ->where('id', $operator, $entryId) ->orderBy('id', \FluentForm\App\Helpers\Helper::sanitizeOrderValue($this->sort_by)) ->first(); } public function getPrevResponse($entryId) { $query = $this->getNextPrevEntryQuery(); $operator = 'ASC' == $this->sort_by ? '<' : '>'; $orderBy = 'ASC' == $this->sort_by ? 'DESC' : 'ASC'; return $query->select('id') ->where('id', $operator, $entryId) ->orderBy('id', $orderBy) ->first(); } protected function getNextPrevEntryQuery() { $query = wpFluent()->table('fluentform_submissions')->limit(1); if ($this->is_favourite) { $query->where('is_favourite', $this->is_favourite)->where('status', '!=', 'trashed'); } else { if (!$this->status) { $query->where('status', '!=', 'trashed'); } else { $query->where('status', $this->status); } } if ($this->search) { $query->where('response', 'LIKE', "%{$this->search}%"); } return $query->where('form_id', $this->formId); } public function groupCount($form_id) { $statuses = $this->responseModel ->select($this->responseModel->raw('status, COUNT(*) as count')) ->where('form_id', $form_id) ->groupBy('status') ->get(); $counts = []; foreach ($statuses as $status) { $counts[$status->status] = $status->count; } $counts['all'] = array_sum($counts); if (isset($counts['trashed'])) { $counts['all'] -= $counts['trashed']; } $favorites = wpFluent() ->table('fluentform_submissions') ->where('form_id', $form_id) ->where('is_favourite', 1) ->where('status', '!=', 'trashed') ->count(); $counts['favourites'] = $favorites; return $counts; } }