Jump to content
xt:Commerce Community Forum
Sign in to follow this  
Dress

[SOLVED] Hersteller bei Artikel detail ansicht anzeigen

Recommended Posts

...das steht dann wohl in Beitrag 38 und 39 dieses Threads. Manchmal guckt man irgendwie nicht richtig hin.

Tut mir Leid, dass ich so blöd bin. Danke trotzdem für die "nette" Hilfe.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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]

Edited by cysk
Ergänzung: Beispiel für Smarty-Template hinzugefügt.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Ich weiß nicht ob es daran liegt, dass ich Version 4.0.14 habe, aber ich bekomme das Plugin einfach nicht im Backend angezeigt. Habe alle möglichem vorher beschriebenen Einstellungen befolgt, aber keine Chance. Hat jemand noch eine Idee?

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
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?

Share this post


Link to post
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 ;)

Share this post


Link to post
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....

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
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

 

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...