Forum Internet Service Backes

Bitte loggen sie sich ein oder registrieren sie sich.

Einloggen mit Benutzername, Passwort und Sitzungslänge
Erweiterte Suche  

Neuigkeiten:

Autor Thema: Produkte in mehere Kategorien verlinken - geht nich richtig  (Gelesen 3238 mal)

simpix

  • Gast
Produkte in mehere Kategorien verlinken - geht nich richtig
« am: 11 Oktober, 2006, 15:38:41 Nachmittag »

Hallo und Moin Moin, ich bin über eine Empfehlung in dieses Forum gestolpert und finde dieses Portal einfach klasse. Weiter so!

Ich hab da auch gleich mal eine Frage, vielleicht kann mir ja einer von euch sagen wie das richtig funktioniert - und zwar basteln wir gerade einen Shop, der eigentlich fast soweit fertig is, daß er an den Start gehen könnte bis auf eine Kleinigkeit die uns derbs Kopfschmerzen bereitet. In anderen einschlägigen Foren hab ich darüber nix gefunden, deshalb mal die Frage hier.

Also: wir haben z. B. ein (Zubehör)Produkt von einem Hersteller der mehrere Modelle von seinen Artikeln hat. Dieser Zubehörartikel ist ein Universalprodukt welches für mehrere Modelle geeignet ist. (z. B. ein CPU-Lüfter für Sockel A, Sockel 754 usw.).

Wir möchten es nun so realisieren das wir nun eben diesen Artikel (CPU-Lüfter) in z. B. die Kategorie A (Sockel A) per Hand einpflegen, und danach diesen Artikel in die Kategorie B (Sockel 754) verlinken möchten, da es sich ja um den selben Lüfter handelt der für beide Sockeltypen geeignet erscheint. Diese Funktion funktioniert im Admin einwandfrei.

Jetzt zum Problem: im Shopfrontend geht der Kunde nun meinetwegen auf Kategorie B, sieht in der Produkt-Liste den eben genannten Lüfter und klickt drauf um sich die Details anzusehen - was macht der Shop? Er springt in die Kategorie A, wo wir den Lüfter per Hand eingepflegt haben... und genau hier kommen wir nich weiter.

Frage also: Wie und vor allem wo muss der URL-Parameter aus der Produkt-Listing zusammengesetzt werden, damit in Kategorie B der Lüfter angezeigt wird und nicht Kategorie A?

Ist-URL = product_info.php?info=p87_ARTIKELNAME.html
Soll-URL = product_info.php?cat=c218&info=p87_ARTIKELNAME.html

Is dies nun zu kompliziert? Oder kann mir hier geholfen werden?

Viele Grüße simpix
Gespeichert

SNCJansen

  • Global Moderator
  • Senior
  • *****
  • Offline Offline
  • Beiträge: 424
    • Mein Arbeitgeber ;)
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #1 am: 12 Oktober, 2006, 11:22:02 Vormittag »

hi,

was is's euch denn wert? schliesslich macht ihr einigen von uns dann ja konkurrenz... :)
nein, scherz, hier meine newbie-hilfe...



also: erste änderung an xtc_href_link.inc.php in /inc:

suche:
    if (xtc_not_null($parameters)) {
      $link .= $page . '?' . $parameters;
      $separator = '&';
    } else {
      $link .= $page;
      $separator = '?';
    }

dahinter einfügen:
//SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
global $cPath;
if ($page == FILENAME_PRODUCT_INFO) {
$link .= $separator . 'cat=' . $cPath;
if ($separator == '?') $separator = '&';
}
//SNC001: END




und dann in /product_info.php

suche:
// include boxes
dahinter einfügen:
// SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
if ($_POST['cat'] != '') {
$given_cat = (int)$_POST['cat'];
}
// SNC001: END

und suche:
if ($catData['categories_id'])
$cPath = xtc_input_validation(xtc_get_path($catData['categories_id']), 'cPath', '');

dahinter einfügen:
// SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
if ($given_cat)
$cPath = xtc_input_validation(xtc_get_path($given_cat), 'cPath', '');
// SNC001: END




so, das sollte es gewesen sein!

gruss
rené
Gespeichert

simpix

  • Gast
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #2 am: 12 Oktober, 2006, 12:46:25 Nachmittag »

