Jump to content
xt:Commerce Community Forum

[SOLVED] Hersteller bei Artikel detail ansicht anzeigen


Dress

Recommended Posts

  • Replies 102
  • Created
  • Last Reply

meine Nerven, sorry

es es ja nicht so, dass man nicht gern hilft ( es gibt ja genug von mir im Forum ),

aber manchmal ist es einfach too much ....

Natürlich geht man immer von seinem eigenen Wissen aus - aber das ist hart erarbeitet - mit Lesen, lesen , lesen - wie sagte doch der Fernsehkoch Marquart mal: Weine muss man sich "ersaufen" :-)

Grüsse

Link to comment
Share on other sites

  • 1 month later...

Alternativ zu den bereits in diesem Thread gemachten Vorschlägen ist es auch möglich die Template-Daten-Arrays für die Verwendung in den Templates um beliebige Manufacturer-Daten zu erweitern.

WICHTIG:

Die hierfür notwendigen Anpassungen an den nachfolgend genannten "xtCore"-Dateien ist natürlich eher eine Sache die man nur machen sollte, wenn man mit Plugins nicht weiter kommt. Dennoch wird der Vollständigkeit halber hier diese Variante genannt.

Dabei können folgende Manufacturer-Daten ausgegeben werden:

Array

(

    [manufacturers_id] => 1

    [external_id] => TEXT_EXTERNAL_ID

    [manufacturers_name] => Manufacturer Name

    [manufacturers_image] => 

    [manufacturers_status] => 1

    [date_added] => 

    [last_modified] => 2011-07-01 13:13:13

    [language_code] => de

    [manufacturers_description] => Beschreibung zum Manufacturer

    [manufacturers_url] => 

    [url_md5] => a1b17e701803fc1498c2ad7615c827b8

    [url_text] => de/Manufacturer Name

    [link_type] => 4

    [link_id] => 10

    [meta_title] => Meta-Title

    [meta_description] => Meta-Description

    [meta_keywords] => Keyword1, Keyword2, ...

)

Szenario 1: Verwenden von Manufacturer-Daten im Produktlisting.

In diesem Beispiel füge ich aus obigem PHP-Array den Wert "manufacturer_name" in das Produktlisting ein um diesen Wert dann im Produktlisten-Template verwenden zu können.

Hierfür die Datei "/xtCore/pages/categories.php" in ca. Zeile 84 anpassen und direkt nach folgendem Code:

if (isset($_GET['mnf'])) {
$heading_text= sprintf(HEADING_PRODUCTS_MANUFACTURERS, $man_data['NAME']) ;
$manufacturers_dropdown = $category->getCategoriesDropDown($manID);
}[/PHP]

diesen Code einfügen:

[PHP]foreach($tpl_product_listing as $k=>$v) {
if(empty($v['manufacturers_id'])) continue;
$man_data = $manufacturer->getManufacturerData($v['manufacturers_id']);
$tpl_product_listing[$k]['manufacturer_name'] = $man_data['manufacturers_name'];
}[/PHP]

[b]Szenario 3: Verwenden von Manufacturer-Daten in der Produktdetailansicht.[/b]

In diesem Beispiel füge ich aus obigem PHP-Array den Wert "manufacturer_name" in den Template-Datenarray ein um diesen Wert dann im Produktdetailansicht-Template verwenden zu können.

Hierfür die Datei "/xtCore/pages/product.php" in ca. Zeile 57 anpassen und direkt nach folgendem Code:

[PHP]$p_info->getBreadCrumbNavigation($current_product_id);
$template = new Template();
$tpl_data = $p_info->data;[/PHP]

diesen Code einfügen:

[PHP]if(!empty($tpl_data['manufacturers_id'])) {
$man_data = $manufacturer->getManufacturerData($tpl_data['manufacturers_id']);
$tpl_data['manufacturer_name'] = $man_data['manufacturers_name'];
}[/PHP]

Nach diesen Änderungen kann man die auf diese Weise in die Produktdaten-Arrays eingefügten Werte direkt auf die gewohnte Weise im Template via Smarty ansprechen.

Am Beispiel der Produktdetailseite z.B. so:

[HTML]{if $manufacturer_name!=''}<div>{txt key=TEXT_MANUFACTURER}: <a href="./index.php?page=manufacturers&mnf={$manufacturers_id}" title="{$manufacturer_name}: {txt key=TEXT_MANUFACTURER_SHOW_PRODUCTS}">{$manufacturer_name}</a></div>{/if}[/HTML]

[i]Nochmal der Hinweis, dass grundsätzlich eine Lösung via Plugin der sauberere Weg ist![/i]

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

Hallo zusammen,

ich muss das Thema wieder aufgreifen.

Ich versuche gerade eine separate Leiste unterhalb des Contents inkl. aller vorhandener Hersteller Logos einzubauen.

Wenn ich die Herstellerbox umbaue und an meiner gewünschten Position unterhalb des Contents darstelle funktioniert es. Da ich u.U. die orginal Herstellerbox noch benötige habe ich mir eine neue Herstellerbox angelegt. Diese funktioniert jedoch nicht...

Prinzipiell bräuchte ich nur die Variable mit der ich alle Herstellerlogos abrufen und mit dem jeweiligen Link versehen. Ich habe das MZ Plugin eingespielt. Auf der Produktseite funktioniert es einwandfrei, wenn ich versuche mir die Daten in der index.html ausgeben zu lassen streikt etwas.

Woran liegt das? Gibts hierbei einen Trick?

Grüße

Michael

Link to comment
Share on other sites

  • 9 months later...
  • 2 months later...

