mw-cms/catalog-bundle

catalog bundle

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

Type:symfony-bundle

pkg:composer/mw-cms/catalog-bundle

dev-main 2025-11-12 17:40 UTC

This package is not auto-updated.

Last update: 2025-11-12 19:47:16 UTC


README

Créer une entité qui extends de Item dans AppBundle

Exemple:

use AWCatalogBundle\Entity\Item as BaseItem;

/**
 * Product
 * @ORM\Table
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
 */
class Product extends BaseItem
{
    use ORMBehaviors\Translatable\Translatable;
    ...
}

Il est obligatoire d'y mettre le use Translatable et créer l'entité de traduction qui extends de ItemTranslation :

use AWCatalogBundle\Entity\ItemTranslation as BaseItemTranslation;

/**
 * @ORM\Entity
 * @ORM\Table
 */
class ProductTranslation extends BaseItemTranslation
{
    ...
}

Ajouter la route au projet, créer le controller, le form, les views dans AppBundle qui peuvent copier ceux de Item dans le vendor

Config obligatoire

aw_catalog:
    item:
        class: AppBundle\Entity\Product
        form: AppBundle\Form\ProductType
        view: '@App/Product'
    category:

Surcharge du template item

Prérequis :

  • Le site doit posséder un thème custom : colonne "custom_theme" dans la table "site" (ce champ est éditable uniquement en base de données).
  • L'ajout d'un thème à un site vous contraint à créer les fichiers "header.html.twig" et "footer.html.twig" dans le dossier "generic" de votre thème.

Arborescence des fichiers :

Pour surcharger le template du fichier item, vous devez préalablement posséder l'arborescence suivante dans votre dossier "/app".

  • Resources
    • views
      • themes
        • nomdutheme
          • catalog
            • item.html.twig
          • elements
          • generic
            • header.html.twig
            • footer.html.twig

Surchage du fichier "item.html.twig" :

Le fichier "item.html.twig" correspond au template de la page "Item". Ce template est appelé par l'action "showItemAction" (nom de la route : "show_item" avec le slug en paramètre) du controller "DefaultController" du bundle.

Le template par défaut à utiliser pour ce fichier est le suivant :

{% extends "@AWCatalog/front/item.html.twig" %}

{% block title %}Custom - {{ item.translate.name | default("Produit") }}{% endblock %}

{% block description %}{{ item.translate.summary | default('') }}{% endblock %}

{% block content %}

    <h1>{{ item.translate.name }}</h1>
    <p>{{ item.translate.summary }}</p>
    <h2>Mes catégories</h2>
    <ul>
        {% for category in item.categories %}
            <li>{{ category.translate.name }}</li>
        {% endfor %}
    </ul>

    <h2>Mes filtres</h2>
    <ul>
        {% for filter in item.filters %}
            <li>{{ filter.translate.name }}</li>
        {% endfor %}
    </ul>

    <h2>Item associés</h2>
    <ul>
        {% for item in item.associatedItems %}
            <li><a href="{{ awcms_path(item) }}" title="{{ item.translate.name }}">{{ item.translate.name }}</a></li>
        {% endfor %}
    </ul>
{% endblock %}

Surcharge du template category

Prérequis :

  • Le site doit posséder un thème custom : colonne "custom_theme" dans la table "site" (ce champ est éditable uniquement en base de données).
  • L'ajout d'un thème à un site vous contraint à créer les fichiers "header.html.twig" et "footer.html.twig" dans le dossier "generic" de votre thème.

Arborescence des fichiers :

Pour surcharger le template du fichier category, vous devez préalablement posséder l'arborescence suivante dans votre dossier "/app".

  • Resources
    • views
      • themes
        • nomdutheme
          • catalog
            • category.html.twig
          • elements
          • generic
            • header.html.twig
            • footer.html.twig

Surchage du fichier "category.html.twig" :

Le fichier "category.html.twig" correspond au template de la page "Category". Ce template est appelé par l'action "showCategoryAction" (nom de la route : "show_category" avec le slug en paramètre) du controller "DefaultController" du bundle.

Le template par défaut à utiliser pour ce fichier est le suivant :

{% extends "@AWCatalog/front/category.html.twig" %}

{% block title %}Custom - {{ category.translate.name | default("Category") }}{% endblock %}

{% block description %}{{ category.translate.summary | default('') }}{% endblock %}

{% block content %}

    <h1>{{ category.translate.name }}</h1>
    <p>{{ category.translate.summary }}</p>
    <h2>Mes produits</h2>
    <ul>
        {% for item in category.items %}
            <li>{{ item.translate.name }}</li>
        {% endfor %}
    </ul>


{% endblock %}

API search

You can find items with the route awcatalog_item_search. Parameters are q and limit (10 by default).

For example: /fr/item/search?q=admiral&limit=2