/** * Use this function for a default application of this type to the model * * @param \MUtil_Model_ModelAbstract $model * @param string $valueField The field containing the value to be encrypted * #param string $methodField the field storing the method of encryption * @return \Gems_Model_Type_EncryptedField (continuation pattern) */ public function apply(\MUtil_Model_ModelAbstract $model, $valueField, $methodField) { $this->findValue[$methodField] = $valueField; $model->setSaveWhenNotNull($valueField); $model->setOnLoad($valueField, array($this, 'loadValue')); $model->setOnSave($valueField, array($this, 'saveValue')); // Only hidden to make sure onSave's are triggered $model->set($methodField, 'elementClass', 'hidden'); $model->setOnLoad($methodField, 'default'); // Yes you can set this to a constant $model->setSaveWhen($methodField, array($this, 'whenEncryption')); $model->setOnSave($methodField, array($this, 'saveEncryption')); if ($model instanceof \MUtil_Model_DatabaseModelAbstract) { $model->setOnTextFilter($valueField, false); $model->setOnTextFilter($methodField, false); } return $this; }
/** * Use this function for a default application of this type to the model * * @param \MUtil_Model_ModelAbstract $model * @param string $name The field to set the seperator character * @return \MUtil_Model_Type_ConcatenatedRow (continuation pattern) */ public function apply(\MUtil_Model_ModelAbstract $model, $name) { $model->set($name, 'formatFunction', array($this, 'format')); $model->setOnLoad($name, array($this, 'loadValue')); $model->setOnSave($name, array($this, 'saveValue')); if ($model instanceof \MUtil_Model_DatabaseModelAbstract) { $model->setOnTextFilter($name, array($this, 'textFilter')); } $this->options = $model->get($name, 'multiOptions'); return $this; }