Settings page restored, AJAX hook bundled in main class
This commit is contained in:
parent
15f02cbe83
commit
32e6db17a0
@ -1,48 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* @package Ajax
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Exit if accessed directly
|
|
||||||
if ( !defined( 'ABSPATH' ) ) exit;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Process Ajax upload file
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function wplt_ajax_get_new_ticks() {
|
|
||||||
check_ajax_referer( 'wplt_ajax_get_new_ticks' );
|
|
||||||
|
|
||||||
// timestamp for request
|
|
||||||
$slug = $_REQUEST['sl'];
|
|
||||||
$time = $_REQUEST['ts'];
|
|
||||||
|
|
||||||
if($slug) {
|
|
||||||
// get new ticks from database
|
|
||||||
$args = array( 'post_type' => 'wplt_tick',
|
|
||||||
'posts_per_page' => '-1',
|
|
||||||
'tax_query' => array(
|
|
||||||
array( 'taxonomy' => 'wplt_ticker',
|
|
||||||
'field' => 'slug',
|
|
||||||
'terms' => $slug
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$wp_query = new WP_Query($args);
|
|
||||||
$output = '';
|
|
||||||
|
|
||||||
while ($wp_query->have_posts()) : $wp_query->the_post();
|
|
||||||
$output .= '<li class="wplt_tick">
|
|
||||||
<p><span class="wplt_tick_time">'.get_the_time('d.m.Y H.i').'</span>
|
|
||||||
<span class="wplt_tick_title">'.get_the_title().'</span></p>
|
|
||||||
<p class="wplt_tick_content">'.get_the_content().'</p></li>';
|
|
||||||
endwhile;
|
|
||||||
|
|
||||||
// Echo success response
|
|
||||||
echo $output;
|
|
||||||
}
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
//add_action( 'wp_ajax_wplt_download_upload', 'wplt_download_upload_ajax' );
|
|
@ -55,15 +55,34 @@ class WPLiveticker2_Admin extends WPLiveticker2 {
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function register_settings() {
|
public static function register_settings() {
|
||||||
register_setting( 'wplt2_settings', 'wplt2', array( 'WPLiveticker2_Admin', 'validate_settings' ) );
|
register_setting(
|
||||||
|
'wplt2_settings',
|
||||||
|
'wplt2',
|
||||||
|
array( 'WPLiveticker2_Admin', 'validate_settings' )
|
||||||
|
);
|
||||||
|
|
||||||
// Form sections.
|
// Form sections.
|
||||||
add_settings_section( 'wplt2_settings_general', __( 'General', 'wplt2' ), array( 'WPLiveticker2_Admin', 'settings_general_section' ), __FILE__ );
|
add_settings_section(
|
||||||
add_settings_section( 'wplt2_settings_uninstall', __( 'Uninstall', 'wplt2' ), array( 'WPLiveticker2_Admin', 'settings_uninstall_section' ), __FILE__ );
|
'wplt2_settings_general',
|
||||||
|
__( 'General', 'wplt2' ),
|
||||||
|
array( 'WPLiveticker2_Admin', 'settings_general_section' ),
|
||||||
|
'wplt2-settings-page'
|
||||||
|
);
|
||||||
|
|
||||||
// Form fields.
|
// Form fields.
|
||||||
add_settings_field( 'enable_css', __( 'Default CSS Styles', 'wplt2' ), array( 'WPLiveticker2_Admin', 'settings_enable_css_field' ), __FILE__, 'wplt2_settings_general' );
|
add_settings_field(
|
||||||
add_settings_field( 'reset_settings', __( 'Reset Settings', 'wplt2' ), array( 'WPLiveticker2_Admin', 'settings_reset_settings_field' ), __FILE__, 'wplt2_settings_uninstall' );
|
'enable_ajax',
|
||||||
|
__( 'Use AJAX', 'wplt2' ),
|
||||||
|
array( 'WPLiveticker2_Admin', 'settings_enable_ajax_field' ),
|
||||||
|
'wplt2-settings-page',
|
||||||
|
'wplt2_settings_general' );
|
||||||
|
|
||||||
|
add_settings_field(
|
||||||
|
'enable_css',
|
||||||
|
__( 'Default CSS Styles', 'wplt2' ),
|
||||||
|
array( 'WPLiveticker2_Admin', 'settings_enable_css_field' ),
|
||||||
|
'wplt2-settings-page',
|
||||||
|
'wplt2_settings_general' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,11 +109,26 @@ class WPLiveticker2_Admin extends WPLiveticker2 {
|
|||||||
public static function settings_enable_css_field() {
|
public static function settings_enable_css_field() {
|
||||||
$checked = self::$_options['enable_css'];
|
$checked = self::$_options['enable_css'];
|
||||||
|
|
||||||
echo '<label for="wp-liveticker2[enable_css]">';
|
echo '<label for="' . esc_attr( self::OPTION ) . '[enable_css]">';
|
||||||
echo '<input type="checkbox" name="wp-liveticker2[enable_css]" value="1" ' . checked( $checked, 1, false ) . ' /> ';
|
echo '<input type="checkbox" name="' . esc_attr( self::OPTION ) . '[enable_css]" value="1" ' . checked( $checked, 1, false ) . ' /> ';
|
||||||
esc_html_e( 'Enable', 'wplt2' );
|
esc_html_e( 'Enable', 'wplt2' );
|
||||||
echo '</label>';
|
echo '</label>';
|
||||||
echo '<p class="description">' . esc_html__( 'Disable this option to remove the default button styling and the Delightful Downloads CSS file.', 'wplt2' ) . '</p>';
|
echo '<p class="description">' . esc_html__( 'Disable this option to remove the default styling CSS file.', 'wplt2' ) . '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render enable AJAX field.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function settings_enable_ajax_field() {
|
||||||
|
$checked = self::$_options['enable_ajax'];
|
||||||
|
|
||||||
|
echo '<label for="' . esc_attr( self::OPTION ) . '[enable_ajax]">';
|
||||||
|
echo '<input type="checkbox" name="' . esc_attr( self::OPTION ) . '[enable_ajax]" value="1" ' . checked( $checked, 1, false ) . ' /> ';
|
||||||
|
esc_html_e( 'Enable', 'wplt2' );
|
||||||
|
echo '</label>';
|
||||||
|
echo '<p class="description">' . esc_html__( 'Disable this option to not use AJAX update. This means all liveticker widgets and shortcodes are only updated once on site load.', 'wplt2' ) . '</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -136,7 +170,7 @@ class WPLiveticker2_Admin extends WPLiveticker2 {
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function settings_page() {
|
public static function settings_page() {
|
||||||
include '../views/settings-page.php';
|
include WPLT2_DIR . 'views/settings-page.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,7 +182,6 @@ class WPLiveticker2_Admin extends WPLiveticker2 {
|
|||||||
*/
|
*/
|
||||||
public static function validate_settings( $input ) {
|
public static function validate_settings( $input ) {
|
||||||
$defaults = self::default_options();
|
$defaults = self::default_options();
|
||||||
|
|
||||||
return wp_parse_args( $input, $defaults );
|
return wp_parse_args( $input, $defaults );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ class WPLiveticker2_Widget extends WP_Widget {
|
|||||||
$ajax = isset( $instance['ajax'] ) ? esc_attr( $instance['ajax'] ) : '0';
|
$ajax = isset( $instance['ajax'] ) ? esc_attr( $instance['ajax'] ) : '0';
|
||||||
$categories = get_terms( 'wplt2_ticker', 'orderby=name&order=ASC' );
|
$categories = get_terms( 'wplt2_ticker', 'orderby=name&order=ASC' );
|
||||||
|
|
||||||
include '../views/widget-form.php';
|
include WPLT2_DIR . 'views/widget-form.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,6 +68,11 @@ class WPLiveticker2 {
|
|||||||
// Enqueue styles.
|
// Enqueue styles.
|
||||||
add_action( 'wp_footer', array( 'WPLiveticker2', 'enqueue_styles' ) );
|
add_action( 'wp_footer', array( 'WPLiveticker2', 'enqueue_styles' ) );
|
||||||
|
|
||||||
|
// Add AJAX hook if configured.
|
||||||
|
if ( 1 === self::$_options['enable_ajax'] ) {
|
||||||
|
add_action( 'wp_ajax_wplt2_update-ticks', array( 'WPLiveticker2', 'ajax_update' ) );
|
||||||
|
}
|
||||||
|
|
||||||
// Admin only actions.
|
// Admin only actions.
|
||||||
if ( is_admin() ) {
|
if ( is_admin() ) {
|
||||||
// Add dashboard "right now" functionality.
|
// Add dashboard "right now" functionality.
|
||||||
@ -207,6 +212,50 @@ class WPLiveticker2 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process Ajax upload file
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function ajax_update() {
|
||||||
|
// TODO: re-enable security checks.
|
||||||
|
// check_ajax_referer( 'wplt_ajax_get_new_ticks' );
|
||||||
|
|
||||||
|
// Timestamp for request.
|
||||||
|
$slug = $_REQUEST['sl'];
|
||||||
|
$time = $_REQUEST['ts'];
|
||||||
|
|
||||||
|
if ( $slug ) {
|
||||||
|
// get new ticks from database
|
||||||
|
$args = array(
|
||||||
|
'post_type' => 'wplt_tick',
|
||||||
|
'posts_per_page' => '-1',
|
||||||
|
'tax_query' => array(
|
||||||
|
array(
|
||||||
|
'taxonomy' => 'wplt_ticker',
|
||||||
|
'field' => 'slug',
|
||||||
|
'terms' => $slug
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$wp_query = new WP_Query( $args );
|
||||||
|
$output = '';
|
||||||
|
|
||||||
|
while ( $wp_query->have_posts() ) {
|
||||||
|
$wp_query->the_post();
|
||||||
|
$output .= '<li class="wplt_tick">'
|
||||||
|
. '<p><span class="wplt_tick_time">' . get_the_time( 'd.m.Y H.i' ) . '</span>'
|
||||||
|
. '<span class="wplt_tick_title">' . get_the_title() . '</span></p>'
|
||||||
|
. '<p class="wplt_tick_content">' . get_the_content() . '</p></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Echo success response
|
||||||
|
echo $output;
|
||||||
|
}
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update options.
|
* Update options.
|
||||||
*
|
*
|
||||||
|
@ -20,10 +20,8 @@ defined( 'ABSPATH' ) || exit;
|
|||||||
<form action="options.php" method="post">
|
<form action="options.php" method="post">
|
||||||
<?php
|
<?php
|
||||||
settings_fields( 'wplt2_settings' );
|
settings_fields( 'wplt2_settings' );
|
||||||
do_settings_sections( __FILE__ );
|
do_settings_sections( 'wplt2-settings-page' );
|
||||||
|
submit_button();
|
||||||
?>
|
?>
|
||||||
<p class="submit">
|
|
||||||
<input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes">
|
|
||||||
</p>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -108,7 +108,7 @@ defined( 'ABSPATH' ) || exit;
|
|||||||
<label for="<?php echo esc_attr( $this->get_field_id( 'highlight_time' ) ); ?>"><?php esc_html_e( 'Highlight time [s]:', 'wplt2' ); ?></label>
|
<label for="<?php echo esc_attr( $this->get_field_id( 'highlight_time' ) ); ?>"><?php esc_html_e( 'Highlight time [s]:', 'wplt2' ); ?></label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'highlight_time' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'highlight_time' ) ); ?>" type="text" value="<?php echo esc_html( $highlight_time ); ?>" />
|
<input type="number" class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'highlight_time' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'highlight_time' ) ); ?>" type="text" value="<?php echo esc_html( $highlight_time ); ?>" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -37,6 +37,7 @@ defined( 'ABSPATH' ) || exit;
|
|||||||
define( 'WPLT2_FILE', __FILE__ );
|
define( 'WPLT2_FILE', __FILE__ );
|
||||||
define( 'WPLT2_DIR', plugin_dir_path( __FILE__ ) );
|
define( 'WPLT2_DIR', plugin_dir_path( __FILE__ ) );
|
||||||
define( 'WPLT2_BASE', plugin_dir_url( __FILE__ ) );
|
define( 'WPLT2_BASE', plugin_dir_url( __FILE__ ) );
|
||||||
|
define( 'WPLT2_BASENAME', plugin_basename( __FILE__ ) );
|
||||||
|
|
||||||
// System Hooks.
|
// System Hooks.
|
||||||
add_action( 'init', array( 'WPLiveticker2', 'register_types' ) );
|
add_action( 'init', array( 'WPLiveticker2', 'register_types' ) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user