import v1.0.0-RC4 | 2009-05-20
This commit is contained in:
68
modules/default/models/Field.php
Normal file
68
modules/default/models/Field.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (C) 2005-2009 Keyboard Monkeys Ltd. http://www.kb-m.com
|
||||
* @license http://creativecommons.org/licenses/BSD/ BSD License
|
||||
* @author Keyboard Monkey Ltd
|
||||
* @since CommunityID 0.9
|
||||
* @package CommunityID
|
||||
* @packager Keyboard Monkeys
|
||||
*/
|
||||
|
||||
|
||||
class Field extends Zend_Db_Table_Row_Abstract
|
||||
{
|
||||
const TYPE_TEXT = 1;
|
||||
const TYPE_DATE = 2;
|
||||
const TYPE_GENDER = 3;
|
||||
const TYPE_COUNTRY = 4;
|
||||
const TYPE_LANGUAGE = 5;
|
||||
const TYPE_TIMEZONE = 6;
|
||||
const TYPE_EMAIL = 7;
|
||||
|
||||
public function getFormElement()
|
||||
{
|
||||
$varname = 'field_' . $this->id;
|
||||
|
||||
switch ($this->type) {
|
||||
case self::TYPE_TEXT:
|
||||
$el = new Monkeys_Form_Element_Text($varname);
|
||||
break;
|
||||
case self::TYPE_DATE:
|
||||
$el = new Monkeys_Form_Element_Date($varname);
|
||||
$el->addValidator('date')
|
||||
->setShowEmptyValues(true)
|
||||
->setStartEndYear(1900, date('Y') - 7)
|
||||
->setReverseYears(true);
|
||||
break;
|
||||
case self::TYPE_GENDER:
|
||||
translate('Male');
|
||||
translate('Female');
|
||||
$el = new Monkeys_Form_Element_Radio($varname);
|
||||
$el->setSeparator('  ')
|
||||
->addMultiOption('M', 'Male')
|
||||
->addMultiOption('F', 'Female');
|
||||
break;
|
||||
case self::TYPE_COUNTRY:
|
||||
$el = new Monkeys_Form_Element_Country($varname);
|
||||
break;
|
||||
case self::TYPE_LANGUAGE:
|
||||
$el = new Monkeys_Form_Element_Language($varname);
|
||||
break;
|
||||
case self::TYPE_TIMEZONE:
|
||||
$el = new Monkeys_Form_Element_Timezone($varname);
|
||||
break;
|
||||
case self::TYPE_EMAIL:
|
||||
$el = new Monkeys_Form_Element_Text($varname);
|
||||
$el->addValidator('EmailAddress');
|
||||
break;
|
||||
default:
|
||||
throw new Exception('Unknown field type: ' . $this->type);
|
||||
break;
|
||||
}
|
||||
$el->setLabel($this->name);
|
||||
$el->setValue($this->value);
|
||||
|
||||
return $el;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user