236 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * WPSEO plugin file.
 | 
						|
 *
 | 
						|
 * @package WPSEO\Admin
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Class WPSEO_Taxonomy_Tab.
 | 
						|
 *
 | 
						|
 * Contains the basics for each class extending this one.
 | 
						|
 */
 | 
						|
class WPSEO_Taxonomy_Fields {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the taxonomy fields.
 | 
						|
	 *
 | 
						|
	 * @param string $field_group The field group.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function get( $field_group ) {
 | 
						|
		$fields = [];
 | 
						|
 | 
						|
		switch ( $field_group ) {
 | 
						|
			case 'content':
 | 
						|
				$fields = $this->get_content_fields();
 | 
						|
				break;
 | 
						|
			case 'settings':
 | 
						|
				$fields = $this->get_settings_fields();
 | 
						|
				break;
 | 
						|
			case 'social':
 | 
						|
				$fields = $this->get_social_fields();
 | 
						|
				break;
 | 
						|
		}
 | 
						|
 | 
						|
		return $this->filter_hidden_fields( $fields );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns array with the fields for the general tab.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	protected function get_content_fields() {
 | 
						|
		$fields = [
 | 
						|
			'title' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'desc' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'linkdex' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'content_score' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'inclusive_language_score' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'focuskw' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'is_cornerstone' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
		];
 | 
						|
 | 
						|
		/**
 | 
						|
		 * Filter: 'wpseo_taxonomy_content_fields' - Adds the possibility to register additional content fields.
 | 
						|
		 *
 | 
						|
		 * @api array - The additional fields.
 | 
						|
		 */
 | 
						|
		$additional_fields = apply_filters( 'wpseo_taxonomy_content_fields', [] );
 | 
						|
 | 
						|
		return array_merge( $fields, $additional_fields );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns array with the fields for the settings tab.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	protected function get_settings_fields() {
 | 
						|
		return [
 | 
						|
			'noindex' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
			'bctitle' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => ( WPSEO_Options::get( 'breadcrumbs-enable' ) !== true ),
 | 
						|
			],
 | 
						|
			'canonical' => [
 | 
						|
				'label'       => '',
 | 
						|
				'description' => '',
 | 
						|
				'type'        => 'hidden',
 | 
						|
				'options'     => '',
 | 
						|
				'hide'        => false,
 | 
						|
			],
 | 
						|
		];
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returning the fields for the social media tab.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	protected function get_social_fields() {
 | 
						|
		$fields = [];
 | 
						|
 | 
						|
		if ( WPSEO_Options::get( 'opengraph', false ) === true ) {
 | 
						|
			$fields = [
 | 
						|
				'opengraph-title'       => [
 | 
						|
					'label'       => '',
 | 
						|
					'description' => '',
 | 
						|
					'type'        => 'hidden',
 | 
						|
					'options'     => '',
 | 
						|
					'hide'        => false,
 | 
						|
				],
 | 
						|
				'opengraph-description' => [
 | 
						|
					'label'       => '',
 | 
						|
					'description' => '',
 | 
						|
					'type'        => 'hidden',
 | 
						|
					'options'     => '',
 | 
						|
					'hide'        => false,
 | 
						|
				],
 | 
						|
				'opengraph-image'       => [
 | 
						|
					'label'       => '',
 | 
						|
					'description' => '',
 | 
						|
					'type'        => 'hidden',
 | 
						|
					'options'     => '',
 | 
						|
					'hide'        => false,
 | 
						|
				],
 | 
						|
				'opengraph-image-id'    => [
 | 
						|
					'label'       => '',
 | 
						|
					'description' => '',
 | 
						|
					'type'        => 'hidden',
 | 
						|
					'options'     => '',
 | 
						|
					'hide'        => false,
 | 
						|
				],
 | 
						|
			];
 | 
						|
		}
 | 
						|
 | 
						|
		if ( WPSEO_Options::get( 'twitter', false ) === true ) {
 | 
						|
			$fields = array_merge(
 | 
						|
				$fields,
 | 
						|
				[
 | 
						|
					'twitter-title'       => [
 | 
						|
						'label'       => '',
 | 
						|
						'description' => '',
 | 
						|
						'type'        => 'hidden',
 | 
						|
						'options'     => '',
 | 
						|
						'hide'        => false,
 | 
						|
					],
 | 
						|
					'twitter-description' => [
 | 
						|
						'label'       => '',
 | 
						|
						'description' => '',
 | 
						|
						'type'        => 'hidden',
 | 
						|
						'options'     => '',
 | 
						|
						'hide'        => false,
 | 
						|
					],
 | 
						|
					'twitter-image'       => [
 | 
						|
						'label'       => '',
 | 
						|
						'description' => '',
 | 
						|
						'type'        => 'hidden',
 | 
						|
						'options'     => '',
 | 
						|
						'hide'        => false,
 | 
						|
					],
 | 
						|
					'twitter-image-id'    => [
 | 
						|
						'label'       => '',
 | 
						|
						'description' => '',
 | 
						|
						'type'        => 'hidden',
 | 
						|
						'options'     => '',
 | 
						|
						'hide'        => false,
 | 
						|
					],
 | 
						|
				]
 | 
						|
			);
 | 
						|
		}
 | 
						|
 | 
						|
		return $fields;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Filter the hidden fields.
 | 
						|
	 *
 | 
						|
	 * @param array $fields Array with the form fields that has will be filtered.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	protected function filter_hidden_fields( array $fields ) {
 | 
						|
		foreach ( $fields as $field_name => $field_options ) {
 | 
						|
			if ( ! empty( $field_options['hide'] ) ) {
 | 
						|
				unset( $fields[ $field_name ] );
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return $fields;
 | 
						|
	}
 | 
						|
}
 |