Hallo zusammen,
ich verwende die Anzeige von Child-Artikeln in den Artikelübersichten bzw. Listen. Ich möchte für die Child-Artikel auch die Durchschnittsbewertungen anzeigen lassen. JTL speichert jedoch die Bewertungen immer auf dem Vaterartikel. Das Template versucht dann somit an Hand der Artikelnummer des Child-Artikels die Durchschnittsbewertung abzurufen, die dann natürlich nicht vorhanden ist (da nur auf dem Vaterartikel vorliegend).
Ich habe versucht eine Funktion per PHP zu bauen, die die Vaterartikelnummer bei Child-Artikeln für die fDurchschnittsbewertung bereitstellt. Leider bekomme ich die PHP Datei bzw. Funktion nicht geladen und weiß auch gar nicht so richtig wie ich diese "Global" einwandfrei zur Verfügung stelle bzw. automatisch geladen wird.
ich habe folgende Anpassung in der .tpl vorgenommen und eine php Datei erstellt. Diese habe ich versucht über smartyinclude.php oder globalincludes.php einzubinden.
Das ist die PHP Funktion:
Ich bin für jeden Tipp dankbar!
ich verwende die Anzeige von Child-Artikeln in den Artikelübersichten bzw. Listen. Ich möchte für die Child-Artikel auch die Durchschnittsbewertungen anzeigen lassen. JTL speichert jedoch die Bewertungen immer auf dem Vaterartikel. Das Template versucht dann somit an Hand der Artikelnummer des Child-Artikels die Durchschnittsbewertung abzurufen, die dann natürlich nicht vorhanden ist (da nur auf dem Vaterartikel vorliegend).
Ich habe versucht eine Funktion per PHP zu bauen, die die Vaterartikelnummer bei Child-Artikeln für die fDurchschnittsbewertung bereitstellt. Leider bekomme ich die PHP Datei bzw. Funktion nicht geladen und weiß auch gar nicht so richtig wie ich diese "Global" einwandfrei zur Verfügung stelle bzw. automatisch geladen wird.
ich habe folgende Anpassung in der .tpl vorgenommen und eine php Datei erstellt. Diese habe ich versucht über smartyinclude.php oder globalincludes.php einzubinden.
{extends file="{$parent_template_path}/productlist/item_box.tpl"}
{block name="productlist-image-caption"}
<div class="caption">
<a href="{$Artikel->cURLFull}" class="title block h4 m0">{$Artikel->cKurzbezeichnung}</a>
{assign var="ratingArticle" value=getRatingArticle($Artikel)}
{if $Einstellungen.bewertung.bewertung_anzeigen === 'Y' && $ratingArticle->fDurchschnittsBewertung > 0}
<a href="{$ratingArticle->cURLFull}#tab-votes" class="hidden-print block">
{include file='productdetails/rating.tpl' stars=$ratingArticle->fDurchschnittsBewertung}
</a>
{/if}
<div>
{include file="productdetails/price.tpl" Artikel=$Artikel tplscope=$tplscope}
</div>
</div>{* /caption *}
{/block}
Das ist die PHP Funktion:
<?php
// Ermitteln und laden des Smarty-Objekts, falls es noch nicht verfügbar ist
if (!isset($smarty)) {
global $smarty;
}
/**
* Ermittelt den Vaterartikel, falls der gegebene Artikel ein Kindartikel ist.
*
* @param array $params - Die Parameter, die an die Funktion übergeben werden, inklusive des Artikels.
* @param object $smarty - Das Smarty-Objekt.
* @return Artikel
*/
function getRatingArticle($params, $smarty) {
$article = $params['article'];
// Prüfen, ob der Artikel ein Kindartikel ist
if ($article->kVaterArtikel > 0) {
// Vaterartikel laden und zurückgeben
$parentArticle = new Artikel();
$parentArticle->fuelleArtikel($article->kVaterArtikel);
return $parentArticle;
}
// Andernfalls den aktuellen Artikel zurückgeben
return $article;
}
// Registriere die Funktion als Smarty-Plugin
$smarty->registerPlugin("function", "getRatingArticle", "getRatingArticle");
Ich bin für jeden Tipp dankbar!