Files
dominik/public/admin/controller/search/search.php
T
2026-05-30 09:27:58 +03:00

148 lines
6.0 KiB
PHP

<?php
// * @source See SOURCE.txt for source and other copyright.
// * @license GNU General Public License version 3; see LICENSE.txt
class ControllerSearchSearch extends Controller {
public function index() {
if(empty($this->session->data['user_token'])) {
return;
}
$this->load->language('search/search');
$data = array();
$data['text_search_options'] = $this->language->get('text_search_options');
$data['text_catalog'] = $this->language->get('text_catalog');
$data['text_customers'] = $this->language->get('text_customers');
$data['text_orders'] = $this->language->get('text_orders');
$data['text_catalog_placeholder'] = $this->language->get('text_catalog_placeholder');
$data['text_customers_placeholder'] = $this->language->get('text_customers_placeholder');
$data['text_orders_placeholder'] = $this->language->get('text_orders_placeholder');
$data['text_search_placeholder'] = $this->language->get('text_search_placeholder');
$data['user_token'] = $this->session->data['user_token'];
return $this->load->view('search/search', $data);
}
public function search(){
$this->load->language('search/search');
$data['text_products'] = $this->language->get('text_products');
$data['text_categories'] = $this->language->get('text_categories');
$data['text_manufacturers'] = $this->language->get('text_manufacturers');
$data['text_orders'] = $this->language->get('text_orders');
$data['text_order_id'] = $this->language->get('text_order_id');
$data['text_customers'] = $this->language->get('text_customers');
$data['text_no_result'] = $this->language->get('text_no_result');
$data['user_token'] = $this->session->data['user_token'];
if(!empty($this->request->get['query'])) {
$_data['query'] = $this->request->get['query'];
}
else{
$json['error'] = $this->language->get('text_empty_query');
}
if(!empty($this->request->get['search-option'])) {
$search_option = $this->request->get['search-option'];
}
else{
$search_option = 'catalog';
}
if(!empty($json['error'])) {
$this->response->setOutput(json_encode($json));
return;
}
$this->load->model('tool/image');
$data['no_image'] = $this->model_tool_image->resize('no_image.png', 30, 30);
$this->load->model('search/search');
switch($search_option) {
case 'catalog':
// Get products
$data['products'] = $this->model_search_search->getProducts($_data);
foreach($data['products'] as $key => $product){
if(!empty($product['image'])) {
$data['products'][$key]['image'] = $this->model_tool_image->resize($product['image'], 30, 30);
}
else{
$data['products'][$key]['image'] = $this->model_tool_image->resize('no_image.png', 30, 30);
}
$data['products'][$key]['url'] = $this->url->link('catalog/product/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $product['product_id'], true);
}
// Get categories
$data['categories'] = $this->model_search_search->getCategories($_data);
foreach($data['categories'] as $key => $category){
if(!empty($category['image'])) {
$data['categories'][$key]['image'] = $this->model_tool_image->resize($category['image'], 30, 30);
}
else{
$data['categories'][$key]['image'] = $this->model_tool_image->resize('no_image.png', 30, 30);
}
$data['categories'][$key]['url'] = $this->url->link('catalog/category/edit', 'user_token=' . $this->session->data['user_token'] . '&category_id=' . $category['category_id'], true);
}
// Get manufacturers
$data['manufacturers'] = $this->model_search_search->getManufacturers($_data);
foreach($data['manufacturers'] as $key => $manufacturer){
if(!empty($category['image'])) {
$data['manufacturers'][$key]['image'] = $this->model_tool_image->resize($manufacturer['image'], 30, 30);
}
else{
$data['manufacturers'][$key]['image'] = $this->model_tool_image->resize('no_image.png', 30, 30);
}
$data['manufacturers'][$key]['url'] = $this->url->link('catalog/manufacturer/edit', 'user_token=' . $this->session->data['user_token'] . '&manufacturer_id=' . $manufacturer['manufacturer_id'], true);
}
$json['result'] = $this->load->view('search/catalog_result', $data);
break;
case 'customers':
$data['customers'] = $this->model_search_search->getCustomers($_data);
foreach($data['customers'] as $key => $customer){
$data['customers'][$key]['url'] = $this->url->link('customer/customer/edit', 'user_token=' . $this->session->data['user_token'] . '&customer_id=' . $customer['customer_id'], true);
}
$json['result'] = $this->load->view('search/customers_result', $data);
break;
case 'orders':
$data['orders'] = $this->model_search_search->getOrders($_data);
foreach($data['orders'] as $key => $order){
$data['orders'][$key]['url'] = $this->url->link('sale/order/info', 'user_token=' . $this->session->data['user_token'] . '&order_id=' . $order['order_id'], true);
}
$json['result'] = $this->load->view('search/orders_result', $data);
break;
default:
break;
}
$this->response->setOutput(json_encode($json));
}
}