mirror of
https://0xacab.org/radar/radar-wp.git
synced 2024-12-22 16:46:29 +01:00
Fixes and updates to not break 5.9
This commit is contained in:
parent
a34db48a4b
commit
7083316af1
2 changed files with 35 additions and 38 deletions
|
@ -7,7 +7,7 @@ jQuery(function($){
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: {
|
data: {
|
||||||
action: "squat_radar_events",
|
action: "squat_radar_events",
|
||||||
instance: window[widget.id],
|
instance: squat_radar_widget[widget.id],
|
||||||
},
|
},
|
||||||
success: function(result){
|
success: function(result){
|
||||||
|
|
||||||
|
@ -20,17 +20,6 @@ jQuery(function($){
|
||||||
} else {
|
} else {
|
||||||
$(widget).empty();
|
$(widget).empty();
|
||||||
$(widget).append(result.html);
|
$(widget).append(result.html);
|
||||||
// $(".squat-li a").on('click', function(e){
|
|
||||||
|
|
||||||
// if (this.hasAttribute("data-link")) {
|
|
||||||
// e.preventDefault();
|
|
||||||
// $(this).parent().find('p').show();
|
|
||||||
// this.textContent = this.getAttribute('data-nog-meer');
|
|
||||||
// this.setAttribute('href', this.getAttribute('data-link'));
|
|
||||||
// this.removeAttribute('data-link');
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function(res){
|
error: function(res){
|
||||||
|
|
|
@ -29,7 +29,7 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
register_widget( __CLASS__ );
|
register_widget( __CLASS__ );
|
||||||
add_action( 'wp_ajax_squat_radar_events', [__CLASS__, 'ajax_callback'] );
|
add_action( 'wp_ajax_squat_radar_events', [__CLASS__, 'ajax_callback'] );
|
||||||
add_action( 'wp_ajax_nopriv_squat_radar_events', [__CLASS__, 'ajax_callback'] );
|
add_action( 'wp_ajax_nopriv_squat_radar_events', [__CLASS__, 'ajax_callback'] );
|
||||||
add_action( 'wp_enqueue_scripts', [__CLASS__, 'widget_script'] );
|
wp_register_script( 'squat-radar-widget', SQUAT_RADAR_URL . 'assets/squat-radar.js', ['jquery'] );
|
||||||
add_action( 'wp_enqueue_scripts', [__CLASS__, 'widget_style'] );
|
add_action( 'wp_enqueue_scripts', [__CLASS__, 'widget_style'] );
|
||||||
|
|
||||||
add_action( 'squat_radar_widget_cache_cron', [__CLASS__, 'cache_cron'] );
|
add_action( 'squat_radar_widget_cache_cron', [__CLASS__, 'cache_cron'] );
|
||||||
|
@ -44,13 +44,6 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
wp_enqueue_style( 'squat-radar-widget' );
|
wp_enqueue_style( 'squat-radar-widget' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Enqueue scripts callback, add JS.
|
|
||||||
*/
|
|
||||||
static public function widget_script() {
|
|
||||||
wp_register_script( 'squat-radar-widget', SQUAT_RADAR_URL . 'assets/squat-radar.js', ['jquery'] );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cron action.
|
* Cron action.
|
||||||
*
|
*
|
||||||
|
@ -66,7 +59,7 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
add_option('squat_radar_widget_cron_run', $last_run);
|
update_option('squat_radar_widget_cron_run', $last_run);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,7 +70,7 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
|
|
||||||
$languages = apply_filters('wpml_active_languages', NULL);
|
$languages = apply_filters('wpml_active_languages', NULL);
|
||||||
$languages = is_array($languages) ? array_keys($languages) : [];
|
$languages = is_array($languages) ? array_keys($languages) : [];
|
||||||
$languages = array_merge($instance['url']['keys']['language'], $languages);
|
$languages = array_merge([$instance['url']['keys']['language']], $languages);
|
||||||
foreach ($languages as $language) {
|
foreach ($languages as $language) {
|
||||||
try {
|
try {
|
||||||
// Force update. Don't set expire.
|
// Force update. Don't set expire.
|
||||||
|
@ -120,8 +113,11 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
wp_enqueue_script( 'squat-radar-widget');
|
wp_enqueue_script( 'squat-radar-widget');
|
||||||
wp_localize_script( 'squat-radar-widget', 'squat_radar_widget', [ 'ajaxurl' => admin_url( 'admin-ajax.php' ) ] );
|
wp_add_inline_script('squat-radar-widget',
|
||||||
wp_localize_script( 'squat-radar-widget', $widget_id, ['number' => $this->number] );
|
'const squat_radar_widget = ' . json_encode( [
|
||||||
|
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
||||||
|
$widget_id => $this->number,
|
||||||
|
] ) . ';', 'before');
|
||||||
|
|
||||||
echo '<div id="' . $widget_id . '" class="squat-radar-widget squat-radar-ajax"><a href="' . esc_url_raw( $instance['url']['value'] ) . '">'
|
echo '<div id="' . $widget_id . '" class="squat-radar-widget squat-radar-ajax"><a href="' . esc_url_raw( $instance['url']['value'] ) . '">'
|
||||||
. esc_url( $instance['url']['value'] )
|
. esc_url( $instance['url']['value'] )
|
||||||
|
@ -142,7 +138,7 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
// Load instance configuration from ID.
|
// Load instance configuration from ID.
|
||||||
$instance_number = (int) $_POST['instance']['number'];
|
$instance_number = (int) $_POST['instance'];
|
||||||
$widget_options_all = get_option('widget_squat_radar');
|
$widget_options_all = get_option('widget_squat_radar');
|
||||||
if ( ! isset($widget_options_all[$instance_number]) ) {
|
if ( ! isset($widget_options_all[$instance_number]) ) {
|
||||||
wp_die();
|
wp_die();
|
||||||
|
@ -181,7 +177,6 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
* Widget options.
|
* Widget options.
|
||||||
*/
|
*/
|
||||||
public function form( $instance ) {
|
public function form( $instance ) {
|
||||||
|
|
||||||
//
|
//
|
||||||
// Title.
|
// Title.
|
||||||
//
|
//
|
||||||
|
@ -330,7 +325,6 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
*/
|
*/
|
||||||
public function update( $new_instance, $old_instance ) {
|
public function update( $new_instance, $old_instance ) {
|
||||||
$options = [];
|
$options = [];
|
||||||
|
|
||||||
if ( ! empty( $new_instance['title'] ) ) {
|
if ( ! empty( $new_instance['title'] ) ) {
|
||||||
$options['title'] = sanitize_text_field( $new_instance['title'] );
|
$options['title'] = sanitize_text_field( $new_instance['title'] );
|
||||||
}
|
}
|
||||||
|
@ -339,9 +333,17 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! empty($new_instance['url']) ) {
|
if ( ! empty($new_instance['url']) ) {
|
||||||
$keys = $this->connector->decode_search_url($new_instance['url']);
|
// The value passed here changes somewhere post WP5.4.
|
||||||
|
// More recent versions have the options array in the instance.
|
||||||
|
if (is_string($new_instance['url'])) {
|
||||||
|
$url = $new_instance['url'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$url = $new_instance['url']['value'];
|
||||||
|
}
|
||||||
|
$keys = $this->connector->decode_search_url($url);
|
||||||
$options['url']['keys'] = $keys;
|
$options['url']['keys'] = $keys;
|
||||||
$options['url']['value'] = $new_instance['url'];
|
$options['url']['value'] = $url;
|
||||||
if (empty($keys)) {
|
if (empty($keys)) {
|
||||||
$options['url']['error'] = 'URL not recognised';
|
$options['url']['error'] = 'URL not recognised';
|
||||||
}
|
}
|
||||||
|
@ -350,14 +352,20 @@ class Squat_Radar_Widget extends WP_Widget {
|
||||||
$options['url'] = ['value' => '', 'keys' => []];
|
$options['url'] = ['value' => '', 'keys' => []];
|
||||||
}
|
}
|
||||||
|
|
||||||
$options['fields'] = [];
|
// When called by 5.9 ajax this contains the already set array.
|
||||||
|
// Just check it's sane.
|
||||||
|
$options['fields'] = is_array($new_instance['fields']) ? $new_instance['fields'] : [];
|
||||||
|
array_filter($options['fields'], function ($v, $k) {
|
||||||
|
return ($v == $k) && (preg_match('([^a-zA-Z_:])', $k) === 0);
|
||||||
|
}, ARRAY_FILTER_USE_BOTH);
|
||||||
|
|
||||||
foreach ($this->preset_fields() as $field_name => $field_label) {
|
foreach ($this->preset_fields() as $field_name => $field_label) {
|
||||||
if ( ! empty($new_instance['field-' . $field_name]) ) {
|
if ( ! empty($new_instance['field-' . $field_name]) ) {
|
||||||
$options['fields'][$field_name] = $field_name;
|
$options['fields'][$field_name] = $field_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! empty($new_instance['fields']) ) {
|
if ( ! empty($new_instance['fields']) && is_string($new_instance['fields']) ) {
|
||||||
$matches = [];
|
$matches = [];
|
||||||
preg_match_all('/([a-zA-Z_:]+)/', $new_instance['fields'], $matches);
|
preg_match_all('/([a-zA-Z_:]+)/', $new_instance['fields'], $matches);
|
||||||
$options['fields'] += array_combine($matches[0], $matches[0]);
|
$options['fields'] += array_combine($matches[0], $matches[0]);
|
||||||
|
|
Loading…
Reference in a new issue