4 Commits
1.0.2 ... 1.0.6

Author SHA1 Message Date
56c88eb4b3 Fix detail links outside Termine page and bump version to 1.0.6 2026-04-15 21:26:00 +02:00
ba6ec768c6 Release 1.0.5 2026-04-14 16:29:12 +02:00
0011c6bf5f Release 1.0.4 2026-04-13 22:40:31 +02:00
024a62260e Update to version 1.0.3 2026-04-13 22:20:30 +02:00
3 changed files with 62 additions and 6 deletions

View File

@@ -372,6 +372,7 @@ class KGV_Termine_Plugin {
$atts = shortcode_atts(array( $atts = shortcode_atts(array(
'limit' => 0, 'limit' => 0,
'detail' => 1, 'detail' => 1,
'base_url' => '',
), $atts, 'kgv_termine'); ), $atts, 'kgv_termine');
$detail_id = absint(get_query_var('kgv_termin')); $detail_id = absint(get_query_var('kgv_termin'));
@@ -379,7 +380,7 @@ class KGV_Termine_Plugin {
$detail_id = absint(wp_unslash($_GET['kgv_termin'])); $detail_id = absint(wp_unslash($_GET['kgv_termin']));
} }
$base_url = $this->get_current_page_url(false); $base_url = $this->resolve_termine_base_url($atts['base_url']);
if ($detail_id && (int) $atts['detail'] === 1) { if ($detail_id && (int) $atts['detail'] === 1) {
return $this->render_detail_by_id($detail_id, $base_url); return $this->render_detail_by_id($detail_id, $base_url);
@@ -470,6 +471,7 @@ class KGV_Termine_Plugin {
public function render_sidebar_shortcode($atts) { public function render_sidebar_shortcode($atts) {
$atts = shortcode_atts(array( $atts = shortcode_atts(array(
'limit' => 5, 'limit' => 5,
'base_url' => '',
), $atts, 'kgv_termine_sidebar'); ), $atts, 'kgv_termine_sidebar');
$rows = $this->get_frontend_rows(max(1, min(20, absint($atts['limit'])))); $rows = $this->get_frontend_rows(max(1, min(20, absint($atts['limit']))));
@@ -478,7 +480,7 @@ public function render_sidebar_shortcode($atts) {
return '<div class="kgv-sidebar-box">Keine Termine</div>'; return '<div class="kgv-sidebar-box">Keine Termine</div>';
} }
$base_url = $this->get_current_page_url(false); $base_url = $this->resolve_termine_base_url($atts['base_url']);
ob_start(); ob_start();
echo '<div class="kgv-sidebar-box">'; echo '<div class="kgv-sidebar-box">';
@@ -499,6 +501,58 @@ public function render_sidebar_shortcode($atts) {
return ob_get_clean(); return ob_get_clean();
} }
private function resolve_termine_base_url($base_url = '') {
if (!empty($base_url)) {
$clean_url = esc_url_raw((string) $base_url);
if ($clean_url) {
return remove_query_arg(array_keys($_GET), $clean_url);
}
}
$shortcode_page_url = $this->find_termine_shortcode_page_url();
if ($shortcode_page_url) {
return $shortcode_page_url;
}
return $this->get_current_page_url(false);
}
private function find_termine_shortcode_page_url() {
static $cached_url = null;
if (null !== $cached_url) {
return $cached_url;
}
global $wpdb;
$like = '%' . $wpdb->esc_like('[kgv_termine') . '%';
$post_id = (int) $wpdb->get_var(
$wpdb->prepare(
"SELECT ID
FROM {$wpdb->posts}
WHERE post_status = 'publish'
AND post_type IN ('page', 'post')
AND post_content LIKE %s
ORDER BY CASE WHEN post_type = 'page' THEN 0 ELSE 1 END, ID ASC
LIMIT 1",
$like
)
);
if ($post_id) {
$permalink = get_permalink($post_id);
if ($permalink) {
$cached_url = remove_query_arg(array_keys($_GET), $permalink);
return $cached_url;
}
}
$cached_url = '';
return $cached_url;
}
private function get_current_page_url($with_query = true) { private function get_current_page_url($with_query = true) {
$page_url = ''; $page_url = '';

View File

@@ -3,11 +3,13 @@
* Plugin Name: KGV Termine * Plugin Name: KGV Termine
* Plugin URI: https://apex-project.de/ * Plugin URI: https://apex-project.de/
* Description: Eigene Terminverwaltung mit separatem Admin-Interface, Frontend-Liste und Detailansicht per Shortcode. * Description: Eigene Terminverwaltung mit separatem Admin-Interface, Frontend-Liste und Detailansicht per Shortcode.
* Update URI: https://git.apex-project.de/RonnyG/KGV-Termine * Update URI: https://git.apex-project.de/Wordpress_Plugins/KGV-Termine.git
* GitHub Plugin URI: https://git.apex-project.de/RonnyG/KGV-Termine * Gitea Plugin URI: https://git.apex-project.de/Wordpress_Plugins/KGV-Termine.git
* Version: 1.0.2 * Version: 1.0.6
* Author: Ronny Grobel * Author: Ronny Grobel
* Author URI: https://apex-project.de/
* Text Domain: kgv-termine-admin * Text Domain: kgv-termine-admin
* Requires Plugins: KGV-Updater
*/ */
if (!defined('ABSPATH')) { if (!defined('ABSPATH')) {

View File

@@ -13,4 +13,4 @@ Funktionen:
- Ausgabe der Termine im Frontend - Ausgabe der Termine im Frontend
- einfache Pflege für Vereins- und Veranstaltungsseiten - einfache Pflege für Vereins- und Veranstaltungsseiten
Version: 1.0.2 Version: 1.0.6