/** * @param cbFieldHandler $fieldHandler * @param FieldTable $field * @param UserTable $user * @param string $output * @param string $reason * @param string $tag * @param string $type * @param string $value * @param string $additional * @param string $allValues * @param bool $displayFieldIcons * @param bool $required * @return null|string */ public function fieldIcons( &$fieldHandler, &$field, &$user, $output, $reason, $tag, $type, $value, $additional, $allValues, $displayFieldIcons, $required ) { global $_CB_fieldIconDisplayed; static $fieldsPrivacyDisplayed = array(); $return = null; if ( in_array( $reason, array( 'edit', 'register' ) ) ) { if ( $field instanceof FieldTable && $field->get( 'profile' ) ) { $userId = (int) $user->get( 'id' ); $fieldId = (int) $field->get( 'fieldid' ); if ( ! isset( $fieldsPrivacyDisplayed[$fieldId] ) ) { if ( ! ( $field->params instanceof ParamsInterface ) ) { $field->params = new Registry( $field->params ); } $display = $field->params->get( 'cbprivacy_display', '0' ); if ( ( $reason == 'register' ) && ( ! $field->params->get( 'cbprivacy_display_reg', '1' ) ) ) { $display = '0'; } if ( ( $display == 1 ) || ( ( $display == 2 ) && cbprivacyClass::checkUserModerator() ) ) { $privacy = new cbprivacyPrivacyTable(); $privacy->load( array( 'user_id' => (int) $userId, 'type' => 'profile', 'subtype' => 'field', 'item' => (int) $fieldId ) ); $fieldsPrivacyDisplayed[$fieldId] = true; $return = cbprivacyClass::getPrivacyInput( 'privacy_field_' . $fieldId, $privacy->get( 'rule', $field->params->get( 'cbprivacy_default', '0' ) ) ); if ( ! isset( $_CB_fieldIconDisplayed[$fieldId] ) ) { $_CB_fieldIconDisplayed[$fieldId] = true; if ( $displayFieldIcons ) { $return .= ' ' . getFieldIcons( null, $required, null, $fieldHandler->getFieldDescription( $field, $user, $output, $reason ), $fieldHandler->getFieldTitle( $field, $user, $output, $reason ), false, $field->params->get( 'fieldLayoutIcons', null ) ); } } } } } } return $return; }