Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Artikelsuchvorschläge können über das hier beschriebene Event erweitert werden. Allgemeine Informationen zu den Suchvorschlägen finden sich hier.

Events

Interface: \brandbox\shop\article\lib\event\articleSuggestionEventInterface

FunktionRückgabeBeschreibung

onQuery

Doctrine\ORM\QueryBuilder

Hier kann direkt der Querybuilder, der zur Suche der Artikeldatensätze verwendet wird, angepasst und erweitert werden.

onCollectElementsbrandbox\shop\article\lib\map\entityArticleSuggestion[]Hier kann die Rückgabe an componnent/suggestion angepasst und erweitert werden.

entityArticleSuggestion

Dieses Objekt wird verwendet um über die verschiedenen Eventimplementationen einen gemeinsamen Datenaustausch zu erreichen. Dieses Objekt enthält das Datenbankobjekt brandbox\shop\article\lib\entity\shopArticle und das Rückgabeobjekt für die Suchvorschläge in Form eines brandbox\shop\article\lib\map\articleSuggestionElement welches eine Ableitung von  brandbox\styleguide\brandbox\entity\suggestionElement ist und zusätzlich den brandbox\shop\article\lib\entity\shopArticle als Kontextinformation für weiterer Event-Verarbeitung beinhaltet.

Beispiel

Codeblock
languagephp
themeRDark
titleonQuery Beispiel
/**
 * @param string $query
 * @param QueryBuilder $queryBuilder
 * @param suggestion\lib\entity\suggestionSynonym[] $synonyms
 * @param int $languageID
 *
 * @return QueryBuilder $queryBuilder
 */
public function onQuery($query, $queryBuilder, $synonyms, $languageID) {
  if(!empty($query)):
    $queryBuilder->where('shopArticle.shopArticleActive = :is_active');
    $queryBuilder->setParameter('is_active', true);
  endif;

  return $queryBuilder;
}


Codeblock
languagephp
themeRDark
titleonCollectElements Beispiel
/**
 * @param suggestion\lib\event\suggestionEventConfig $eventConfig
 * @param article\lib\map\entityArticleSuggestion[] $articleSuggestions
 *
 * @return article\lib\map\entityArticleSuggestion[]
 */
public function onCollectElements($eventConfig, $articleSuggestions) {
  $elements = [];

  foreach($articleSuggestions as $articleSuggestion):
    $article = $articleSuggestion->getArticle();

    $link = $this->getLink($eventConfig, $article);
    $image = $this->getImage($article);
    $subline = $this->getSubline($eventConfig, $article);

    $suggestionElement = $articleSuggestion->getSuggestionElement();
    $suggestionElement->link = $link;
    $suggestionElement->image = $image;
    $suggestionElement->subline = $subline;

    $elements[] = $suggestionElement;
  endforeach;

  return $elements;
}