Bonjour,

Pour l'enregistrement de nouvelles pages je souhaite laisser à l'administrateur la possibilité d'enregistrer un champ 'menu' qui sera donc afficher dans la navigation (plutôt que d'afficher le champ 'name'). En séparant ainsi le nom de la page de son menu ça donne la possibilité d'avoir un titre de page à rallonge ('Nos supers produits trop classes') et de laisser la navigation propre ('Supers Produits').

Je souhaite donc pouvoir laisser à l'administrateur la possibilité de laisser le champ 'menu' vide. Dans ce cas il prendra la valeur de 'name'... Jusque là tout va bien mais je souhaiterais utiliser un Behavior (surtout pour être plus propre et organisé). Seulement voilà j'utilise déjà un Behavior pour sauvegarder le slug de la page, et il n'y a que lui qui s'exécute !!

Mon model à bien :

public $actsAs = array('Tree', 'Slug', 'Menu', 'Url' );

Mes behaviors :

class SlugBehavior extends ModelBehavior{
    public function beforeSave(Model $Model, $options = array()){
        if (isset($Model->data$Model->alias]'name']) &&
            (
                !isset($Model->data$Model->alias]'slug']) ||
                empty($Model->data$Model->alias]'slug'])
            )
        ){
            $Model->data$Model->alias]'slug'] = strtolower(Inflector::slug($Model->data$Model->alias]'name'], '-'));
        }
    }
}

class MenuBehavior extends ModelBehavior{
    public function beforeSave(Model $Model, $options = array()){
        if (isset($Model->data$Model->alias]'name']) &&
            (
                !isset($Model->data$Model->alias]'menu']) ||
                empty($Model->data$Model->alias]'menu'])
            )
        ){
            $Model->data$Model->alias]'menu'] = $Model->data$Model->alias]'name'];
        }
    }
}

J'ai tenté de mettre parent::beforeSave(); Mais sans succès...

Je vais mettre une simple condition au moment de mon save pour le moment... mais ça peut servir : comment utiliser le même callback avec plusieurs behaviors ?

1 réponse


Peut être un petit

return true;

à la fin de tes callbacks