Hi René, erstma vielen Dank für deine Hilfe.  ;)

Also zum einen is dieses lästige springen in die Ursprungskategorie durch die o. g. Änderung weg. Soweit so gut.

Nu kommt aber leider ein großes ABER:
Beim Klick auf einen verlinkten Artikel in der Unterkategorie schließt sich nun die komplette Kategoriebox in sofern das nur noch die Hauptkategorie mit Ihren Untekategorien in 1. Ebene zu sehen is - und der Link des Artikels sieht nun so aus:

.../product_info.php?info=p149_ARTIKELNAME.html&cat=10_216_704

Ist somit leider nich 100%ig richtig.

Damit es geht muss es meiner Meinung nach so aussehn: ...?cat=c704&info=p149_ARTIKELNAME.html

Aber der Lösungsansatz scheint gefunden zu sein, danke nochmals dafür... wir sind aber weiterhin für jeden weitern Denkanstoß offen.

Wir halten diese Funktion nämlich für einen Riesenbug, da es normalerweise nich angehen kann, daß im Admin die Produkte in der richten Kategorie angezeigt werden, in der Datenbank stimmt die Tabelle products_to_categories auch soweit.. nur das Frontend is verbugt.. wie so oft...

Btw: wir arbeiten nicht in der PC-Hardware-Branche - das oben is nur n Beispiel... :)
« Letzte Änderung: 12 Oktober, 2006, 12:50:50 Nachmittag von simpix »
Gespeichert

SNCJansen

  • Global Moderator
  • Senior
  • *****
  • Offline Offline
  • Beiträge: 424
    • Mein Arbeitgeber ;)
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #3 am: 12 Oktober, 2006, 13:17:02 Nachmittag »

nun, obwohl ich nicht verstehe, warum es so wild ist, in welcher reihenfolge die parameter nun da stehe, hier ein tipp:

also: erste änderung an xtc_href_link.inc.php in /inc:

suche:
    if (xtc_not_null($parameters)) {
      $link .= $page . '?' . $parameters;
      $separator = '&';
    } else {
      $link .= $page;
      // $separator = '?';
    }

dahinter einfügen (NEU: JETZT DAVOR EINFÜGEN !!!!!):
//SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
global $cPath;
$pathtocat = explode ("_", $cPath);
$cattosend = $pathtocat[count($pathtocat)-1];
if ($cattosend && $page == FILENAME_PRODUCT_INFO) {
if ($parameters != '') $parameters = '&' . $parameters;
$newparameters = 'cat=' . $cattosend . $parameters;
$parameters = $newparameters;
}
//SNC001: END





und dann in /product_info.php (WIE VORHER!!!)

suche:
// include boxes
dahinter einfügen:
// SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
if ($_POST['cat'] != '') {
$given_cat = (int)$_POST['cat'];
}
// SNC001: END

und suche:
if ($catData['categories_id'])
$cPath = xtc_input_validation(xtc_get_path($catData['categories_id']), 'cPath', '');

dahinter einfügen:
// SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
if ($given_cat)
$cPath = xtc_input_validation(xtc_get_path($given_cat), 'cPath', '');
// SNC001: END




so, das sollte es gewesen sein!

gruss
rené


ps: damit sollten beide "probleme" weg sein...
Gespeichert

simpix

  • Gast
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #4 am: 12 Oktober, 2006, 13:27:24 Nachmittag »

Du weißt gar nicht wie glücklich du uns damit gemacht hast... echt 1000 Dank dafür.

Die 2. Lösung funzt tadellos. Wenn man den ganzen Tag diese kleine Nadel im Heuhaufen sucht findet man nur getarnte Strohhalme...

Danke!
Gespeichert

SNCJansen

  • Global Moderator
  • Senior
  • *****
  • Offline Offline
  • Beiträge: 424
    • Mein Arbeitgeber ;)
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #5 am: 12 Oktober, 2006, 13:43:51 Nachmittag »

gern geschehen, sind ja noch "kleinigkeiten" ;)
Gespeichert

simpix

  • Gast
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #6 am: 15 Oktober, 2006, 13:40:51 Nachmittag »

Hallo  nochma...

