okay, bin wieder einen Schritt weiter. Die Suche nach dem Hersteller funktioniert nun. Dafür sind folgende Dinge notwendig:
Ersetze
$searchConfig = array( 'USE_SUMA_LINKS' => true, // Would you like SUMA Links? Possible values: true / false. Standard: true 'SEARCH_IN_PRODUCTS_NAME' => true, // Would you like to search in the product names? Possible values: true / false. Standard: true durch
$searchConfig = array( 'USE_SUMA_LINKS' => true, // Would you like SUMA Links? Possible values: true / false. Standard: true 'SEARCH_IN_PRODUCTS_NAME' => true, // Would you like to search in the product names? Possible values: true / false. Standard: true 'SEARCH_IN_MANUFACTURERS_NAME' => true, // Would you like to search in the manufacturers names? Possible values: true / false. Standard: true füge nach
} else {
$where_str .= "pd.products_name LIKE '%" . $keyword . "%' ";
$where_str .= ($ent_keyword) ? "OR pd.products_name LIKE ('%".$ent_keyword."%') " : '';
}
$firstItem=false;
}
dieses ein
//Search in manufacturers_nameif($searchConfig['SEARCH_IN_MANUFACTURERS_NAME'] == 1) { !$firstItem ?
$where_str.=" OR " : false; if($searchConfig['SEVERAL_KEYWORDS_AND'] == 1) { $temp_ary = explode(' ', $keyword); $temp_ary2 = array(); for ( $i = 0; $i < count($temp_ary); ++$i ) { $temp_ary2[] = " m.manufacturers_name LIKE '%" . $temp_ary[$i] . "%' "; } if ( count($temp_ary2) > 0 ) { $where_str.= ' ( ' . implode(' AND ', $temp_ary2) . ' ) '; } if ($ent_keyword) { $temp_ary = explode(' ', $ent_keyword); $temp_ary2 = array(); for ( $i = 0; $i < count($temp_ary); ++$i ) { $temp_ary2[] = " p.manufacturers_name LIKE '%" . $temp_ary[$i] . "%' "; } if ( count($temp_ary2) > 0 ) { $where_str.= ' OR ( ' . implode(' AND ', $temp_ary2) . ' ) '; } } } else { $where_str .= "p.manufacturers_name LIKE '%" . $keyword . "%' "; $where_str .= ($ent_keyword) ?
"OR p.manufacturers_name LIKE ('%".$ent_keyword."%') " : ''; } $firstItem=false;} Ersetze
$sql_str = "
SELECT
p.products_id,
p.products_tax_class_id,
p.products_price,
p.products_image,
pd.products_name,
pd.products_short_description,
p2c.categories_id,
c.categories_status,
cd.categories_name,
FROM
" . TABLE_PRODUCTS . " p
LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON p.products_id = pd.products_id
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p2c.products_id = pd.products_id
LEFT JOIN " . TABLE_CATEGORIES . " c ON c.categories_id = p2c.categories_id
LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON c.categories_id = cd.categories_id
WHERE
mit
$sql_str = "
SELECT
p.products_id,
p.products_tax_class_id,
p.products_price,
p.products_image,
pd.products_name,
pd.products_short_description,
p2c.categories_id,
c.categories_status,
cd.categories_name,
m.manufacturers_id,
m.manufacturers_name
FROM
" . TABLE_PRODUCTS . " p
LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON p.products_id = pd.products_id
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p2c.products_id = pd.products_id
LEFT JOIN " . TABLE_CATEGORIES . " c ON c.categories_id = p2c.categories_id
LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON c.categories_id = cd.categories_id
LEFT JOIN " . TABLE_MANUFACTURERS . " m ON m.manufacturers_id = p.manufacturers_id
WHERE
Nur steht jetzt noch eine weitere Frage offen: wie kann ich die Suchabfrage kombinieren, so dass er auch Teile der Suche in allen Feldern prüft?
Denn aktuell sieht es wie folgt aus:
Artikelname: "Testartikel rot kariert hochkant"
Hersteller: "Hersteller ABC"
-> jetzt kann man entweder nach "Hersteller" suchen, dann wird "Hersteller ABC" angezeigt, suche ich nach "Testartikel" wird der "Testartikel rot kariert hochkant" angezeigt.
ABER: Suche ich Nach "Testartikel ABC" oder "Hersteller rot kariert" o.ä. wird keines von beiden angezeigt.
Das liegt scheinbar am Modul selbst. Zumindest, scheint es mir, dass er auch keinerlei Kombinationen aus den anderen wählbaren Suchkriterien kann, z.B. Artikelname und Artikelnummer usw.
Hat einer eine Idee, wo man ansetzen muss damit eine Kombination aus den gewählten Suchkriterien möglich ist?
Grüße
Dominik