PageRenderTime 64ms CodeModel.GetById 36ms RepoModel.GetById 0ms app.codeStats 0ms

/classes/fields/username.php

https://bitbucket.org/torchedmedia/data-fields
PHP | 62 lines | 44 code | 18 blank | 0 comment | 7 complexity | bf7716abf4a03b8a49d730ce9a73357f MD5 | raw file
  1. <?php
  2. namespace DataFields\Fields;
  3. class Username extends Base {
  4. public function add_fields(&$fieldset, $formType) {
  5. $value = (\Input::post($this->_prop)) ? \Input::post($this->_prop) : $this->_model->{$this->_prop};
  6. $validation = $this->_settings['validation'];
  7. $validation['min_length'] = array('min_length', 5);
  8. switch($formType) {
  9. case 'create':
  10. $validation['unique'] = array($this->_settings['unique_test']);
  11. $validation['required'] = array('required');
  12. $fieldset->add($this->_prop, $this->_settings['label'], array('type'=>'text', 'value'=>$value), $validation);
  13. $rule_name = str_replace('::', ':', \Inflector::denamespace($this->_settings['unique_test']));
  14. $fieldset->validation()->set_message($rule_name, \Config::get('datafields.errors.unique_username'));
  15. break;
  16. case 'verify':
  17. default:
  18. $fieldset->add($this->_prop, $this->_settings['label'], array('type'=>'text', 'value'=>$value), array());
  19. break;
  20. case 'edit':
  21. $validation['unique'] = array($this->_settings['unique_test'], $this->_model->id);
  22. $rule_name = str_replace('::', ':', \Inflector::denamespace($this->_settings['unique_test']));
  23. $fieldset->validation()->set_message($rule_name, \Config::get('datafields.errors.unique_username'));
  24. $new = $fieldset->add($this->_prop, $this->_settings['label'], array('type'=>'text', 'value'=>$value), $validation);
  25. break;
  26. }
  27. static::add_validation_messages($fieldset, $this->_settings['validation']);
  28. if(array_key_exists('messages', $this->_settings) && is_array($this->_settings['messages'])) {
  29. foreach($this->_settings['messages'] as $rule=>$message) {
  30. $fieldset->validation()->set_message($rule, $message);
  31. }
  32. }
  33. }
  34. public static function db_cols($prop, array $settings = array()) {
  35. return array($prop =>array('constraint'=>200, 'type'=>'varchar', 'null'=>false));
  36. }
  37. public function show($formType = null) {
  38. if($formType == 'verify' && \Config::get('doorman.identifier') == 'username')
  39. return true;
  40. elseif($formType != 'verify')
  41. return true;
  42. return false;
  43. }
  44. }