89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * WPSEO plugin file.
 | |
|  *
 | |
|  * @package WPSEO\Admin\Menu
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Renders a single replacement variable field.
 | |
|  */
 | |
| class WPSEO_Replacevar_Field {
 | |
| 
 | |
| 	/**
 | |
| 	 * Forms instance.
 | |
| 	 *
 | |
| 	 * @var Yoast_Form Yoast
 | |
| 	 */
 | |
| 	private $yform;
 | |
| 
 | |
| 	/**
 | |
| 	 * The id for the hidden field.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	private $field_id;
 | |
| 
 | |
| 	/**
 | |
| 	 * The label for the field.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	private $label;
 | |
| 
 | |
| 	/**
 | |
| 	 * The page type for the context of the recommended replace vars.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	private $page_type_recommended;
 | |
| 
 | |
| 	/**
 | |
| 	 * The page type for the context of the editor specific replace vars.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	private $page_type_specific;
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructs the object.
 | |
| 	 *
 | |
| 	 * @param Yoast_Form $yform                 Yoast forms.
 | |
| 	 * @param string     $field_id              The field id.
 | |
| 	 * @param string     $label                 The field label.
 | |
| 	 * @param string     $page_type_recommended The page type for the context of the recommended replace vars.
 | |
| 	 * @param string     $page_type_specific    The page type for the context of the editor specific replace vars.
 | |
| 	 */
 | |
| 	public function __construct( Yoast_Form $yform, $field_id, $label, $page_type_recommended, $page_type_specific ) {
 | |
| 		$this->yform                 = $yform;
 | |
| 		$this->field_id              = $field_id;
 | |
| 		$this->label                 = $label;
 | |
| 		$this->page_type_recommended = $page_type_recommended;
 | |
| 		$this->page_type_specific    = $page_type_specific;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Renders a div for the react application to mount to, and hidden inputs where
 | |
| 	 * the app should store it's value so they will be properly saved when the form
 | |
| 	 * is submitted.
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function render() {
 | |
| 		$this->yform->hidden( $this->field_id, $this->field_id );
 | |
| 
 | |
| 		printf(
 | |
| 			'<div
 | |
| 				data-react-replacevar-field
 | |
| 				data-react-replacevar-field-id="%1$s"
 | |
| 				data-react-replacevar-field-label="%2$s"
 | |
| 				data-react-replacevar-page-type-recommended="%3$s"
 | |
| 				data-react-replacevar-page-type-specific="%4$s"></div>',
 | |
| 			esc_attr( $this->field_id ),
 | |
| 			esc_attr( $this->label ),
 | |
| 			esc_attr( $this->page_type_recommended ),
 | |
| 			esc_attr( $this->page_type_specific )
 | |
| 		);
 | |
| 	}
 | |
| }
 |