# Rendu de transition
Il est possible de modifier les fenêtres de changement d'état via un contrôle de rendu particulier.
Ces fenêtres sont générées uniquement lorsque des ask
sont présents pour un changement d'état.
# Associer une classe de rendu de transition via le cycle de vie
La définition du rendu par défaut se fait en implémentant l'interface Anakeen\Ui\IrenderTransitionAccess
sur la classe
du workflow. Cette interface demande une seule méthode :
\Anakeen\Ui\TransitionRender getTransitionRender(
string $transitionId,
\WDoc $workflow)
Les paramètres sont :
transitionId
: l'id de la transition demandée
Il peut être vide dans le cas où l'utilisateur "admin" demande le passage d'une transition invalide (seul cet utilisateur a le privilège pour ce type de transition).workflow
: l'objet\WDoc
en cours.
Cette méthode doit retourner une instance d'une classe implémentant l'interface [Anakeen\Ui\IRenderTransition
].
Si la méthode retourne null
, c'est le rendu par défaut qui est appliqué.
Exemple :
namespace My;
class CustomRender extends \Anakeen\Ui\TransitionRender
{
/**
* @param string $transitionId
*
* @return \Anakeen\Ui\RenderOptions
* @throws \Anakeen\Ui\Exception
*/
public function getRenderOptions($transitionId)
{
$options = parent::getRenderOptions($transitionId);
// Change label of parameter frame
$options->frame(self::parameterFrameAttribute)->setAttributeLabel("My parameters");
return $options;
}
}
namespace My;
class My_wfl extends \Dcp\Family\WDoc implements \Dcp\Ui\IrenderTransitionAccess
const myFirstTransition="my_trans_one";
const mySecondTransition="my_trans_two";
public $transitions = array(...);
public $cycle = array(...);
/**
* Get Transition Render object to configure transition render
* @param string $transitionId transition identifier
* @param \WDoc $workflow workflow document
* @return \Dcp\Ui\TransitionRender
*/
public function getTransitionRender($transitionId, \WDoc $workflow)
{
return new CustomRender();
}
}
# Classe de rendu de transition
Une configuration de rendu de transition est définie par une classe PHP qui doit implémenter l'interface Anakeen\Ui\IRendertransition.
# getCssReferences
Voir Smart Element getCssReferences
# getJsReferences
Voir Smart Element getJsReferences
# getTemplates
Voir Smart Element getTemplates
# getTransitionParameters
Voir Smart Element getTransitionParameters