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
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
- catalog
- nomdutheme
- themes
- views
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
- catalog
- nomdutheme
- themes
- views
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