1
0
Fork 0
forked from lino/radar-wp

Compare commits

...

6 commits

Author SHA1 Message Date
lino
14abfc0d66 add new description to test update 2024-08-19 04:08:12 +02:00
lino
98c8386a1c update plugin path 2024-08-19 04:06:18 +02:00
lino
a9ef9963af add new description to test update 2024-08-19 03:56:53 +02:00
lino
9d40e375bf add custom functionality 2024-08-19 03:54:41 +02:00
ekes
75cb545d2b Prepare for new release. 2022-03-24 21:28:41 +01:00
ekes
7083316af1 Fixes and updates to not break 5.9 2022-03-24 21:22:19 +01:00
8 changed files with 167 additions and 120 deletions

View file

@ -1,72 +1,72 @@
.squat-radar.radar-event { .squat-radar.radar-event {
margin-bottom: 1em; margin-bottom: 1em;
padding-bottom: 1em; padding-bottom: 1em;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
text-align:left; text-align:left;
} }
.squat-radar.radar-event::after { .squat-radar.radar-event::after {
content: ''; content: '';
display: block; display: block;
float: none; float: none;
clear: both; clear: both;
} }
.squat-radar.rader-event:last-child { .squat-radar.rader-event:last-child {
border-bottom: 0; border-bottom: 0;
padding-bottom: 0; padding-bottom: 0;
margin-bottom: 0; margin-bottom: 0;
} }
.squat-radar.radar-event-cancelled { .squat-radar.radar-event-cancelled {
text-decoration: line-through; text-decoration: line-through;
} }
.squat-radar .squat-radar-title { .squat-radar .squat-radar-title {
line-height: 1; line-height: 1;
font-size: 1.4em; font-size: 1.4em;
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
.squat-radar .squat-radar-datetime { .squat-radar .squat-radar-datetime {
font-weight: bold; font-weight: bold;
} }
.squat-radar .squat-radar-datetime.squat-radar-datetime-start::before { .squat-radar .squat-radar-datetime.squat-radar-datetime-start::before {
content: ''; content: '';
display: block; display: block;
float: none; float: none;
clear: both; clear: both;
} }
.squat-radar .squat-radar-event-start-end::after, .squat-radar .squat-radar-event-start-end::after,
.squat-radar .squat-radar-event-start { .squat-radar .squat-radar-event-start {
content: ''; content: '';
display: block; display: block;
float: none; float: none;
clear: both; clear: both;
} }
.squat-radar .squat-radar-list li { .squat-radar .squat-radar-list li {
display: inline; display: inline;
list-style: none; list-style: none;
} }
.squat-radar .squat-radar-list li:after { .squat-radar .squat-radar-list li:after {
content: ", "; content: ", ";
} }
.squat-radar .squat-radar-list li:last-child:after { .squat-radar .squat-radar-list li:last-child:after {
content: ""; content: "";
} }
.squat-radar a.squat-radar-url-more { .squat-radar a.squat-radar-url-more {
padding: .4180469716em 1.11575em; padding: .4180469716em 1.11575em;
margin-left: 10px; margin-left: 10px;
/* margin-bottom: 10px;*/ /* margin-bottom: 10px;*/
float: right; float: right;
} }
.squat-radar a.squat-radar-url-more:hover { .squat-radar a.squat-radar-url-more:hover {
color: white !important; color: white;
} }
.squat_radar a.squat-radar-url-more:focus { .squat_radar a.squat-radar-url-more:focus {
outline: 0; outline: 0;
} }

View file

@ -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){

View file

@ -1,5 +1,5 @@
{ {
"name": "radar-wp/squat-radar", "name": "radar-wp-custom/squat-radar",
"description": "Wordpress Calendar widget for https://radar.squat.net/ events", "description": "Wordpress Calendar widget for https://radar.squat.net/ events",
"type": "wordpress-plugin", "type": "wordpress-plugin",
"homepage": "https://radar.squat.net", "homepage": "https://radar.squat.net",

View file

@ -209,7 +209,8 @@ class Squat_Radar_Formatter {
private static function field_date_format($time, $start_end, $time_only = FALSE) { private static function field_date_format($time, $start_end, $time_only = FALSE) {
$date_format = get_option('squat_radar_date_format', 'j M Y'); $date_format = get_option('squat_radar_date_format', 'd.m.');
$year_format = get_option('squat_radar_date_format', 'Y');
$time_format = get_option('squat_radar_time_format', 'H:i'); $time_format = get_option('squat_radar_time_format', 'H:i');
// Remove offset to stop time being converted to UTC. // Remove offset to stop time being converted to UTC.
@ -220,6 +221,9 @@ class Squat_Radar_Formatter {
$output .= '<span class="squat-radar-date">'; $output .= '<span class="squat-radar-date">';
$output .= date_i18n($date_format, strtotime($time)); $output .= date_i18n($date_format, strtotime($time));
$output .= '</span> '; $output .= '</span> ';
$output .= '<span class="squat-radar-year">';
$output .= date_i18n($year_format, strtotime($time));
$output .= '</span> ';
} }
$output .= '<span class="squat-radar-time">'; $output .= '<span class="squat-radar-time">';
$output .= date_i18n($time_format, strtotime($time)); $output .= date_i18n($time_format, strtotime($time));
@ -301,11 +305,11 @@ class Squat_Radar_Formatter {
*/ */
static public function field_link_html($value, $original, $field, $context) { static public function field_link_html($value, $original, $field, $context) {
if ( ($field[0] == 'title' || $field[0] == 'title_field') && ! empty($context['event']['url'])) { if ( ($field[0] == 'title' || $field[0] == 'title_field') && ! empty($context['event']['url'])) {
return '<a href="' . esc_url($context['event']['url']) . '" class="squat-radar-url squat-radar-url-title">' . sanitize_text_field( $value ) . '</a>'; return '<a href="' . esc_url($context['event']['url']) . '" class="squat-radar-url squat-radar-url-title" target="_blank">' . sanitize_text_field( $value ) . '</a>';
} }
if ($field[0] == 'url' && count($field) == 1) { if ($field[0] == 'url' && count($field) == 1) {
return '<a href="' . esc_url_raw($value) . '" class="squat-radar-url squat-radar-url-more">' . __('more…', 'squat-radar') . '</a>'; return '<a href="' . esc_url_raw($value) . '" class="squat-radar-url squat-radar-url-more" target="_blank">' . __('more…', 'squat-radar') . '</a>';
} }
elseif ($field[0] == 'url') { elseif ($field[0] == 'url') {
$title = esc_url($value); $title = esc_url($value);

View file

@ -25,11 +25,11 @@ class Squat_Radar_Widget extends WP_Widget {
/** /**
* Register the widget * Register the widget
*/ */
public static function register_widget() { public static function register_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);
} }
/** /**
@ -75,9 +68,9 @@ class Squat_Radar_Widget extends WP_Widget {
protected static function cache_refresh($instance) { protected static function cache_refresh($instance) {
$connector = new Squat_Radar_Connector(); $connector = new Squat_Radar_Connector();
$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.
@ -119,9 +112,12 @@ 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.
// //
@ -329,8 +324,7 @@ class Squat_Radar_Widget extends WP_Widget {
* Save widget options. * Save widget options.
*/ */
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'] );
} }
@ -338,10 +332,18 @@ class Squat_Radar_Widget extends WP_Widget {
$options['title'] = ''; $options['title'] = '';
} }
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]);

45
plugin-change-README.txt Normal file
View file

@ -0,0 +1,45 @@
PATH: /wp-content/plugins/squat-radar-calendar-integration/includes/squat-radar-formatter.php
In dem Block der Datumsangabe wurde das Tag/Monat und Jahr separiert. (Und deutsche Zeitangaben)
private static function field_date_format($time, $start_end, $time_only = FALSE) {
$date_format = get_option('squat_radar_date_format', 'd.m.');
$year_format = get_option('squat_radar_date_format', 'Y');
$time_format = get_option('squat_radar_time_format', 'H:i');
// Remove offset to stop time being converted to UTC.
$time = substr($time, 0, -6);
$output = '<span class="squat-radar-datetime squat-radar-datetime-' . $start_end .'">';
if ( ! $time_only ) {
$output .= '<span class="squat-radar-date">';
$output .= date_i18n($date_format, strtotime($time));
$output .= '</span> ';
$output .= '<span class="squat-radar-year">';
$output .= date_i18n($year_format, strtotime($time));
$output .= '</span> ';
}
Links werden im anderen Tab geöffnet (target="_blank" hinzufügen)
static public function field_link_html($value, $original, $field, $context) {
if ( ($field[0] == 'title' || $field[0] == 'title_field') && ! empty($context['event']['url'])) {
return '<a href="' . esc_url($context['event']['url']) . '" class="squat-radar-url squat-radar-url-title" target="_blank">' . sanitize_text_field( $value ) . '</a>';
}
if ($field[0] == 'url' && count($field) == 1) {
return '<a href="' . esc_url_raw($value) . '" class="squat-radar-url squat-radar-url-more" target="_blank">' . __('more…', 'squat-radar') . '</a>';
}
css squat-radar.css
important entfernen
.squat-radar a.squat-radar-url-more:hover {
color: white !important;
}

View file

@ -1,9 +1,9 @@
=== squat-radar === === squat-radar ===
Tags: calendar,events Tags: calendar,events
Requires at least: 4.0 Requires at least: 5.3
Tested up to: 5.8 Tested up to: 5.9
Requires PHP: 5.4.0 Requires PHP: 7.4.0
Stable tag: 2.0.8 Stable tag: 2.0.9
License: GPLv2 or later License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html License URI: https://www.gnu.org/licenses/gpl-2.0.html

View file

@ -8,15 +8,16 @@
* @package Squat_Radar * @package Squat_Radar
* *
* @wordpress-plugin * @wordpress-plugin
* Plugin Name: Squat Radar calendar integration * Plugin Name: Squat Radar calendar integration custom
* Plugin URI: https://0xacab.org/radar/radar-wp * Plugin URI: https://0xacab.org/radar/radar-wp
* Description: Provides widget, and shortcode, integration for displaying events from https://radar.squat.net/ agenda. * Description: Provides widget, and shortcode, integration for displaying events from https://radar.squat.net/ agenda.
* Version: 2.0.8 * Version: 2.0.9
* Author: Radar contributors * Author: Radar contributors
* License: GPL-2.0+ * License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: squat-radar * Text Domain: squat-radar
* Domain Path: /languages * Domain Path: /languages
* Gitea Plugin URI: https://git.systemausfall.org/newyorck/radar-wp-custom
*/ */
if ( ! defined( 'ABSPATH' ) ) { if ( ! defined( 'ABSPATH' ) ) {