Skip to content

Commit

Permalink
Merge pull request #52 from alexplusde/i18n
Browse files Browse the repository at this point in the history
Version 5.0.0-dev
  • Loading branch information
alxndr-w authored May 19, 2024
2 parents e231852 + 6a5ec87 commit 87d06fa
Show file tree
Hide file tree
Showing 51 changed files with 8,435 additions and 710 deletions.
297 changes: 19 additions & 278 deletions README.md

Large diffs are not rendered by default.

14 changes: 0 additions & 14 deletions assets/backend.js

This file was deleted.

29 changes: 29 additions & 0 deletions assets/backend_date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
$(document).on("rex:ready", function(event, container) {
// Zugriff auf die Elemente
console.log('rex:ready');

let checkbox = document.querySelector('#yform-data_edit-rex_event_date-all_day input[type="checkbox"]');
if (!checkbox) return;
let einlass = document.querySelector('#yform-data_edit-rex_event_date-doorTime input[type="time"]');
let beginn = document.querySelector('#yform-data_edit-rex_event_date-startTime input[type="time"]');
let ende = document.querySelector('#yform-data_edit-rex_event_date-endTime input[type="time"]');

// Event-Listener hinzufügen
checkbox.addEventListener('change', function() {
if (this.checked) {
// Wenn die Checkbox aktiviert ist
einlass.value = '00:00:00';
beginn.value = '00:00:00';
ende.value = '00:00:00';

einlass.readOnly = true;
beginn.readOnly = true;
ende.readOnly = true;
} else {
// Wenn die Checkbox deaktiviert ist
einlass.readOnly = false;
beginn.readOnly = false;
ende.readOnly = false;
}
});
});
14 changes: 14 additions & 0 deletions assets/backend_fullcalendar.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
$(document).on("rex:ready", function(event, container) {

var calendarEl = document.getElementById('fullcalendar');

var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['dayGrid', 'list', 'bootstrap'],
locale: 'de',
header: { center: 'dayGridMonth,timeGridWeek,listWeek' }, // buttons for switching between views

events: '/?rex-api-call=fullcalendar'
});

calendar.render();
});
1 change: 0 additions & 1 deletion assets/jetzt-beauftragen.svg

This file was deleted.

81 changes: 50 additions & 31 deletions boot.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

if (rex::isBackend() && rex_be_controller::getCurrentPage() == "events/date") {
if (rex::isBackend()) {
rex_extension::register('OUTPUT_FILTER', function (rex_extension_point $ep) {
$suchmuster = '###events-settings-editor###';
$ersetzen = rex_config::get("events", "editor");
$suchmuster = 'class="###events-settings-editor###"';
$ersetzen = rex_config::get("events", "editor") ?? 'class="form-control"';
$ep->setSubject(str_replace($suchmuster, $ersetzen, $ep->getSubject()));
});
}
Expand All @@ -22,34 +22,53 @@
rex_view::addJsFile($this->getAssetsUrl('fullcalendar/packages/list/main.js'));
rex_view::addCssFile($this->getAssetsUrl('fullcalendar/packages/list/main.css'));
rex_view::addJsFile($this->getAssetsUrl('fullcalendar/packages/core/locales/de.js'));
rex_view::addJsFile($this->getAssetsUrl('backend.js'));
rex_view::addJsFile($this->getAssetsUrl('backend_fullcalendar.js'));
}

rex_yform_manager_dataset::setModelClass(
'rex_event_date',
event_date::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_location',
event_location::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_category',
event_category::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_date_offer',
event_date_offer::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_date_registration',
event_registration::class
);
if (rex::isBackend() && rex_be_controller::getCurrentPage() == 'events/date') {
rex_view::addJsFile($this->getAssetsUrl('backend_date.js'));
}

