You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.3 KiB
146 lines
4.3 KiB
8 years ago
|
<?php
|
||
|
|
||
|
/**
|
||
|
* The File Editor class.
|
||
|
*
|
||
|
* @package All-in-One-SEO-Pack
|
||
|
*/
|
||
|
if ( ! class_exists( 'All_in_One_SEO_Pack_File_Editor' ) ) {
|
||
|
|
||
|
/**
|
||
|
* Class All_in_One_SEO_Pack_File_Editor
|
||
|
*/
|
||
|
class All_in_One_SEO_Pack_File_Editor extends All_in_One_SEO_Pack_Module {
|
||
|
|
||
|
/**
|
||
|
* All_in_One_SEO_Pack_File_Editor constructor.
|
||
|
*/
|
||
|
function __construct() {
|
||
|
$this->name = __( 'File Editor', 'all-in-one-seo-pack' ); // Human-readable name of the plugin
|
||
|
$this->prefix = 'aiosp_file_editor_'; // option prefix
|
||
|
$this->file = __FILE__; // the current file
|
||
|
parent::__construct();
|
||
|
$this->current_tab = 'robots';
|
||
|
if ( isset( $_REQUEST['tab'] ) ) {
|
||
|
$this->current_tab = $_REQUEST['tab'];
|
||
|
}
|
||
|
|
||
|
$help_text = array(
|
||
|
'robotfile' => __( 'Robots.txt editor', 'all-in-one-seo-pack' ),
|
||
|
'htaccfile' => __( '.htaccess editor', 'all-in-one-seo-pack' ),
|
||
|
);
|
||
|
$this->default_options = array(
|
||
|
'robotfile' => array(
|
||
|
'name' => __( 'Edit Robots.txt', 'all-in-one-seo-pack' ),
|
||
|
'save' => false,
|
||
|
'default' => '',
|
||
|
'type' => 'textarea',
|
||
|
'cols' => 70,
|
||
|
'rows' => 25,
|
||
|
'label' => 'top',
|
||
|
),
|
||
|
'htaccfile' => array(
|
||
|
'name' => __( 'Edit .htaccess', 'all-in-one-seo-pack' ),
|
||
|
'save' => false,
|
||
|
'default' => '',
|
||
|
'type' => 'textarea',
|
||
|
'cols' => 70,
|
||
|
'rows' => 25,
|
||
|
'label' => 'top',
|
||
|
),
|
||
|
);
|
||
|
|
||
|
if ( ! empty( $help_text ) ) {
|
||
|
foreach ( $help_text as $k => $v ) {
|
||
|
$this->default_options[ $k ]['help_text'] = $v;
|
||
|
}
|
||
|
}
|
||
|
$this->tabs = array(
|
||
|
'robots' => array( 'name' => __( 'robots.txt' ) ),
|
||
|
'htaccess' => array( 'name' => __( '.htaccess' ) ),
|
||
|
);
|
||
|
|
||
|
$this->layout = array(
|
||
|
'robots' => array(
|
||
|
'name' => __( 'Edit robots.txt', 'all-in-one-seo-pack' ),
|
||
|
'options' => array( 'robotfile' ),
|
||
|
'tab' => 'robots',
|
||
|
),
|
||
|
'htaccess' => array(
|
||
|
'name' => __( 'Edit .htaccess', 'all-in-one-seo-pack' ),
|
||
|
'options' => array( 'htaccfile' ),
|
||
|
'tab' => 'htaccess',
|
||
|
),
|
||
|
);
|
||
|
|
||
|
$this->update_options(); // load initial options / set defaults
|
||
|
}
|
||
|
|
||
|
function settings_page_init() {
|
||
|
add_filter( $this->prefix . 'display_options', array( $this, 'filter_options' ), 10, 2 );
|
||
|
add_filter( $this->prefix . 'submit_options', array( $this, 'filter_submit' ), 10, 2 );
|
||
|
}
|
||
|
|
||
|
function add_page_hooks() {
|
||
|
parent::add_page_hooks();
|
||
|
add_action( $this->prefix . 'settings_update', array( $this, 'do_file_editor' ), 10, 2 );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $submit
|
||
|
* @param $location
|
||
|
*
|
||
|
* @return mixed
|
||
|
*/
|
||
|
function filter_submit( $submit, $location ) {
|
||
|
unset( $submit['Submit_Default'] );
|
||
|
$submit['Submit']['type'] = 'hidden';
|
||
|
if ( 'robots' === $this->current_tab ) {
|
||
|
$submit['Submit_File_Editor'] = array(
|
||
|
'type' => 'submit',
|
||
|
'class' => 'button-primary',
|
||
|
'value' => __( 'Update robots.txt', 'all-in-one-seo-pack' ) . ' »',
|
||
|
);
|
||
|
} elseif ( 'htaccess' === $this->current_tab ) {
|
||
|
$submit['Submit_htaccess'] = array(
|
||
|
'type' => 'submit',
|
||
|
'class' => 'button-primary',
|
||
|
'value' => __( 'Update .htaccess', 'all-in-one-seo-pack' ) . ' »',
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $submit;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $options
|
||
|
* @param $location
|
||
|
*
|
||
|
* @return mixed
|
||
|
*/
|
||
|
function filter_options( $options, $location ) {
|
||
|
$prefix = $this->get_prefix( $location );
|
||
|
if ( 'robots' === $this->current_tab ) {
|
||
|
$options = $this->load_files( $options, array( 'robotfile' => 'robots.txt' ), $prefix );
|
||
|
} elseif ( 'htaccess' === $this->current_tab ) {
|
||
|
$options = $this->load_files( $options, array( 'htaccfile' => '.htaccess' ), $prefix );
|
||
|
}
|
||
|
|
||
|
return $options;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $options This seems to be unused.
|
||
|
* @param $location
|
||
|
*/
|
||
|
function do_file_editor( $options, $location ) {
|
||
|
$prefix = $this->get_prefix( $location );
|
||
|
if ( 'robots' === $this->current_tab && isset( $_POST['Submit_File_Editor'] ) && $_POST['Submit_File_Editor'] ) {
|
||
|
$this->save_files( array( 'robotfile' => 'robots.txt' ), $prefix );
|
||
|
} elseif ( 'htaccess' === $this->current_tab && isset( $_POST['Submit_htaccess'] ) && $_POST['Submit_htaccess'] ) {
|
||
|
$this->save_files( array( 'htaccfile' => '.htaccess' ), $prefix );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|