diff --git a/assets/squat-radar.css b/assets/squat-radar.css index ff69778..bc17894 100644 --- a/assets/squat-radar.css +++ b/assets/squat-radar.css @@ -1,72 +1,72 @@ -.squat-radar.radar-event { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid #ddd; - text-align:left; -} -.squat-radar.radar-event::after { - content: ''; - display: block; - float: none; - clear: both; -} -.squat-radar.rader-event:last-child { - border-bottom: 0; - padding-bottom: 0; - margin-bottom: 0; -} -.squat-radar.radar-event-cancelled { - text-decoration: line-through; -} - -.squat-radar .squat-radar-title { - line-height: 1; - font-size: 1.4em; - margin-bottom: 0.2em; -} - -.squat-radar .squat-radar-datetime { - font-weight: bold; -} - -.squat-radar .squat-radar-datetime.squat-radar-datetime-start::before { - content: ''; - display: block; - float: none; - clear: both; -} - -.squat-radar .squat-radar-event-start-end::after, -.squat-radar .squat-radar-event-start { - content: ''; - display: block; - float: none; - clear: both; -} - -.squat-radar .squat-radar-list li { - display: inline; - list-style: none; -} - -.squat-radar .squat-radar-list li:after { - content: ", "; -} - -.squat-radar .squat-radar-list li:last-child:after { - content: ""; -} - -.squat-radar a.squat-radar-url-more { - padding: .4180469716em 1.11575em; - margin-left: 10px; -/* margin-bottom: 10px;*/ - float: right; -} -.squat-radar a.squat-radar-url-more:hover { - color: white; -} - -.squat_radar a.squat-radar-url-more:focus { - outline: 0; -} +.squat-radar.radar-event { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid #ddd; + text-align:left; +} +.squat-radar.radar-event::after { + content: ''; + display: block; + float: none; + clear: both; +} +.squat-radar.rader-event:last-child { + border-bottom: 0; + padding-bottom: 0; + margin-bottom: 0; +} +.squat-radar.radar-event-cancelled { + text-decoration: line-through; +} + +.squat-radar .squat-radar-title { + line-height: 1; + font-size: 1.4em; + margin-bottom: 0.2em; +} + +.squat-radar .squat-radar-datetime { + font-weight: bold; +} + +.squat-radar .squat-radar-datetime.squat-radar-datetime-start::before { + content: ''; + display: block; + float: none; + clear: both; +} + +.squat-radar .squat-radar-event-start-end::after, +.squat-radar .squat-radar-event-start { + content: ''; + display: block; + float: none; + clear: both; +} + +.squat-radar .squat-radar-list li { + display: inline; + list-style: none; +} + +.squat-radar .squat-radar-list li:after { + content: ", "; +} + +.squat-radar .squat-radar-list li:last-child:after { + content: ""; +} + +.squat-radar a.squat-radar-url-more { + padding: .4180469716em 1.11575em; + margin-left: 10px; +/* margin-bottom: 10px;*/ + float: right; +} +.squat-radar a.squat-radar-url-more:hover { + color: white !important; +} + +.squat_radar a.squat-radar-url-more:focus { + outline: 0; +} diff --git a/assets/squat-radar.js b/assets/squat-radar.js index 8939ee9..00394f9 100644 --- a/assets/squat-radar.js +++ b/assets/squat-radar.js @@ -7,7 +7,7 @@ jQuery(function($){ type: 'POST', data: { action: "squat_radar_events", - instance: squat_radar_widget[widget.id], + instance: window[widget.id], }, success: function(result){ @@ -20,6 +20,17 @@ jQuery(function($){ } else { $(widget).empty(); $(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){ diff --git a/composer.json b/composer.json index e4456ca..5963699 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "radar-wp-custom/squat-radar", + "name": "radar-wp/squat-radar", "description": "Wordpress Calendar widget for https://radar.squat.net/ events", "type": "wordpress-plugin", "homepage": "https://radar.squat.net", diff --git a/includes/squat-radar-formatter.php b/includes/squat-radar-formatter.php index 06288dc..8481f49 100644 --- a/includes/squat-radar-formatter.php +++ b/includes/squat-radar-formatter.php @@ -209,8 +209,7 @@ class Squat_Radar_Formatter { 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'); + $date_format = get_option('squat_radar_date_format', 'j M Y'); $time_format = get_option('squat_radar_time_format', 'H:i'); // Remove offset to stop time being converted to UTC. @@ -221,9 +220,6 @@ class Squat_Radar_Formatter { $output .= ''; $output .= date_i18n($date_format, strtotime($time)); $output .= ' '; - $output .= ''; - $output .= date_i18n($year_format, strtotime($time)); - $output .= ' '; } $output .= ''; $output .= date_i18n($time_format, strtotime($time)); @@ -305,11 +301,11 @@ class Squat_Radar_Formatter { */ static public function field_link_html($value, $original, $field, $context) { if ( ($field[0] == 'title' || $field[0] == 'title_field') && ! empty($context['event']['url'])) { - return '' . sanitize_text_field( $value ) . ''; + return '' . sanitize_text_field( $value ) . ''; } if ($field[0] == 'url' && count($field) == 1) { - return '' . __('more…', 'squat-radar') . ''; + return '' . __('more…', 'squat-radar') . ''; } elseif ($field[0] == 'url') { $title = esc_url($value); diff --git a/includes/squat-radar-widget.php b/includes/squat-radar-widget.php index 26034ac..f4a6eef 100644 --- a/includes/squat-radar-widget.php +++ b/includes/squat-radar-widget.php @@ -25,11 +25,11 @@ class Squat_Radar_Widget extends WP_Widget { /** * Register the widget */ - public static function register_widget() { - register_widget( __CLASS__ ); + public static function register_widget() { + register_widget( __CLASS__ ); add_action( 'wp_ajax_squat_radar_events', [__CLASS__, 'ajax_callback'] ); add_action( 'wp_ajax_nopriv_squat_radar_events', [__CLASS__, 'ajax_callback'] ); - wp_register_script( 'squat-radar-widget', SQUAT_RADAR_URL . 'assets/squat-radar.js', ['jquery'] ); + add_action( 'wp_enqueue_scripts', [__CLASS__, 'widget_script'] ); add_action( 'wp_enqueue_scripts', [__CLASS__, 'widget_style'] ); add_action( 'squat_radar_widget_cache_cron', [__CLASS__, 'cache_cron'] ); @@ -44,6 +44,13 @@ class Squat_Radar_Widget extends WP_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. * @@ -59,7 +66,7 @@ class Squat_Radar_Widget extends WP_Widget { } } } - update_option('squat_radar_widget_cron_run', $last_run); + add_option('squat_radar_widget_cron_run', $last_run); } /** @@ -68,9 +75,9 @@ class Squat_Radar_Widget extends WP_Widget { protected static function cache_refresh($instance) { $connector = new Squat_Radar_Connector(); - $languages = apply_filters('wpml_active_languages', NULL); - $languages = is_array($languages) ? array_keys($languages) : []; - $languages = array_merge([$instance['url']['keys']['language']], $languages); + $languages = apply_filters('wpml_active_languages', NULL); + $languages = is_array($languages) ? array_keys($languages) : []; + $languages = array_merge($instance['url']['keys']['language'], $languages); foreach ($languages as $language) { try { // Force update. Don't set expire. @@ -112,12 +119,9 @@ class Squat_Radar_Widget extends WP_Widget { } } else { - wp_enqueue_script( 'squat-radar-widget'); - wp_add_inline_script('squat-radar-widget', - 'const squat_radar_widget = ' . json_encode( [ - 'ajaxurl' => admin_url( 'admin-ajax.php' ), - $widget_id => $this->number, - ] ) . ';', 'before'); + wp_enqueue_script( 'squat-radar-widget'); + wp_localize_script( 'squat-radar-widget', 'squat_radar_widget', [ 'ajaxurl' => admin_url( 'admin-ajax.php' ) ] ); + wp_localize_script( 'squat-radar-widget', $widget_id, ['number' => $this->number] ); echo '
' . esc_url( $instance['url']['value'] ) @@ -138,7 +142,7 @@ class Squat_Radar_Widget extends WP_Widget { $data = []; // Load instance configuration from ID. - $instance_number = (int) $_POST['instance']; + $instance_number = (int) $_POST['instance']['number']; $widget_options_all = get_option('widget_squat_radar'); if ( ! isset($widget_options_all[$instance_number]) ) { wp_die(); @@ -177,6 +181,7 @@ class Squat_Radar_Widget extends WP_Widget { * Widget options. */ public function form( $instance ) { + // // Title. // @@ -324,7 +329,8 @@ class Squat_Radar_Widget extends WP_Widget { * Save widget options. */ public function update( $new_instance, $old_instance ) { - $options = []; + $options = []; + if ( ! empty( $new_instance['title'] ) ) { $options['title'] = sanitize_text_field( $new_instance['title'] ); } @@ -332,18 +338,10 @@ class Squat_Radar_Widget extends WP_Widget { $options['title'] = ''; } - if ( ! empty($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); + if ( ! empty($new_instance['url']) ) { + $keys = $this->connector->decode_search_url($new_instance['url']); $options['url']['keys'] = $keys; - $options['url']['value'] = $url; + $options['url']['value'] = $new_instance['url']; if (empty($keys)) { $options['url']['error'] = 'URL not recognised'; } @@ -352,20 +350,14 @@ class Squat_Radar_Widget extends WP_Widget { $options['url'] = ['value' => '', 'keys' => []]; } - // 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); - + $options['fields'] = []; foreach ($this->preset_fields() as $field_name => $field_label) { if ( ! empty($new_instance['field-' . $field_name]) ) { $options['fields'][$field_name] = $field_name; } } - if ( ! empty($new_instance['fields']) && is_string($new_instance['fields']) ) { + if ( ! empty($new_instance['fields']) ) { $matches = []; preg_match_all('/([a-zA-Z_:]+)/', $new_instance['fields'], $matches); $options['fields'] += array_combine($matches[0], $matches[0]); diff --git a/plugin-change-README.txt b/plugin-change-README.txt deleted file mode 100644 index 81be109..0000000 --- a/plugin-change-README.txt +++ /dev/null @@ -1,45 +0,0 @@ -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 = ''; - if ( ! $time_only ) { - $output .= ''; - $output .= date_i18n($date_format, strtotime($time)); - $output .= ' '; - $output .= ''; - $output .= date_i18n($year_format, strtotime($time)); - $output .= ' '; - } - - -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 '' . sanitize_text_field( $value ) . ''; - } - - if ($field[0] == 'url' && count($field) == 1) { - return '' . __('more…', 'squat-radar') . ''; - } - - - - -css squat-radar.css -important entfernen -.squat-radar a.squat-radar-url-more:hover { - color: white !important; -} diff --git a/readme.txt b/readme.txt index 6a5c78e..f13c7ea 100644 --- a/readme.txt +++ b/readme.txt @@ -1,9 +1,9 @@ === squat-radar === Tags: calendar,events -Requires at least: 5.3 -Tested up to: 5.9 -Requires PHP: 7.4.0 -Stable tag: 2.0.9 +Requires at least: 4.0 +Tested up to: 5.8 +Requires PHP: 5.4.0 +Stable tag: 2.0.8 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html diff --git a/squat-radar.php b/squat-radar.php index a24eb02..cff8dc8 100644 --- a/squat-radar.php +++ b/squat-radar.php @@ -8,16 +8,15 @@ * @package Squat_Radar * * @wordpress-plugin - * Plugin Name: Squat Radar calendar integration custom + * Plugin Name: Squat Radar calendar integration * Plugin URI: https://0xacab.org/radar/radar-wp * Description: Provides widget, and shortcode, integration for displaying events from https://radar.squat.net/ agenda. - * Version: 2.0.9 + * Version: 2.0.8 * Author: Radar contributors * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt * Text Domain: squat-radar * Domain Path: /languages - * Gitea Plugin URI: https://git.systemausfall.org/newyorck/radar-wp-custom */ if ( ! defined( 'ABSPATH' ) ) {