logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Katalog in D7 mit dem Synonym des Taxonomiebegriffs als Argument

22/02/2025, by Gast (nicht überprüft)

Ich habe eine Frage: Ich erstelle einen Produktkatalog auf Drupal Commerce, ähnlich wie in diesem Geschäft http://czech-cristal.ru. Das heißt, ich habe ein Taxonomie-Wörterbuch "Produktkategorien" mit den Namen der benötigten Produkte erstellt, wobei die "Pattern for all Produktkategorien paths" so formatiert sind: catalog/[term:name]. Natürlich habe ich basierend auf dem Wörterbuch auch ein Menü erstellt, das auf Views verweist (Pfad catalog/%) und das Argument übergibt.

Ich benötige, dass die Links genau die Form catalog/[term:name] haben, so wie auf http://czech-cristal.ru.

Nun zu den Problemen, mit denen ich konfrontiert wurde: Ich habe also die Taxonomie-Terme eingegeben, das Menü erschien mit den Links catalog/obuv-timberland und catalog/novyy-termin. Ich habe
Views mit der URL catalog/% erstellt, den Kontextfilter auf "Inhalt: Hat die ID des Taxonomie-Terms (mit Tiefe)" gesetzt, und bei den Überprüfungskriterien PHP-Code ausgewählt. Im Code schreibe ich Folgendes:

 

$url = drupal_lookup_path('source', "catalog/".$argument);

if ($url != false)
{
  // Wenn der Pfad gefunden wird, überprüfen wir, ob es sich um einen Pfad zu einem Taxonomie-Term handelt
  //
  $term_base_path = 'taxonomy/term/';

  if (strncmp($term_base_path, $url, strlen($term_base_path)) == 0)
  {
    // Wir schneiden das Präfix 'taxonomy/term/' ab, wandeln den verbleibenden Wert in eine Zahl um
    // und ersetzen das Argument der View durch die erhaltene ID des Taxonomie-Terms
    //
    $handler->argument = intval(str_replace($term_base_path, '', $url));
  }
}

return TRUE;

 

In den Views wird alles korrekt angezeigt, wie es sein sollte. Die gewünschten Produkte werden je nach Term angezeigt (Screenshot 1). Mein Problem besteht darin, dass auf der Website unter den Adressen catalog/obuv-timberland und catalog/novyy-termin nicht das angezeigt wird, was in der Vorschau in den Views zu sehen ist, sondern die Materialien, die mit diesen Taxonomie-Termen assoziiert sind (Screenshot 2). Könnten Sie mir bitte sagen, wie ich es hinbekomme, dass auch auf der Website die Produkte des Katalogs so angezeigt werden wie in der Vorschau der Views?