예제 #1
0
 /**
  * Returns a field in specified format
  *
  * @param  FieldTable  $field
  * @param  UserTable   $user
  * @param  string      $output  'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit'
  * @param  string      $reason  'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists
  * @param  int         $list_compare_types   IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search
  * @return mixed
  */
 public function getField(&$field, &$user, $output, $reason, $list_compare_types)
 {
     $return = null;
     switch ($output) {
         case 'html':
         case 'htmledit':
             if ($reason == 'search') {
                 $fieldName = $field->get('name');
                 $minNam = $fieldName . '__minval';
                 $maxNam = $fieldName . '__maxval';
                 $minVal = $user->get($minNam);
                 $maxVal = $user->get($maxNam);
                 $field->set('name', $minNam);
                 $minHtml = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $minVal, null);
                 $field->set('name', $maxNam);
                 $maxHtml = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $maxVal, null);
                 $field->set('name', $fieldName);
                 $return = $this->_fieldSearchRangeModeHtml($field, $user, $output, $reason, null, $minHtml, $maxHtml, $list_compare_types);
             } else {
                 $return = $this->formatFieldValueLayout($this->getRatingHTML($field, $user, $reason), $reason, $field, $user);
             }
             break;
         default:
             $return = parent::getField($field, $user, $output, $reason, $list_compare_types);
             break;
     }
     return $return;
 }
예제 #2
0
 /**
  * Returns a field in specified format
  *
  * @param  moscomprofilerFields  $field
  * @param  moscomprofilerUser    $user
  * @param  string                $output  'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit'
  * @param  string                $reason  'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists
  * @param  int                   $list_compare_types   IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search
  * @return mixed                
  */
 function getField(&$field, &$user, $output, $reason, $list_compare_types)
 {
     global $_CB_framework, $ueConfig;
     $value = $user->get(implode('', $field->getTableColumns()));
     switch ($output) {
         case 'html':
         case 'rss':
             $cbFields = new cbFields();
             $badHtmlFilter =& $cbFields->getInputFilter(array(), array(), 1, 1);
             if (isset($ueConfig['html_filter_allowed_tags']) && $ueConfig['html_filter_allowed_tags']) {
                 $badHtmlFilter->tagBlacklist = array_diff($badHtmlFilter->tagBlacklist, explode(" ", $ueConfig['html_filter_allowed_tags']));
             }
             $html = $cbFields->clean($badHtmlFilter, $value);
             unset($cbFields);
             break;
         case 'htmledit':
             if ($reason == 'search') {
                 $fsize = $field->size;
                 if ($field->size > 120) {
                     $field->size = null;
                 }
                 $html = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $value, '');
                 $field->size = $fsize;
                 $html = $this->_fieldSearchModeHtml($field, $user, $html, 'text', $list_compare_types);
             } elseif (!$this->_isReadOnly($field, $user, $reason)) {
                 $cbFields = new cbFields();
                 $badHtmlFilter =& $cbFields->getInputFilter(array(), array(), 1, 1);
                 if (isset($ueConfig['html_filter_allowed_tags']) && $ueConfig['html_filter_allowed_tags']) {
                     $badHtmlFilter->tagBlacklist = array_diff($badHtmlFilter->tagBlacklist, explode(" ", $ueConfig['html_filter_allowed_tags']));
                 }
                 $value = $cbFields->clean($badHtmlFilter, $value);
                 unset($cbFields);
                 $html = $_CB_framework->displayCmsEditor($field->name, $value, 600, 350, $field->cols, $field->rows) . $this->_fieldIconsHtml($field, $user, $output, $reason, null, $field->type, $value, 'input', null, true, $this->_isRequired($field, $user, $reason) && !$this->_isReadOnly($field, $user, $reason));
                 $this->_addSaveAndValidateCode($field, $user, $reason);
             } else {
                 $html = null;
             }
             break;
         case 'json':
         case 'php':
         case 'xml':
         case 'csvheader':
         case 'fieldslist':
         case 'csv':
         default:
             return parent::getField($field, $user, $output, $reason, $list_compare_types);
             break;
     }
     return $html;
 }