Jump to content
  • 0

Produkte Kategorien ohne Kindelemente anzeigen


Question

Hallo Leute,

bin recht neu in Prestashop und habe bereits mein eigenes Template realisiert, soweit so gut.

In Prinzip ist mein Theme ein Clone vom classic

In /catalog/_partials/miniatures/product.tpl habe ich folgendes erweitert:

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
  {if $cat.name neq "Startseite" }
  	<span class="tag">{$cat.name}</span>
  {/if}
{/foreach}

Der obige Code fügt mir zu jedem Produkt alle Kategorien hinzu in dem das Produkt selber ist. Das funktioniert prima, nur möchte ich das Kategorien angezeigt werden, die keine Kinderelemente haben.

Daraufhin bin ich von Views zu den Klassen gewechselt und habe dort mein Glück versucht. Dazu hab ich hier im Forum etwas gestöbert und habe mir daraus einen funktionierenden Schnipsel Code gebaut

class Product extends ProductCore 
{
    public static function getProductProperties($id_lang, $row, Context $context = null)
    {
      ...
      $categories_ids = Product::getProductCategories($row['id_product']);
      $categories_names = array();
      foreach ($categories_ids AS $id) {
          $category = new Category($id);
          if ($category->nright - 1 == $category->nleft && $category->active)
              $categories_names[] = $category->getName();
          }
      $row['categories'] = $categories_names;
      return ...
    }
}

Das heißt im View kann ich nun mit $product.categories mir die gewünschten Kategorien anzeigen.

Mein Problem, ich mag es nicht Dinge im SourceCode zu ändern, bzw mit overrides zu überschreiben, da die Methode getProductProperties recht groß ist, möchte nicht das was beim Update kaputt geht. Ich möchte ja eigentlich nur die paar Zeilen Code zu den productProperties hinzufügen.

Deshalb hier, nun endlich, lang erwartet, meine Frage:

Wie kann ich auf $category->nright und $category->nleft zugreifen?

Folgendes funktioniert nämlich nicht (Zeile 2)

{foreach from=Product::getProductCategoriesFull($product.id_product) item=cat}
  {if $cat.nright -1 eq $cat.nleft }
  	<span class="tag">{$cat.name}</span>
  {/if}
{/foreach}

Scheinbar wird Product::getProductCategoriesFull() nicht ganz initialisiert.

Kann mir hier jemand ein Tipp geben?

Besten Dank und Viele Grüße

Chris

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More