本文整理汇总了PHP中MUtil_Model_ModelAbstract::set方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::set方法的具体用法?PHP MUtil_Model_ModelAbstract::set怎么用?PHP MUtil_Model_ModelAbstract::set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addConfigFields
/**
* Appends the needed fields for this config to the $bridge
*
* @param \MUtil_Model_ModelAbstract $orgModel
*/
public function addConfigFields(\MUtil_Model_ModelAbstract $orgModel)
{
$configModel = $this->getConfigModel(true);
$order = $orgModel->getOrder('gor_user_class') + 1;
foreach ($configModel->getItemNames() as $name) {
$orgModel->set($name, 'order', $order++, 'tab', 'access');
$orgModel->set($name, $configModel->get($name));
}
}
示例2: addShowTableRows
/**
* Adds rows from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_VerticalTableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
* /
protected function addShowTableRows(\MUtil_Model_Bridge_VerticalTableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
parent::addShowTableRows($bridge, $model);
}
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
if (!$this->model instanceof \Gems_Model_AppointmentModel) {
$this->model = $this->loader->getModels()->createAppointmentModel();
$this->model->applyDetailSettings();
}
$this->model->set('gap_admission_time', 'formatFunction', array($this, 'displayDate'));
$this->model->set('gap_discharge_time', 'formatFunction', array($this, 'displayDate'));
return $this->model;
}
示例3: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Adds a button column to the model, if such a button exists in the model.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
protected function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
$bridge->gr2t_id_respondent_track;
// Data needed for edit button
$bridge->gr2o_id_organization;
// Data needed for edit button
$HTML = \MUtil_Html::create();
// Get the buttons
if ($menuItem = $this->menu->find(array('controller' => 'respondent', 'action' => 'show', 'allowed' => true))) {
$respondentButton = $menuItem->toActionLink($this->getRequest(), $bridge, $this->_('Show respondent'));
$respondentButton->appendAttrib('class', 'rightFloat');
} else {
$respondentButton = null;
}
if ($menuItem = $this->menu->find(array('controller' => 'track', 'action' => 'show-track', 'allowed' => true))) {
$trackButton = $menuItem->toActionLink($this->getRequest(), $bridge, $this->_('Show track'));
$trackButton->appendAttrib('class', 'rightFloat');
} else {
$trackButton = null;
}
// Row with dates and patient data
$bridge->tr(array('onlyWhenChanged' => true, 'class' => 'even'));
$bridge->addSortable('gr2o_patient_nr');
$bridge->addSortable('respondent_name')->colspan = 2;
if ($this->escort instanceof \Gems_Project_Tracks_SingleTrackInterface) {
$bridge->addSortable('grs_birthday');
$bridge->addMultiSort('progress', array($respondentButton));
} else {
$bridge->addSortable('grs_birthday');
$bridge->addMultiSort('grs_city', array($respondentButton));
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
// Row with track info
$bridge->tr(array('onlyWhenChanged' => true, 'class' => 'even'));
$td = $bridge->addMultiSort('gtr_track_name', 'gr2t_track_info');
$td->class = 'indentLeft';
$td->colspan = 4;
$td->renderWithoutContent = false;
// Do not display this cell and thus this row if there is not content
$td = $bridge->addMultiSort('progress', array($trackButton));
$td->renderWithoutContent = false;
// Do not display this cell and thus this row if there is not content
}
$bridge->tr(array('class' => array('odd', $bridge->row_class), 'title' => $bridge->gto_comment));
$bridge->addColumn($this->getTokenLinks($bridge))->class = 'rightAlign';
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gsu_survey_name', 'gto_round_description')->colspan = 2;
$bridge->tr(array('class' => array('odd', $bridge->row_class), 'title' => $bridge->gto_comment));
$bridge->addColumn();
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
$bridge->addSortable('gto_id_token');
$bridge->addMultiSort('ggp_name', array($this->getActionLinks($bridge)));
}
示例4: createModel
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
// Replace two checkboxes with on radio button control
$this->model->set('ggp_staff_members', 'elementClass', 'Hidden');
$this->model->setOnSave('ggp_staff_members', array($this, 'saveIsStaff'));
$this->model->set('ggp_respondent_members', 'elementClass', 'Hidden');
$this->model->setOnSave('ggp_respondent_members', array($this, 'saveIsRespondent'));
$options = array('1' => $this->model->get('ggp_staff_members', 'label'), '2' => $this->model->get('ggp_respondent_members', 'label'));
$this->model->set('staff_respondent', 'label', $this->_('Can be assigned to'), 'elementClass', 'Radio', 'multiOptions', $options, 'order', $this->model->getOrder('ggp_staff_members') + 1);
$this->model->setOnLoad('staff_respondent', array($this, 'loadStaffRespondent'));
return $this->model;
}
示例5: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
public function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
$model->set('gr2o_patient_nr', 'label', $this->_('Respondent'));
$model->set('gto_round_description', 'label', $this->_('Round / Details'));
$model->set('gto_valid_from', 'label', $this->_('Valid from'));
$model->set('gto_valid_until', 'label', $this->_('Valid until'));
$model->set('gto_mail_sent_date', 'label', $this->_('Contact date'));
$model->set('respondent_name', 'label', $this->_('Name'));
$HTML = \MUtil_Html::create();
$bridge->setDefaultRowClass(\MUtil_Html_TableElement::createAlternateRowClass('even', 'even', 'odd', 'odd'));
$bridge->addColumn($this->getTokenLinks($bridge), ' ')->rowspan = 2;
// Space needed because TableElement does not look at rowspans
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$bridge->addMultiSort('gr2o_patient_nr', $HTML->raw('; '), 'respondent_name');
$bridge->addMultiSort('ggp_name', array($this->getActionLinks($bridge)));
$bridge->tr();
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
if ($this->escort instanceof \Gems_Project_Tracks_SingleTrackInterface) {
$bridge->addMultiSort('gto_round_description', $HTML->raw('; '), 'gsu_survey_name');
} else {
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gtr_track_name', 'gr2t_track_info', $bridge->gtr_track_name->if($HTML->raw(' » ')), 'gsu_survey_name', 'gto_round_description');
}
$bridge->addSortable('assigned_by');
}
示例6: apply
/**
*
* @param string $trackingField The field that stores the tracking value
* @param string $trackedField The field whose changing is tracked
* @param string $oldValueField Optional, the field to store a copy of the original value in
*/
public function apply($trackingField, $trackedField, $oldValueField = null)
{
if (null === $oldValueField) {
// Defautl name
$oldValueField = self::OLD_FIELD_PREFIX . $trackedField;
// Check if a fields already existed
if (method_exists($this->_model, 'getKeyCopyName')) {
$copyName = $this->_model->getKeyCopyName($trackedField);
if ($this->_model->has($copyName)) {
$oldValueField = $copyName;
}
}
}
if (!$this->_model->has($oldValueField)) {
$this->_model->set($oldValueField, 'elementClass', 'Hidden', __CLASS__, $trackedField);
$this->_model->setOnLoad($oldValueField, array($this, 'loadOldValue'));
}
if (!$this->_model->has($trackingField)) {
// Only load the original value and ste the original result when it was not already in the model
$this->_model->setAutoSave($trackingField);
// $this->_model->setOnLoad($trackingField, $this->_unchangedValue);
}
$this->_model->set($trackingField, __CLASS__, array($trackedField, $oldValueField));
$this->_model->setOnSave($trackingField, array($this, 'saveValue'));
// Store the extra hidden fields needed
$hiddenFields = $this->_model->getMeta(self::HIDDEN_FIELDS, array());
$hiddenFields[] = $oldValueField;
$this->_model->setMeta(self::HIDDEN_FIELDS, $hiddenFields);
// Make sure the fields are in the result set
$this->_model->get($trackedField);
$this->_model->get($trackingField);
$this->_model->get($oldValueField);
}
示例7: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
protected function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
$model->set('gto_id_token', 'formatFunction', 'strtoupper');
$bridge->setDefaultRowClass(\MUtil_Html_TableElement::createAlternateRowClass('even', 'even', 'odd', 'odd'));
$tr1 = $bridge->tr();
$tr1->appendAttrib('class', $bridge->row_class);
$tr1->appendAttrib('title', $bridge->gto_comment);
$bridge->addColumn($this->createShowTokenButton($bridge), ' ')->rowspan = 2;
// Space needed because TableElement does not look at rowspans
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$bridge->addSortable('gto_id_token');
// $bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'))->rowspan = 2;
$this->addRespondentCell($bridge, $model);
$bridge->addMultiSort('ggp_name', array($this->createActionButtons($bridge)));
$tr2 = $bridge->tr();
$tr2->appendAttrib('class', $bridge->row_class);
$tr2->appendAttrib('title', $bridge->gto_comment);
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
$bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'));
if ($this->multiTracks) {
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gtr_track_name', 'gr2t_track_info', array($bridge->gtr_track_name->if(\MUtil_Html::raw(' » ')), ' '), 'gsu_survey_name', 'gto_round_description');
} else {
$bridge->addMultiSort('gto_round_description', \MUtil_Html::raw('; '), 'gsu_survey_name');
}
$bridge->addSortable('assigned_by');
}
示例8: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
protected function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
// Add link to patient to overview
$menuItems = $this->findMenuItems('respondent', 'show');
if ($menuItems) {
$menuItem = reset($menuItems);
if ($menuItem instanceof \Gems_Menu_SubMenuItem) {
$href = $menuItem->toHRefAttribute($bridge);
if ($href) {
$aElem = new \MUtil_Html_AElement($href);
$aElem->setOnEmpty('');
// Make sure org is known
$model->get('gr2o_id_organization');
$model->set('gr2o_patient_nr', 'itemDisplay', $aElem);
$model->set('respondent_name', 'itemDisplay', $aElem);
}
}
}
$model->set('gto_id_token', 'formatFunction', 'strtoupper');
$bridge->setDefaultRowClass(\MUtil_Html_TableElement::createAlternateRowClass('even', 'even', 'odd', 'odd'));
$tr1 = $bridge->tr();
$tr1->appendAttrib('class', $bridge->row_class);
$tr1->appendAttrib('title', $bridge->gto_comment);
$bridge->addColumn($this->createShowTokenButton($bridge), ' ')->rowspan = 2;
// Space needed because TableElement does not look at rowspans
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$bridge->addSortable('gto_id_token');
// $bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'))->rowspan = 2;
$this->addRespondentCell($bridge, $model);
$bridge->addMultiSort('ggp_name', array($this->createActionButtons($bridge)));
$tr2 = $bridge->tr();
$tr2->appendAttrib('class', $bridge->row_class);
$tr2->appendAttrib('title', $bridge->gto_comment);
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
$bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'));
if ($this->multiTracks) {
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gtr_track_name', 'gr2t_track_info', array($bridge->gtr_track_name->if(\MUtil_Html::raw(' » ')), ' '), 'gsu_survey_name', 'gto_round_description');
} else {
$bridge->addMultiSort('gto_round_description', \MUtil_Html::raw('; '), 'gsu_survey_name');
}
$bridge->addSortable('assigned_by');
}
示例9: addFormElements
/**
* Adds elements from the model to the bridge that creates the form.
*
* Overrule this function to add different elements to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_FormBridgeInterface $bridge
* @param \MUtil_Model_ModelAbstract $model
*/
protected function addFormElements(\MUtil_Model_Bridge_FormBridgeInterface $bridge, \MUtil_Model_ModelAbstract $model)
{
$onOffFields = array('gr2t_track_info', 'gto_round_description', 'grc_description');
foreach ($onOffFields as $field) {
if (!(isset($this->formData[$field]) && $this->formData[$field])) {
$model->set($field, 'elementClass', 'None');
}
}
parent::addFormElements($bridge, $model);
}
示例10: applySurveyListValidFor
/**
* Set the surveys to be listed as valid for choices for this item and the way they are displayed (if at all)
*
* @param \MUtil_Model_ModelAbstract $model The round model
* @param array $itemData The current items data
* @param boolean True if the update changed values (usually by changed selection lists).
*/
protected function applySurveyListValidFor(\MUtil_Model_ModelAbstract $model, array &$itemData)
{
if (!(isset($itemData['gro_id_round']) && $itemData['gro_id_round'])) {
$itemData['gro_id_round'] = '';
}
// Fixed value
$itemData['gro_valid_for_id'] = $itemData['gro_id_round'];
// The options array
$rounds[$itemData['gro_id_round']] = $this->_('This round');
$model->set('gro_valid_for_id', 'multiOptions', $rounds, 'elementClass', 'Exhibitor');
return false;
}
示例11: createModel
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
if (!$this->model instanceof \Gems_Tracker_Model_TrackModel) {
$tracker = $this->loader->getTracker();
$this->model = $tracker->getRespondentTrackModel();
if (!$this->trackEngine instanceof \Gems_Tracker_Engine_TrackEngineInterface) {
$this->trackEngine = $this->respondentTrack->getTrackEngine();
}
$this->model->applyEditSettings($this->trackEngine);
}
$this->model->set('restore_tokens', 'label', $this->_('Restore tokens'), 'description', $this->_('Restores tokens with the same code as the track.'), 'elementClass', 'Checkbox');
return $this->model;
}
示例12: apply
/**
* 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;
}
示例13: addFormElements
/**
* Adds elements from the model to the bridge that creates the form.
*
* Overrule this function to add different elements to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_FormBridgeInterface $bridge
* @param \MUtil_Model_ModelAbstract $model
* @param array $data The data that will later be loaded into the form
* @param optional boolean $new Form should be for a new element
* @return void|array When an array of new values is return, these are used to update the $data array in the calling function
*/
protected function addFormElements(\MUtil_Model_Bridge_FormBridgeInterface $bridge, \MUtil_Model_ModelAbstract $model, array $data, $new = false)
{
$returnValues = array();
if (APPLICATION_ENV !== 'production') {
$bsn = new \MUtil_Validate_Dutch_Burgerservicenummer();
$num = mt_rand(100000000, 999999999);
while (!$bsn->isValid($num)) {
$num++;
}
$model->set('grs_ssn', 'description', sprintf($this->_('Random Example BSN: %s'), $num));
} else {
$model->set('grs_ssn', 'description', $this->_('Enter a 9-digit SSN number.'));
}
if ($model->hashSsn === \Gems_Model_RespondentModel::SSN_HASH) {
if (strlen($data['grs_ssn']) > 9) {
// When longer the grs_ssn contains a hash, not a bsn number
$returnValues['grs_ssn'] = '';
}
}
$ucfirst = new \Zend_Filter_Callback('ucfirst');
// \MUtil_Echo::track($data);
$bridge->addTab('caption1')->h4($this->_('Identification'));
//Add the hidden fields after the tab, so validation will work. They need to be in the
//same tab where they are needed
$bridge->addHidden('grs_id_user');
$bridge->addHidden('gr2o_id_organization');
$bridge->addHidden($model->getKeyCopyName('gr2o_patient_nr'));
$bridge->addHidden($model->getKeyCopyName('gr2o_id_organization'));
if (isset($data['gul_id_user'])) {
$bridge->addHidden('gul_id_user');
}
$bridge->addText('grs_ssn', 'label', $this->_('SSN'), 'size', 10, 'maxlength', 12)->addValidator(new \MUtil_Validate_Dutch_Burgerservicenummer())->addValidator($model->createUniqueValidator('grs_ssn'))->addFilter('Digits');
$bridge->addText('gr2o_patient_nr', 'label', $this->_('Patient number'), 'size', 15, 'minlength', 4)->addValidator($model->createUniqueValidator(array('gr2o_patient_nr', 'gr2o_id_organization'), array('gr2o_id_user' => 'grs_id_user', 'gr2o_id_organization')));
$bridge->addText('grs_first_name')->addFilter($ucfirst);
$bridge->addText('grs_surname_prefix', 'description', 'de, van der, \'t, etc...');
$bridge->addText('grs_last_name', 'required', true)->addFilter($ucfirst);
$bridge->addTab('caption2')->h4($this->_('Medical data'));
$bridge->addRadio('grs_gender', 'separator', '', 'multiOptions', $this->util->getTranslated()->getGenders());
$year = intval(date('Y'));
// Als jQuery 1.4 gebruikt wordt: yearRange = c-130:c0
$bridge->addDate('grs_birthday', 'jQueryParams', array('defaultDate' => '-30y', 'maxDate' => 0, 'yearRange' => $year - 130 . ':' . $year))->addValidator(new \MUtil_Validate_Date_DateBefore());
//$bridge->addSelect( 'gr2o_id_physician');
$bridge->addText('gr2o_treatment', 'size', 30, 'description', $this->_('DBC\'s, etc...'));
$bridge->addTextarea('gr2o_comments', 'rows', 4, 'cols', 60);
$bridge->addTab('caption3')->h4($this->_('Contact information'));
// Setting e-mail to required is niet mogelijk, grijpt te diep in
// misschien later proberen met ->addGroup('required', 'true'); ???
$bridge->addText('grs_email', 'size', 30)->addValidator('SimpleEmail');
$bridge->addCheckBox('calc_email', 'label', $this->_('Respondent has no e-mail'));
$bridge->addRadio('gr2o_mailable');
$bridge->addText('grs_address_1', 'size', 40, 'description', $this->_('With housenumber'))->addFilter($ucfirst);
if ($model->has('grs_address_2')) {
$bridge->addText('grs_address_2', 'size', 40);
}
$bridge->addText('grs_zipcode', 'size', 7, 'description', '0000 AA');
$bridge->addFilter('grs_zipcode', new \Gems_Filter_DutchZipcode());
$bridge->addText('grs_city')->addFilter($ucfirst);
$bridge->addSelect('grs_iso_country', 'label', $this->_('Country'), 'multiOptions', $this->util->getLocalized()->getCountries());
$bridge->addText('grs_phone_1', 'size', 15)->addValidator('Phone');
$bridge->addTab('caption4')->h4($this->_('Settings'));
$bridge->addSelect('grs_iso_lang', 'label', $this->_('Language'), 'multiOptions', $this->util->getLocalized()->getLanguages());
$bridge->addRadio('gr2o_consent', 'separator', '', 'description', $this->_('Has the respondent signed the informed consent letter?'), 'required', true);
return $returnValues;
}
示例14: apply
/**
* 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;
}
示例15: setDutchZipcode
/**
* Set the field values for a dutch zipcode
*
* @param \MUtil_Model_ModelAbstract $model
* @param \Zend_Translate_Adapter $translator
* @param string $fieldName
*/
public static function setDutchZipcode(\MUtil_Model_ModelAbstract $model, \Zend_Translate_Adapter $translator, $fieldName = 'grs_zipcode')
{
$model->set($fieldName, 'size', 7, 'description', $translator->_('E.g.: 0000 AA'), 'filter', new \Gems_Filter_DutchZipcode());
}