Browse Source

reapply lost changes from @kim.lang

pull/12/head
ctr49 2 years ago
parent
commit
d0b8de3068
  1. 56
      gcal-import-admin.php
  2. 10
      gcal-import.php

56
gcal-import-admin.php

@ -19,7 +19,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
add_action('admin_menu', 'gcal_admin_add_page');
function gcal_admin_add_page() {
add_options_page( 'GCal Importer Einstellungen', 'GCal Importer', 'manage_options', 'kal3000-gcal-import', 'gcal_options_page');
add_options_page( 'WolKal3000 – Synchronisation von Kal3000 mit Wolke-Kalendern', 'WolKal3000', 'manage_options', 'kal3000-gcal-import', 'gcal_options_page');
}
function gcal_options_page() {
@ -32,11 +32,14 @@ function gcal_options_page() {
<div class="wrap">
<h1><?= esc_html(get_admin_page_title()); ?></h1>
<p>Mit WolKal3000 kannst du dein Kal3000-Plugin automatisch mit Kalendern in der grünen Wolke synchronisieren. Darüber hinaus kannst du jede andere ICS-Datei verwenden.</p>
<form action="options.php" method="post">
<?php settings_fields('gcal_options'); ?>
<?php do_settings_sections('gcal'); ?>
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
</br></br></br><hr></br>
<?php do_settings_sections('gcal2'); ?>
<input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" />
</form></div>
@ -47,7 +50,7 @@ add_action('admin_init', 'gcal_admin_init');
function gcal_admin_init(){
register_setting( 'gcal_options', 'gcal_options', 'gcal_options_validate' );
add_settings_section('gcal_feeds', 'Terminkategorien und ICS-Feeds', 'gcal_feeds_section_text', 'gcal');
add_settings_section('gcal_feeds', 'Wolke-Kalender einer Terminkategorie zuordnen', 'gcal_feeds_section_text', 'gcal');
// settings fields dynamisch pro Feed generieren, nur ein Callback mit Args nutzen.
$terms = get_terms( array(
@ -57,24 +60,25 @@ function gcal_admin_init(){
foreach($terms as $term){
$unique_id = 'gcal_feed_' . $term->name;
$feed_name = $term->name;
add_settings_field($unique_id, $feed_name, 'gcal_feeds_setting_string', 'gcal', 'gcal_feeds', array($unique_id));
add_settings_field($unique_id, 'Terminkategorie "'.$feed_name.'"', 'gcal_feeds_setting_string', 'gcal', 'gcal_feeds', array($unique_id));
}
add_settings_section('gcal_timer', 'Zeitintervall', 'gcal_timer_section_text', 'gcal');
add_settings_field('gcal_timer', 'Zeitintervall', 'gcal_timer_setting_string', 'gcal', 'gcal_timer');
add_settings_section('gcal_timer', 'Synchronisationsintervall', 'gcal_timer_section_text', 'gcal');
add_settings_field('gcal_timer', 'Synchronisiere alle …', 'gcal_timer_setting_string', 'gcal', 'gcal_timer');
add_settings_section('gcal_geocoding', 'Geocoding', 'gcal_geocoding_section_text', 'gcal');
add_settings_field('gcal_geocoding', 'Geocoding', 'gcal_geocoding_setting_string', 'gcal', 'gcal_geocoding');
add_settings_section('gcal_geocoding', 'Geocoding (EXPERIMENTELL)', 'gcal_geocoding_section_text', 'gcal2');
add_settings_field('gcal_geocoding', 'Geocoding-Methode', 'gcal_geocoding_setting_string', 'gcal2', 'gcal_geocoding');
add_settings_section('gcal_debugging', 'Debugging', 'gcal_debugging_section_text', 'gcal');
add_settings_field('gcal_debugging', 'Debugging', 'gcal_debugging_setting_string', 'gcal', 'gcal_debugging');
add_settings_section('gcal_debugging', 'Entwickler*innenoptionen', 'gcal_debugging_section_text', 'gcal2');
add_settings_field('gcal_debugging', 'Debugging', 'gcal_debugging_setting_string', 'gcal2', 'gcal_debugging');
}
function gcal_feeds_section_text() {
?>
<p><b>Bitte hier die zu den Terminkategorien gehörigen Feeds eintragen (copy & paste!).</b></br>
<b>Wenn zu einer Terminkategorie kein Feed gehört, einfach leer lassen.</b></p>
<p><b>Wolke-Kalender synchronisieren in eine ausgewählte Terminkategorie von Kal3000. Bitte trage hierfür die entsprechende Export-Adresse des gewünschten Wolke-Kalenders ein.</b></br><b>Falls zu einer Terminkategorie kein Wolke-Kalender synchronisiert werden soll, entsprechendes Feld bitte leer lassen.</b></p>
<p><b><a href="hilfeseite" target="_blank">Erfahre mehr darüber, wie du die Export-Adresse eines Wolke-Kalenders findest.</a></b>
</p>
<?php
}
@ -82,7 +86,7 @@ function gcal_feeds_section_text() {
function gcal_feeds_setting_string($args) {
$options = get_option('gcal_options');
$placeholder = "z.B. https://calendar.google.com/calendar/ical/.../public/basic.ics";
$placeholder = "z.B. https://wolke.netzbegruenung.de/remote.php/dav/public-calendars/xxxxxxxxxxxxxxxx?export";
// die id entspricht dem unique_id in add_settings_field.
// der name wird options.php als Name der zu setzenden Option übergeben
// der Value ist der inhalt von der $option[unique_id].
@ -92,8 +96,8 @@ function gcal_feeds_setting_string($args) {
function gcal_timer_section_text() {
?>
<p><b>Zeitintervall in Minuten, in dem die Feeds synchronisiert werden sollen.</b></br>
<b>Neu setzen erfordert einen Neustart des Plugins (Deaktivieren / Aktivieren).</b></p>
<p><b>In welcher Regelmäßigkeit sollen die Wolke-Kalender synchronisiert werden? Bitte Zeitintervall in Minuten angeben.</b></br>
<b>Achtung: Um Änderungen wirksam werden zu lassen, muss das Plugin deaktiviert und wieder aktiviert werden. (Menüpunkt "Plugins")</b></p>
<?php
}
@ -108,10 +112,7 @@ function gcal_timer_setting_string() {
function gcal_geocoding_section_text() {
?>
<p><b>Um Termine auf der Karte zu sehen, ist es nötig, die Orte zu geocoden, d.h. </br>
deren geografische Länge und Breite herauszufinden. Dafür sind mehrere </br>
Verfahren wählbar. </br>
</b></p>
<p>Damit der Termin-Ort auf einer Karte eingezeichnet werden kann, müssen die Ortsinformationen von der Textform in geografische Länge und Breite umgerechnet werden.</br>Dies nennt sich Geocoding. Dabei handelt es sich um eine experimentelle Funktion von WolKal3000.</p>
<?php
}
@ -125,7 +126,7 @@ function gcal_geocoding_setting_string() {
array(
'option' => 'off',
'name' => 'deaktiviert',
),
), /*
array(
'option' => 'official',
'name' => 'Google official - erfordert einen API Key --> ',
@ -133,10 +134,10 @@ function gcal_geocoding_setting_string() {
array(
'option' => 'inofficial',
'name' => 'Google inofficial',
),
), */
array(
'option' => 'osm',
'name' => 'OpenStreetMap - in Entwicklung',
'name' => 'OpenStreetMap (EXPERIMENTELL)',
),
);
@ -154,11 +155,11 @@ function gcal_geocoding_setting_string() {
function gcal_debugging_section_text() {
?>
<p><b>Debugging aktivieren (landet in ${APACHE_LOG_DIR}/error.log).</br>
<p>Debugging aktivieren? Speicherort: ${APACHE_LOG_DIR}/error.log</br></br>
Um die Performance zu verbessern, werden gefundene Geocoding-Daten zwischengespeichert. </br>
Zu Debugging-Zwecken kann der Zwischenspeicher (Cache) beim Neustart des Plugins gelöscht </br>
werden, um ein neues Geocoding aller Event-Lokationen zu erzwingen. </br>
</b></p>
Zu Debugging-Zwecken kann der Zwischenspeicher (Cache) des Plugins gelöscht </br>
werden, um ein neues Geocoding aller Termin-Orte zu erzwingen. </br>
</p>
<?php
}
@ -179,7 +180,7 @@ function gcal_debugging_setting_string($args) {
<?php
// actual logging is done by gcal_error_log()
// Cache reset on restart
echo '<input type="checkbox" id="gcal_reset_cache" name="gcal_options[gcal_reset_cache]" value="1"' . checked( 1, $options['gcal_reset_cache'], false ) . '> Geocoding-Cache bei Neustart des Plugins löschen </br>';}
echo '</br><input type="checkbox" id="gcal_reset_cache" name="gcal_options[gcal_reset_cache]" value="1"' . checked( 1, $options['gcal_reset_cache'], false ) . '> Geocoding-Cache nach Deaktivieren und Aktivieren des Plugins löschen </br>';}
@ -198,4 +199,3 @@ function gcal_options_validate($input) {
}

10
gcal-import.php

@ -1,10 +1,10 @@
<?php
/**
* Plugin Name: Kal3000 Google Calender Importer
* Plugin URI: https://github.com/hmilz/kal3000-gcal-import
* Description: Imports and Merges an Arbitrary Number of Public Google Calendars into Kal3000
* Version: 0.2.0
* Author: Harald Milz <hm@seneca.muc.de>
* Plugin Name: WolKal3000 – Termin-Synchronisation
* Plugin URI: https://git.netzbegruenung.de/NB-Public/WolKal3000/
* Description: Synchronisation des Kal3000-Plugins mit Wolke-Kalendern und ICS-Dateien
* Version: 0.3.8
* Author: Harald Milz & Netzbegrünung <hm@seneca.muc.de>
* License: GPLv3
* License URI: https://www.gnu.org/licenses/gpl-3.0
* Domain Path: /languages

Loading…
Cancel
Save