Du mußt trennen zwischen SEO-Gesichtspunkten
- was die Frage anbelangt ob Herstellername und/oder Artikelnummer im h1-tag des Artikelnamens, im (meta)-title, in der meta-deacription usw. vorkommt -
und den Such-Gesichtspunkten.
Per Default kann das Shop-System Herstellernamen nur finden wenn sie im Produktnamen oder in der Produktbeschreibung vorkommen. Was den Produktnamen betrifft natürlich dann nicht wenn der Herstellername erst im Template an den Produktnamen angefügt wird, also nicht im DB-Feld
products_name steht.
Du könntest die
/advanced_search_result.php jedoch so erweitern, daß sie auch die Herstellernamen findet, insofern sie im Backend angegeben sind und somit in der Datenbank für das jeweilige Produkt stehen (DB-Feld
manufacturers_id in Tabelle
products).
Dafür müsstest du
- den $from_string so erweitern, daß er einen JOIN auf die Tabelle manufacturers macht um an den Herstellernamen zu kommen welcher in letztgenannter Tabelle steht
Aus diesem
$from_str = "FROM ".TABLE_PRODUCTS." AS p LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id) ";
das machen
//BOC find also manufacturer, noRiddle
//$from_str = "FROM ".TABLE_PRODUCTS." AS p LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id) ";
$from_str = "FROM ".TABLE_PRODUCTS." AS p LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." AS pd ON (p.products_id = pd.products_id) LEFT JOIN ".TABLE_MANUFACTURERS." AS m ON p.manufacturers_id = m.manufacturers_id ";
//EOC find also manufacturer, noRiddle
und
- den $where_str erweitern indem du
unter diesem
$where_str .= "OR p.products_manufacturers_model LIKE ('%".$keyword."%') ";
$where_str .= $ent_keyword ? "OR p.products_manufacturers_model LIKE ('%".$ent_keyword."%') " : '';
das einfügst
//BOC find also manufacturer, noRiddle
$where_str .= "OR m.manufacturers_name LIKE ('%".$keyword."%') ";
$where_str .= $ent_keyword ? "OR m.manufacturers_name LIKE ('%".$ent_keyword."%') " : '';
//EOC find also manufacturer, noRiddle noRiddle
Willst du außerdem den Herstellernamen in den Produkten des Suchergebnisses ausgeben solltest du
$add_select noch so erweitern
$add_select = 'p.products_manufacturers_model,m.manufacturers_name,';
Um den Herstellernamen auch wirklich für das jeweilige Produkt im Listing der Ergebnisse zur Verfügung zu haben mußt du dann noch in
/includes/classes/product.php im
$productData-Array unter diesem
'PRODUCTS_MANUFACTURERS_MODEL' => isset($array['products_manufacturers_model']) ?
$array['products_manufacturers_model'] : '', das einfügen
//BOC have manufacturers_name in search results (see /advanced_search_results.php), noRiddle
'PRODUCTS_MANUFACTURERS_NAME' => $array['manufacturers_name'],
//EOC have manufacturers_name in search results (see /advanced_search_results.php), noRiddle
Im Template
/templates/module/product_listing_*.html kannst du den Herstellernamen dann wie folgt verwenden:
{*BOC manufacturers_name for search results, noRiddle*}
{if $module_data.PRODUCTS_MANUFACTURERS_NAME}
<p>{$module_data.PRODUCTS_MANUFACTURERS_NAME}</p>
{/if}
{*EOC manufacturers_name for search results, noRiddle*}
Bei den Kommentaren
- die ich immer empfehlen würde wenn man etwas am Code ändert -
kannst du natürlich dein eigenes Kürzel verwenden.
Gruß,
noRiddle
*NACHTRAG*
Sehe gerade, daß
web0null hier im Thread bereits eine Anleitung gepostet hat, sogar mit Einstellungsmöglichkeit im Backend...