keywords2categories / api / autocomplete / autocomplete.php @ 6
Historie | Anzeigen | Annotieren | Download (5,4 KB)
1 | 1 | root | <?php
|
---|---|---|---|
2 | /* -----------------------------------------------------------------------------------------
|
||
3 | $Id: autocomplete.php 13450 2021-03-05 16:29:46Z GTB $
|
||
4 | |||
5 | modified eCommerce Shopsoftware
|
||
6 | http://www.modified-shop.org
|
||
7 | |||
8 | Copyright (c) 2009 - 2013 [www.modified-shop.org]
|
||
9 | -----------------------------------------------------------------------------------------
|
||
10 | Released under the GNU General Public License
|
||
11 | ---------------------------------------------------------------------------------------*/
|
||
12 | |||
13 | chdir('../../'); |
||
14 | include('includes/application_top.php'); |
||
15 | |||
16 | |||
17 | // include needed functions
|
||
18 | require_once (DIR_FS_INC.'xtc_parse_search_string.inc.php'); |
||
19 | |||
20 | $module_smarty = new Smarty; |
||
21 | $module_smarty->assign('language', $_SESSION['language']); |
||
22 | |||
23 | 3 | root | if (isset($_POST['queryString'])) { |
24 | 1 | root | $from_str = $where_str = ''; |
25 | |||
26 | $queryString = stripslashes(trim(decode_utf8(urldecode($_POST['queryString'])))); |
||
27 | $categories_id = !empty($_POST['categories_id']) ? (int)$_POST['categories_id'] : false; |
||
28 | $inc_subcat = !empty($_POST['inc_subcat']) ? (int)$_POST['inc_subcat'] : null; |
||
29 | |||
30 | // create $search_keywords array
|
||
31 | $keywordcheck = xtc_parse_search_string($queryString, $search_keywords); |
||
32 | 3 | root | |
33 | 1 | root | if ($keywordcheck === true && mb_strlen($queryString, $_SESSION['language_charset']) >= SEARCH_AC_MIN_LENGTH) { |
34 | |||
35 | $from_str .= SEARCH_IN_ATTR == 'true' ? " LEFT OUTER JOIN ".TABLE_PRODUCTS_ATTRIBUTES." AS pa ON (p.products_id = pa.products_id) |
||
36 | LEFT OUTER JOIN ".TABLE_PRODUCTS_OPTIONS_VALUES." AS pov ON (pa.options_values_id = pov.products_options_values_id) " : ""; |
||
37 | $from_str .= SEARCH_IN_MANU == 'true' ? " LEFT OUTER JOIN ".TABLE_MANUFACTURERS." AS m ON (p.manufacturers_id = m.manufacturers_id) " : ""; |
||
38 | |||
39 | if (SEARCH_IN_FILTER == 'true') { |
||
40 | $from_str .= "LEFT JOIN ".TABLE_PRODUCTS_TAGS." pt ON (pt.products_id = p.products_id) |
||
41 | LEFT JOIN ".TABLE_PRODUCTS_TAGS_VALUES." ptv ON (ptv.options_id = pt.options_id AND ptv.values_id = pt.values_id AND ptv.status = '1' AND ptv.languages_id = '".(int)$_SESSION['languages_id']."') "; |
||
42 | } |
||
43 | |||
44 | //include subcategories if needed
|
||
45 | if ($categories_id !== false) { |
||
46 | if ($inc_subcat == '1') { |
||
47 | $subcategories_array = array(); |
||
48 | xtc_get_subcategories($subcategories_array, $categories_id); |
||
49 | $from_str .= " LEFT OUTER JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." AS p2c ON (p.products_id = p2c.products_id) "; |
||
50 | $where_str .= " AND p2c.categories_id IN ('".$categories_id."' "; |
||
51 | foreach ($subcategories_array AS $scat) { |
||
52 | $where_str .= ", '".$scat."'"; |
||
53 | } |
||
54 | $where_str .= ") "; |
||
55 | } else {
|
||
56 | $from_str .= " LEFT OUTER JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." AS p2c ON (p.products_id = p2c.products_id) "; |
||
57 | $where_str .= " AND p2c.categories_id = '".$categories_id."' "; |
||
58 | } |
||
59 | } |
||
60 | |||
61 | include(DIR_WS_INCLUDES.'build_search_query.php'); |
||
62 | |||
63 | $where_str .= " ) "; |
||
64 | |||
65 | $autocomplete_search_query = "SELECT ".$product->default_select." |
||
66 | FROM ".TABLE_PRODUCTS." p |
||
67 | JOIN ".TABLE_PRODUCTS_DESCRIPTION." pd |
||
68 | ON p.products_id = pd.products_id
|
||
69 | AND pd.language_id = '".(int)$_SESSION['languages_id']."' |
||
70 | AND trim(pd.products_name) != ''
|
||
71 | ".$from_str." |
||
72 | WHERE p.products_status = '1'
|
||
73 | ".$where_str." |
||
74 | ".PRODUCTS_CONDITIONS_P." |
||
75 | GROUP BY p.products_id
|
||
76 | ORDER BY p.products_id ASC
|
||
77 | LIMIT ".MAX_DISPLAY_ADVANCED_SEARCH_RESULTS; |
||
78 | 3 | root | |
79 | # Modul Kategorie-Keywords: Erg?nzung relevanter Artikel IDs
|
||
80 | if(defined('MODULE_CATEGORY_KEYWORDS_STATUS') |
||
81 | && MODULE_CATEGORY_KEYWORDS_STATUS == 'True'){ |
||
82 | require_once (DIR_WS_INCLUDES.'extra/default/listing_sql/category_keywords.php'); |
||
83 | # Erg?nzung relevanter Artikel IDs
|
||
84 | if(isset($arr_included_products)){ |
||
85 | $autocomplete_search_query = str_replace("AND ( (", "AND ( ( p.products_id IN (".join($arr_included_products, ",") . ") OR ", $autocomplete_search_query); |
||
86 | } |
||
87 | # Erg?nzung relevanter Kategorien
|
||
88 | if(count($categories_keyword_content) > 0) { |
||
89 | $module_smarty->assign('categories_content', $categories_keyword_content); |
||
90 | } |
||
91 | } |
||
92 | 1 | root | $autocomplete_search_query = xtc_db_query($autocomplete_search_query); |
93 | if (xtc_db_num_rows($autocomplete_search_query) > 0) { |
||
94 | $module_content = array(); |
||
95 | while ($autocomplete_search = xtc_db_fetch_array($autocomplete_search_query)) { |
||
96 | $module_content[] = $product->buildDataArray($autocomplete_search); |
||
97 | } |
||
98 | $module_smarty->assign('module_content', $module_content); |
||
99 | } else {
|
||
100 | $module_smarty->assign('error', 'true'); |
||
101 | } |
||
102 | $module_smarty->caching = 0; |
||
103 | $module_smarty->display(CURRENT_TEMPLATE.'/module/autocomplete.html'); |
||
104 | } |
||
105 | } |
||
106 | ?> |