mir is da zu diesem Thema noch was aufgefallen, und zwar wenn man nun in einer Kategorie (CPU-Lüfter) z. B. die Übersicht der neuen Artiekl sich anschaut, und dann auf einen Artikel klickt der in einer Unterkategorie (Sockel 754) verlinkt wurde, wird der Artikel angezeigt, aber die Kategoriebox bleibt auf der 1. Ebene (CPU-Lüfter) stehen, und springt nicht in die dazugehörige Kategorie, und somit hat der Kunde z. B. auch keine Möglichkeit nach eben diesem Klick den Produktnavigator zu nutzen, um in der Kategorie zu blättern, da die Hauptkategorie (CPU-Lüfter) keine eigenen Artikel beinhaltet, sondern nur seine "Untertanen".

Kann man das durch Anpassen des Quelltextes noch irgendwie hinbiegen, oder liegt das evtl. daran, daß der Shop nur bis zu einer gewissen Kategorietiefe die Links richtig zusammenstellt?
Gespeichert

SNCJansen

  • Global Moderator
  • Senior
  • *****
  • Offline Offline
  • Beiträge: 424
    • Mein Arbeitgeber ;)
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #7 am: 16 Oktober, 2006, 15:41:53 Nachmittag »

du kannst folgendes probieren:

in der xtc_href_link änderst du den von mir gebauten block
//SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
global $cPath;
$pathtocat = explode ("_", $cPath);
$cattosend = $pathtocat[count($pathtocat)-1];
if ($cattosend && $page == FILENAME_PRODUCT_INFO) {
if ($parameters != '') $parameters = '&' . $parameters;
$newparameters = 'cat=' . $cattosend . $parameters;
$parameters = $newparameters;
}
//SNC001: END

in diesen:
//SNC001: IS THERE A GIVEN CAT FOR THIS PRODUCT?
global $cPath;
$pathtocat = explode ("_", $cPath);
$cattosend = $pathtocat[count($pathtocat)-1];
if ($cattosend && $page == FILENAME_PRODUCT_INFO && !(stristr($parameters, 'cat='))) {
if ($parameters != '') $parameters = '&' . $parameters;
$newparameters = 'cat=' . $cattosend . $parameters;
$parameters = $newparameters;
}
//SNC001: END

und die Datei "includes/modules/new_products.php" sowie, die anderen, wo es noch notwendig ist wie folgt:
suche dir zeilen, die solchen inhalt haben:
'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO,
und ändere diese nach diesem schema (auf variablennamen achten!), hier am beispiel new_products.php:
'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, 'cat=' . $new_products['categories_id'] . '&' .
das sollte helfen...
Gespeichert

simpix

  • Gast
Re: Produkte in mehere Kategorien verlinken - geht nich richtig
« Antwort #8 am: 16 Oktober, 2006, 19:10:38 Nachmittag »

...ouh.. shit.. ich hab vergessen zu erwähnen das wir das SP2 bereits im Einsatz haben.. sorry.  ::)

In der ...modules/new_products.php sind derartige Eintragungen nich gegeben, da sind seit dem SP2 nur noch recht wenig Spielerein erlaubt, die Entwickler haben da so einiges ausgelagert, bzw. umgelagert auf eine neue products.php.

In der ../includes/classes/products.php findet man den "PRODUCTS_LINK... " - Eintrag, den man wie folgt ändert:

aus:
'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),

wird
'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, 'cat=' . $array['categories_id'] . '&' . xtc_product_link($array['products_id'], $array['products_name'])),

Jetzt funzt's!

Vielen Dank für die Hilfe, und schöne Grüße aus dem Norden.

P.S.: leider zu früh gefreut... die Änderung an der xtc_href_link_inc.php (glaub ich) hebelt die korrekte Verlinkung aus der product_listing.php aus, die "cat="ID wird nich mit übergeben... ich dreh noch mal am Rad bei diesem Shop...

der link aus der product_listing: product_info.php?cat=&info=ID&Artikelname... es fehlt die catID...

(Ich hätt mein PHP-Buch schon längst durch haben können.. aber Cheffe raubt einem die Zeit... es geht momentan alles Schlag auf Schlag, von daher hoff ich das Ihr mit mir ein wenig Geduld habt :) )
« Letzte Änderung: 16 Oktober, 2006, 21:22:18 Nachmittag von simpix »
Gespeichert