Gelöst Produktliste - Text splitten oben und unten - JTL Shop 5 [gelöst]

anonymous

Aktives Mitglied
24. Januar 2019
38
5
Hi zusammen,

im Shop 4 war es möglich den Text in der Produktliste zu splitten, so dass ein Teil obenhalb und ein weiterer Teil unterhalb der Produkte angezeigt wurde.

Hierzu gab es online die verlinkte Anleitung, die in beiden Varianten hervorragend funktioniert hat.

https://webagentur-meerbusch.de/jtl-shop-kategorie-text-splitting.html

Das schöne an der Variante war, dass man es für Herstellerseiten, Kategorieseiten & Merkmalseiten nutzen konnte.

Natürlich kann man im Shop 5 über den Onpage Composer einen Text unterhalb der Produktliste einfügen.

ABER!: Sobald man einen Filter setzt, wird dieser nicht mehr angezeigt. Aus SEO-Sicht macht es unserer Meinung nach keinen Unterschied, aus Usabilitygründen und auch der Optik zuliebe wäre es besser den Text immer anzuzeigen.

Beispiel: Ich lande im Shop auf einer Seite die Schrauben anbietet. Unten befindet sich ein Text der erläutert, welche Schraubrn für welche Wandbeschaffenheit genutzt werden können. Bevor ich am unteren Seitenende ankomme filter ich auf Schrauben mit Kreuzschlitz. Jetzt verschwindet der untere Text, den ich als Kunde vorher nicht wahrgenommen habe.

Long story short: Gibt es eine Möglichkeit das wie im Shop 4 über #txtsplitt# zu lösen?

Wir freuen uns auf eure Lösungsideen und bedanken uns im Vorraus.

Beste Grüße
 

opt-out

Mitglied
19. Dezember 2020
34
5
Ich hab das mal einfach umgebaut für Shop 5. Angepasst werden muss die Bootstrap.php in deinem Template.
{splitDescription description="hello#world" seperator="#" show="first"}, Ergebnis hello
{splitDescription description="hello#world" seperator="#" show="last"}, Ergebnis world

PHP:
<?php

declare(strict_types=1);

namespace Template\NOVAChild;

use Smarty;

/**
 * Class Bootstrap
 * @package Template\NOVAChild
 */
class Bootstrap extends \Template\NOVA\Bootstrap
{
  /**
   * @inheritdoc
   */
  public function boot(): void
  {
    parent::boot();
    try {
      $this->getSmarty()->registerPlugin(Smarty::PLUGIN_FUNCTION, 'splitDescription', [$this, 'splitDescription']);
    } catch (\SmartyException $e) {
      throw new \RuntimeException('Problems during smarty instantiation: ' . $e->getMessage());
    }
  }

  /**
   * @param array                         $params
   * @param \Smarty_Internal_TemplateBase $smarty
   * @return String|void
   */
  public function splitDescription($params, $smarty)
  {
    if (isset($params["description"], $params["seperator"], $params["show"])) {
      if ($params["show"] === "first") {
        return explode($params["seperator"], $params["description"])[0];
      }

      return explode($params["seperator"], $params["description"])[1];
    }

    return;
  }
}
 
  • Gefällt mir
Reaktionen: anonymous