Das Plugin funktioniert super.

Eine Sache ist mir aber aufgefallen:

Die Herstellerinformationen funktionieren super auch im product_listing. Aber den Namen bspw. bekomme ich einfach nicht in die cross_selling.html.

Ich habe folgendes dort eingefügt:

{box name=mz_box_hersteller type=user manufacturer=$module_data.manufacturers_id}[/CODE]

Hat jemand eine Idee, woran das liegen könnte?

Danke!

Link to comment
Share on other sites

  • 9 months later...

Ich habe das Plugin der Hersteller Box in der 4.1 Version installiert. Das funktioniert schonmal. Ich bekomm es aber nicht gebacken, mir den Herstellernamen im product_listing.html und product.html ausgeben zu lassen.

Haben sich die Variablen verändert? In einer älteren Version ging dies noch mit {$manufacturer_name} in der product.html. Weiß bloß nicht, ob ich damals noch andere Einstellungen/Änderungen vorgenommen hatte.

Hat da schon jemand Erfahrungen gesammelt?

Link to comment
Share on other sites

Ich habe das Plugin der Hersteller Box in der 4.1 Version installiert. Das funktioniert schonmal. Ich bekomm es aber nicht gebacken, mir den Herstellernamen im product_listing.html und product.html ausgeben zu lassen.

Haben sich die Variablen verändert? In einer älteren Version ging dies noch mit {$manufacturer_name} in der product.html. Weiß bloß nicht, ob ich damals noch andere Einstellungen/Änderungen vorgenommen hatte.

Hat da schon jemand Erfahrungen gesammelt?

Plugin aktivieren,

{box name=mz_box_hersteller type=user manufacturer=$manufacturers_id}

in zbsp xt_grid/xtcore/pages/produc/product.html an entsprechende stelle einbinden ;)

Link to comment
Share on other sites

Plugin aktivieren,

{box name=mz_box_hersteller type=user manufacturer=$manufacturers_id}

in zbsp xt_grid/xtcore/pages/produc/product.html an entsprechende stelle einbinden ;)

Danke, hatte ich aber bereits ohne Erfolg ausprobiert :( Bei mir passiert da rein gar nichts....

Link to comment
Share on other sites

  • 1 year later...
  • 4 months later...

Das Plugin könnte möglicherweise auch für SQL-Injections ausgenutzt werden. Größere Anpassungen wären nicht notwendig, um dies zu verhindern. Unter welcher Lizenz wurde das Plugin veröffentlicht und erlaubt diese eine Veränderung?

Link to comment
Share on other sites

  • 8 months later...
On 24.11.2009 at 10:49 AM, mzanier said:

Anbei ein Plugin welches als Box integriert werden kann.

 

Im Produkt Info Template kann dann der Hersteller zb mit {box name=mz_box_hersteller type=user manufacturer=$manufacturers_id} ausgegeben werden.

mz_box_hersteller.zip

Kann vielleicht jemand die Datei noch einmal hochladen?
Das Archiv scheint beschädigt zu sein.

 

Danke & Gruss

Link to comment
Share on other sites

  • 2 weeks later...

Bei mir das gleiche Spiel, lädt nur eine beschädigte 1kb Datei herunter.
Oder gibt's bei aktuellsten Veyton 4.2 eine alternative Methode?

Am liebsten wäre mir eine flotte, funktionierende Anleitung, dass ich's wie üblich ohne Plugin rein bekomme, sprich einfach {$manufacturers_name} in die product.html

4 minutes ago, Jobsti said:

Edit

 

Link to comment
Share on other sites

unelegant gehts einfach mit inline-php:

{php}
global $db;
$m_id = $this->get_template_vars('manufacturers_id');
$rs = $db->Execute("SELECT manufacturers_name FROM ".TABLE_MANUFACTURERS." WHERE manufacturers_id = '".$m_id."'");
$this->assign('manufacturers_name', $rs->fields['manufacturers_name']);
{/php}                

dann steht {$manufacturers_name} im Template zur Verfügung.

besser wäre natürlich ein Hookpoint ( z.B. "class.product.php:BuildData_bottom" ) den man in irgendein Plugin einbaut, wenn man kein eigenes für solche Zwecke hat ( z.B. xt_special_products ), der sähe dann so aus ( CODE ):

global $db;
$rs = $db->Execute("SELECT manufacturers_name FROM ".TABLE_MANUFACTURERS." WHERE manufacturers_id = '".$this->data['manufacturers_id']."'");
$this->data['manufacturers_name'] = $rs->fields['manufacturers_name'];

Der Vorteil ist, dass dann der Hersteller-Name auch im Produkt-Listing und diversen Plugins zur Verfügung steht.

 

 

 

Grüsse

 

Link to comment
Share on other sites

  • 3 weeks later...

Top, funktioniert.

Backend -> Plugins -> xt_special_products -> Hookpoints -> New

Hook: class.product.php:BuildData_bottom
Code:
global $db;
$rs = $db->Execute("SELECT manufacturers_name FROM ".TABLE_MANUFACTURERS." WHERE manufacturers_id = '".$this->data['manufacturers_id']."'");
$this->data['manufacturers_name'] = $rs->fields['manufacturers_name'];

 

Und im Template einfach nur:

        {if $manufacturers_name != ''}
       <br><span class="product-infos"><b>{txt key=TEXT_MANUFACTURER}: </b>{$manufacturers_name}</span>

        {/if}



Was muss noch dazu, wenn ich auch den Herstellerlink abfragen will, also das ProductListing dieser Hersteller-Produkte?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
  • Create New...