if (rex_addon::get('yform')->isAvailable() && !rex::isSafeMode()) {

rex_yform_manager_dataset::setModelClass(
'rex_event_date',
event_date::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_location',
event_location::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_category',
event_category::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_date_offer',
event_date_offer::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_date_registration',
event_registration::class
);

rex_yform_manager_dataset::setModelClass(
'rex_event_date_registration_person',
event_registration_person::class
);
rex_yform_manager_dataset::setModelClass(
'rex_event_category_request',
event_category_request::class,
);

rex_yform_manager_dataset::setModelClass(
'rex_event_date_lang',
event_date_lang::class,
);

}
?>

rex_yform_manager_dataset::setModelClass(
'rex_event_date_registration_person',
event_registration_person::class
);

if (rex_addon::get('cronjob')->isAvailable() && !rex::isSafeMode()) {
rex_cronjob_manager::registerType('rex_cronjob_events_ics_import');
Expand All @@ -59,7 +78,7 @@
/* YForm Rest API */
$rex_event_date_route = new \rex_yform_rest_route(
[
'path' => '/v2.0/event/date/',
'path' => '/v5.0/event/date/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => \event_date::class,
'query' => \event_date::query(),
Expand Down Expand Up @@ -123,7 +142,7 @@
/* YForm Rest API */
$rex_event_category_route = new \rex_yform_rest_route(
[
'path' => '/v2.0/event/category/',
'path' => '/v5.0/event/category/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => \event_category::class,
'query' => \event_category::query(),
Expand Down Expand Up @@ -159,7 +178,7 @@
/* YForm Rest API */
$rex_event_location_route = new \rex_yform_rest_route(
[
'path' => '/v2.0/event/location/',
'path' => '/v5.0/event/location/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => \event_location::class,
'query' => \event_location::query(),
Expand Down
61 changes: 0 additions & 61 deletions docs/00_intro.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
# Veranstaltungskalender, Terminbuchung, Terminanfragen, Anmeldungen und Teilnehmerlisten für REDAXO 5 auf YForm-Basis

![web_banner_redaxo_addon_events](https://user-images.githubusercontent.com/3855487/204768716-fa9f5a97-c1de-421a-aea0-2a0ce8658813.png)

Mit diesem Addon können Termine anhand von YForm und YOrm im Backend verwaltet und im Frontend ausgegeben werden. Auf Wunsch auch mehrsprachig.

**Beispiele**

![event](https://user-images.githubusercontent.com/3855487/180771758-d4a2e4ba-3034-4e96-8e1d-4cc5333de615.png)

![event_date](https://user-images.githubusercontent.com/3855487/180771781-0f2cc875-3561-47e2-a3bb-50752177afa3.png)

![event_settings](https://user-images.githubusercontent.com/3855487/180771783-1973c380-79af-42d6-9b14-babcc4378b3c.png)

![event_category](https://user-images.githubusercontent.com/3855487/180771784-2baad1bb-052e-4dbf-aa64-ef93e1892875.png)

## Features

* Vollständig mit **YForm** umgesetzt: Alle Features und Anpassungsmöglichkeiten von YForm verfügbar
Expand All @@ -29,50 +17,6 @@ Mit diesem Addon können Termine anhand von YForm und YOrm im Backend verwaltet
> **Steuere eigene Verbesserungen** dem [GitHub-Repository von events](https://github.com/alexplusde/events) bei. Oder **unterstütze dieses Addon:** Mit einer [Spende oder Beauftragung unterstützt du die Weiterentwicklung dieses AddOns](https://github.com/sponsors/alexplusde)
## RESTful API (dev)

Die [Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/plugins.md#restful-api-einf%C3%BChrung) ist über das REST-Plugin von YForm umgesetzt.

### Einrichtung

Zunächst das REST-Plugin von YForm installieren und einen Token einrichten. Den Token auf die jeweiligen Endpunkte legen:

```php
/v2.0/event/date
/v2.0/event/category
/v2.0/event/location
```

### Endpunkt `date`

**Auslesen:** GET `example.org/rest/v2.0/event/date/?token=###TOKEN###`

**Auslesen einzelner Termin** GET `example.org/rest/v0.dev/event/date/7/?token=###TOKEN###` Termin der `id=7`

### Endpunkt `category`

**Auslesen:** GET `example.org/rest/v2.0/event/category/?token=###TOKEN###`

**Auslesen einzelne Kategorie** GET `example.org/rest/v0.dev/event/category/7/?token=###TOKEN###` Termin der `id=7`

### Endpunkt `location`

**Auslesen:** GET `example.org/rest/v2.0/event/location/?token=###TOKEN###`

**Auslesen einzelner Standort** GET `example.org/rest/v0.dev/event/location/7/?token=###TOKEN###` Termin der `id=7`

## Import

### Import von ICS-Kalendern (dev)

Events kommt mit einem eigenen Cronjob zum importieren von ics-Kalendern aus dem Internet. Das Cronjob-Addon aufrufen, einen neuen Cronjob anlegen und den Instruktionen folgen.

## Export

## Export eines einzelnen Termins als ics-Datei (dev)

Events kommt mit einer eigenen rex_api-Schnittstelle für den Export von einzelnen Terminen. `?rex-api-call=events_ics_file&id=2` aufrufen, um eine ICS-Datei anhand des Termins mit der `id=2` zu erzeugen.

## Lizenz

MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/events/blob/master/LICENSE.md)
Expand All @@ -83,14 +27,9 @@ MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/events/blob/master/
<http://www.alexplus.de>
<https://github.com/alexplusde>

**Michael Schuler**
<https://github.com/191977>

**Projekt-Lead**
[Alexander Walther](https://github.com/alexplusde)

## Credits

events basiert auf: [YForm](https://github.com/yakamara/redaxo_yform)
Danke an [Gregor Harlan](https://github.com/gharlan) für die Unterstützung
Danke an den Kulturkeller e.V. für die Beauftragung für die Weiterentwicklung
9 changes: 9 additions & 0 deletions docs/08_ics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ICS Kalenderdaten

## Import von ICS-Kalendern (dev)

Events kommt mit einem eigenen Cronjob zum importieren von ics-Kalendern aus dem Internet. Das Cronjob-Addon aufrufen, einen neuen Cronjob anlegen und den Instruktionen folgen.

## Export eines einzelnen Termins als ics-Datei (dev)

Events kommt mit einer eigenen rex_api-Schnittstelle für den Export von einzelnen Terminen. `?rex-api-call=events_ics_file&id=2` aufrufen, um eine ICS-Datei anhand des Termins mit der `id=2` zu erzeugen.
31 changes: 31 additions & 0 deletions docs/12_restful_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# RESTful API (dev)

Die [Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/plugins.md#restful-api-einf%C3%BChrung) ist über das REST-Plugin von YForm umgesetzt.

## Einrichtung

Zunächst das REST-Plugin von YForm installieren und einen Token einrichten. Den Token auf die jeweiligen Endpunkte legen:

```php
/v5.0/event/date
/v5.0/event/category
/v5.0/event/location
```

## Endpunkt `date`

**Auslesen:** GET `example.org/rest/v5.0/event/date/?token=###TOKEN###`

**Auslesen einzelner Termin** GET `example.org/rest/v0.dev/event/date/7/?token=###TOKEN###` Termin der `id=7`

## Endpunkt `category`

**Auslesen:** GET `example.org/rest/v5.0/event/category/?token=###TOKEN###`

**Auslesen einzelne Kategorie** GET `example.org/rest/v0.dev/event/category/7/?token=###TOKEN###` Termin der `id=7`

## Endpunkt `location`

**Auslesen:** GET `example.org/rest/v5.0/event/location/?token=###TOKEN###`

**Auslesen einzelner Standort** GET `example.org/rest/v0.dev/event/location/7/?token=###TOKEN###` Termin der `id=7`
Loading

0 comments on commit 87d06fa

Please sign in to comment.