Tribe__Settings_Tab::doContent()

Displays the content for the tab.

Contents


Return

(void)


Top ↑

Source

File: src/Tribe/Settings_Tab.php

		public function doContent() {
			if ( $this->display_callback && is_callable( $this->display_callback ) ) {
				call_user_func( $this->display_callback );

				return;
			}

			$sent_data = get_option( 'tribe_settings_sent_data', array() );

			if ( is_array( $this->fields ) && ! empty( $this->fields ) ) {
				foreach ( $this->fields as $key => $field ) {
					if ( isset( $sent_data[ $key ] ) ) {
						// if we just saved [or attempted to], get the value that was inputed
						$value = $sent_data[ $key ];
					} else {
						// Some options should always be stored at network level
						$network_option = isset( $field['network_option'] ) ? (bool) $field['network_option'] : false;

						if ( is_network_admin() ) {
							$parent_option = ( isset( $field['parent_option'] ) ) ? $field['parent_option'] : Tribe__Main::OPTIONNAMENETWORK;
						}
						if ( ! is_network_admin() ) {
							$parent_option = ( isset( $field['parent_option'] ) ) ? $field['parent_option'] : Tribe__Main::OPTIONNAME;
						}
						// get the field's parent_option in order to later get the field's value
						$parent_option = apply_filters( 'tribe_settings_do_content_parent_option', $parent_option, $key );
						$default       = ( isset( $field['default'] ) ) ? $field['default'] : null;
						$default       = apply_filters( 'tribe_settings_field_default', $default, $field );

						if ( ! $parent_option ) {
							// no parent option, get the straight up value
							if ( $network_option || is_network_admin() ) {
								$value = get_site_option( $key, $default );
							} else {
								$value = get_option( $key, $default );
							}
						} else {
							// there's a parent option
							if ( $parent_option == Tribe__Main::OPTIONNAME ) {
								// get the options from Tribe__Settings_Manager if we're getting the main array
								$value = Tribe__Settings_Manager::get_option( $key, $default );
							} elseif ( $parent_option == Tribe__Main::OPTIONNAMENETWORK ) {
								$value = Tribe__Settings_Manager::get_network_option( $key, $default );
							} else {
								// else, get the parent option normally
								if ( is_network_admin() ) {
									$options = (array) get_site_option( $parent_option );
								} else {
									$options = (array) get_option( $parent_option );
								}
								$value = ( isset( $options[ $key ] ) ) ? $options[ $key ] : $default;
							}
						}
					}

					// escape the value for display
					if ( ! empty( $field['esc_display'] ) && function_exists( $field['esc_display'] ) ) {
						$value = $field['esc_display']( $value );
					} elseif ( is_string( $value ) ) {
						$value = esc_attr( stripslashes( $value ) );
					}

					// filter the value
					$value = apply_filters( 'tribe_settings_get_option_value_pre_display', $value, $key, $field );

					// create the field
					new Tribe__Field( $key, $field, $value );
				}
			} else {
				// no fields setup for this tab yet
				echo '<p>' . esc_html__( 'There are no fields setup for this tab yet.', 'tribe-common' ) . '</p>';
			}
		}