4.5.7 getNeeded

La méthode getNeeded permet de redéfinir le caractère obligatoire des attributs.

/**
 * @param \Doc $document
 * @return RenderAttributeNeeded needed attribute list property
 */
public function getNeeded(\Doc $document);

Les classes Dcp\Ui\DefaultView et Dcp\Ui\DefaultEdit retournent les obligations par défaut, en fonction du contrôle de vue.

Cette méthode doit retourner un objet de la classe Dcp\Ui\RenderAttributeNeeded qui contient les obligations à appliquer pour chacun des attributs.

La classe RenderAttributeNeeded expose la méthode setNeeded qui permet de modifier l'obligation d'un attribut en particulier. Cette obligation outrepasse l'obligation par défaut ainsi que l'obligation indiquée par un masque issu du contrôle de vue.

/**
 * Affect new needed property to an attribute
 * This property is more prioritary than mask
 * @param string $attributeId attribute identifier
 * @param bool $isNeeded attribut is needed or not
 * @return $this
 * @throws Exception
 */
public function setNeeded($attributeId, $isNeeded);

Cette obligation ne peut pas être appliquée à un attribut structurant, ni à un attribut contenu dans un tableau.

4.5.7.1 Exemple

Modification de l'obligation de 2 attributs en surchargeant la classe de vue par défaut.

use Dcp\Ui\RenderAttributeNeeded;
use Dcp\AttributeIdentifiers\My_family;
 
class RenderConfigCustom extends \Dcp\Ui\DefaultView
{
    /**
     * @param \Doc $document
     * @return \Dcp\Ui\RenderAttributeNeeded new mandatory attribute 
     */
    public function getNeeded(\Doc $document)
    {
        $needed = parent::getNeeded($document);
 
        $needed->setNeeded(My_family::my_phone, true);
        $needed->setNeeded(My_family::my_level, false);
 
        return $needed;
    }
}
×