# Plugin Composants


S'intègre bien avec son plugin complémentaire [blocks](https://git.cantal.tech/spip/blocks)


Pour désactiver les modèles par défaut, vous pouvez définir (en simplifiant), la constante suivante : 
```
define('_COMPOSANTS_CHEMINS', 'composants');
```
On peut indiquer plusieurs répertoires où chercher les composants (séparés par une virgule).

A minima, un composant doit avoir un squelette et un fichier de déclaration de saisies [PHP, YAML ou JSON].

```
composants/
├── article-hero.html
├── article-hero.jpg
└── article-hero.yaml
```
L'image offre un aperçu visuel lors de la sélection du composant.


## Déclaration des saisies

### Balise #CFG
Les champs déclarés en saisies seront enregistrés dans la table *cfg* en format JSON (sauf ceux dont clé correpond à un élément champs_editables dans `declarer_tables_objets_sql`). Ce qui laisse une grande liberté de conception pour chaque composant.
En squelettes, les valeurs sont accessibles facilement :
```
#CFG{classes/titres,class_defaut}
```

### Identifiant
On peut personnaliser le champ **identifiant** facilement avec une saisie (cachée).
ex.:
```
    saisie: 'hidden'
    options:
      nom: 'identifiant'
      valeur_forcee:  '@composant@@id_composant@::@picker@'  

```
Les valeurs entre '@' prendront la valeur postée des saisies éponymes.

## Regrouper des composants
voir [ici](https://git.cantal.tech/spip/composants/-/blob/master/composants_fonctions.php#L192)


## TODO's

- optimiser_base_disparus sur le composants sans parent
- editer_composant.php :  lier/délier les documents <-> composants si on détecte une saisie selecteur_document 
