diff --git a/README.md b/README.md index 09c3bb2..e37b3a8 100644 --- a/README.md +++ b/README.md @@ -26,151 +26,6 @@ Im REDAXO-Installer das Addon `neues` herunterladen und installieren. Anschließ ![image](https://user-images.githubusercontent.com/3855487/209792457-b6f824dc-7fd8-4295-a7c7-2eab046d19c7.png) - -## Nutzung im Frontend - -### Die Klasse `neues_entry` - -Typ `rex_yform_manager_dataset`. Greift auf die Tabelle `rex_neues_entry` zu. - -#### Alle Einträge erhalten - -```php -$entries = neues_entry::query()->find(); // YOrm-Standard-Methode zum Finden von Einträgen, lässt sich mit where(), Limit(), etc. einschränken und Filtern. -$entries = neues_entry::findOnline(); // Alle Online-Einträge -$entries = neues_entry::findByCategory($category_id [, $status]) // Alle Einträge einer Kategorie -``` - -#### Beispiel-Ausgabe einer News - -```php -$entry = neues_entry::get(3); // News mit der id=3 -// dump($entry); - -echo $entry->getName(); -echo $entry->getAuthor(); -echo $entry->getDomain(); -echo $entry->getTeaser(); -echo $entry->getImage(); -echo $entry->getMedia(); -echo $entry->getDescriptionAsPlaintext(); -echo $entry->getDescription(); -echo $entry->getExternalUrl(); -echo $entry->getExternalLabel(); -echo $entry->getPublishDate(); -echo $entry->getPublishDateTime(); -echo $entry->getFormattedPublishDate($format); // IntlDateFormatter::FULL -echo $entry->getFormattedPublishDateTime($format); // [IntlDateFormatter::FULL, IntlDateFormatter::SHORT] -echo $entry->getStatus(); -echo $entry->getUrl(); // opt. URL-Schlüssel angeben -``` - -```php -$categories = neues_entry::get(3)->getCategories(); -// dump($categories); - -foreach($categories as $category) { -// ... -} -``` - -### Die Klasse `neues_category` - -Typ `rex_yform_manager_dataset`. Greift auf die Tabelle `rex_neues_category` zu. - -#### Beispiel-Ausgabe einer Kategorie - -```php -$category = neues_category::get(3); // News-Kategorie mit der id=3 -// dump($category); - -echo $category->getName(); - -$entries = $category->getEntries(); - -foreach($entries as $entry) { - echo $entry->getName(); -// ... -} -``` - -## URL2-Profile - -### News-Einträge mit einer Domain - -Mit der Methode `getUrl()` kann die URL des aktuellen News-Eintrags geholt werden. Dazu muss URL2 installiert sein und ein Profil mit dem Schlüssel `neues-entry-id` angelegt sein. - -Beispiel: - -![sunstrom de_redaxo_index php_page=url_generator_profiles func=edit id=1 list=5fa6c979(Surface Pro 7)](https://user-images.githubusercontent.com/3855487/209814035-f194a7d6-ae9a-463c-979a-7d8b542d239c.png) - -### News-Einträge im Kontext von YRewrite und Multidomains / mehreren Sprachen - -Die Methode `getUrl("neues-entry-id-domain-x")` erlaubt optional als Parameter anstelle von `neues-entry-id`. Somit lassen sich weitere Profile mit Filter je Domain erstellen und diese mit einem eigenen definitierten Schlüssel übergeben. - -## Nutzung im Backend: Die Terminverwaltung - -## RESTful API - -Die [Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/05_rest.md) 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: - -``` - /neues/3/entry - /neues/3/category - /neues/3/location -``` - -### Endpunkt `entry` - -**Auslesen:** GET `example.org/rest/neues/3/date/?token=###TOKEN###` - -**Auslesen einzelner Termin** GET `example.org/rest/neues/3//entry/7/?token=###TOKEN###` Eintrag der `id=7` - -### Endpunkt `category` - -**Auslesen:** GET `example.org/rest/neues/3/category/?token=###TOKEN###` - -**Auslesen einzelne Kategorie** GET `example.org/rest/neues/3/category/7/?token=###TOKEN###` Eintrag der `id=7` - -### Endpunkt `location` - -**Auslesen:** GET `example.org/rest/neues/3/location/?token=###TOKEN###` - -**Auslesen einzelner Standort** GET `example.org/rest/neues/3/location/7/?token=###TOKEN###` Eintrag der `id=7` - -## Import - -### Import via CSV - -Neues basiert auf YForm. Importiere deine Einträge bequem per CSV, wie du es von YForm kennst. - -## Export - -### Export via CSV - -Neues basiert auf YForm. Exportiere deine Einträge bequem per CSV, wie du es von YForm kennst. - - -## Editor für Textfeld "Inhalt" einbinden - -- Installiere den Editor deiner Wahl (zum Beispiel *redactor*) -- lege im Editor dein Wunschprofil an -- nach dem Speichern erscheint die Profilübersicht in *Redactor* -- hier den Wert kopieren, der in der Spalte `Selektor` steht -- im Hauptmenü unter `Aktuelles` >`Einstellungen` bei `Editor` den kopierten Eintrag einfügen - achte darauf, dass der Name ohne den Punkt davor eingefügt wird - -**Beispiel** -Im Redactor wurde das Profil mit dem Namen *Mein-Redactor-Profil* angelegt. Dann steht bei `Selector`: `.redactor-editor--Mein-Redactor-Profil` -In den Addon-Einstellungen von diesem Addon hier, muss dann bei Editor der Eintrag so aussehen: `class="redactor-editor--Mein-Redactor-Profil"` - -Für den Editor CK5 ist es: `class="form-control cke5-editor" data-profile="default" data-lang="de"` - - - ## Lizenz MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/neues/blob/master/LICENSE) @@ -181,6 +36,10 @@ MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/neues/blob/master/L +**Paul Götz** + + + **Projekt-Lead** [Alexander Walther](https://github.com/alexplusde) diff --git a/docs/01_a_intro.md b/docs/01_a_intro.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/01_b_import_export.md b/docs/01_b_import_export.md new file mode 100644 index 0000000..7b4f563 --- /dev/null +++ b/docs/01_b_import_export.md @@ -0,0 +1,11 @@ +# Import + +## Import via CSV + +Neues basiert auf YForm. Importiere deine Einträge bequem per CSV, wie du es von YForm kennst. + +## Export + +## Export via CSV + +Neues basiert auf YForm. Exportiere deine Einträge bequem per CSV, wie du es von YForm kennst. diff --git a/docs/01_c_migration.md b/docs/01_c_migration.md new file mode 100644 index 0000000..47b5ae8 --- /dev/null +++ b/docs/01_c_migration.md @@ -0,0 +1,53 @@ +# Migration von REDAXO `FOR News Manager 3` und `alexplusde\Neues` v3 zu `FriendsOfREEAXO\Neues` v4 + +## Warum der Wechsel? + +Das FOR-Addon News-Manager befindet sich nicht mehr in aktiver Entwicklung. Es wurde nur noch bis Ende 2022 gewartet. Potentielle Sicherheitslücken werden nicht mehr geschlossen. + +Um die Lücke zu schließen, wird das Addon `Neues` von @alexplus_de zu FriendsOfREDAXO gespendet. Die Weiterentwicklung des Neues ist gesichert. Es wird ständig an die neuesten REDAXO-Versionen angepasst und erweitert. + +Ein wesentlicher Vorteil gegenüber dem News Manager ist die Unterstützung von YForm. Damit lassen sich die News-Einträge und Kategorien komfortabel verwalten und erweitern, viele Funktionen von YForm und YOrm können genutzt werden. + +Wir danken Alex für die Bereitschaft, das Addon in die Hände von FriendsOfREDAXO zu geben, Alex bleibt Projekt-Lead des Addons. Sowie @schorschy @skerbis und @eace für die Unterstützung bei der Entwicklung. + +## Funktions-Parität und Unterschiede + +Was | News Manager `3.0.3` | Neues `^4.0` +--- | --- | --- +Letzte Weiterentwicklung und Wartung | ❌ 28. Dez. 2022 | ✅ aktuell +REDAXO Core-Version | ab `^5.4` | ab `^5.15` +PHP-Version | ab `^5.6` | ab `^7.2` +Addon-Abhängigkeiten | URL ab `^2` | URL ab `^2`, YForm ab `^4`, YForm Field ab `^2` +Position im Backend | `Addons > News Manager` | `Aktuelles` (oben) +News-Übersicht | ✅ `News Manager > "News anlegen"` | ✅ `Aktuelles > Einträge` +Kategorien | ✅ `News Manager > "Kategorien"` | ✅ `Aktuelles > Kategorien` +Kommentare | ✅ als Plugin: `News Manager > "Kommentare"` | ❌ nein +Autoren | ❌ nein | `Aktuelles > Autoren` +Mehrsprachigkeit | ✅ `News Manager > (Sprache auswählen)` | ✅ `Aktuelles > Sprachen` +Dokumentation | ✅ als Plugin | ✅ `Aktuelles > Hilfe` +Einstellungen | ❌ nein | ✅ `Aktuelles > Einstellungen` +WYSIWYG-Editor | ✅ ausschließlich `redactor2` | ✅ frei wählbar (`cke5`, `redactor`, `markitup`, `tinymce`) +Backend-Sprachen | `de,en,es,se` | `de,en,es,se` +RSS | ✅ ja | 🚧 in Arbeit +Fertige Fragmente | ✅ ja | 🚧 in Arbeit +Multi-Domain-Unterstützung | ❌ über Umwege | ✅ ja +YOrm-Model | ❌ nein | ✅ ja (News-Einträge, Kategorien, Autoren, Sprachen) +CSV-Import | ❌ nein | ✅ ja (via YForm) +CSV-Export | ❌ nein | ✅ ja (via YForm) +RESTful API | ❌ nein | ✅ ja (via YForm) + +## Migration von News Manager zu Neues 4 + +1. Backup der Datenbank und des Dateisystems +2. `Neues` installieren (`YForm`, `YForm Field`, `URL` müssen bereits installiert und aktiviert sein) +3. Bestehende News-Einträge und Kategorien in Neues importieren +4. Module, Templates und URL-Profile anpassen +5. `News Manager` deinstallieren. + +## Migration von Neues 3 zu Neues 4 + +Der Wechsel von Neues 3 zu 4 sollte vergleichsweise einfach vonstatten gehen. Im Zuge des Versionswechsels wurden lange verschobene, jedoch notwendige kleine Änderungen vorgenommen, die zwingend beachtet werden müssen: + +1. Vereinheitlichung von Methodennamen + +2. Vereinheitlichung von Datenbankfeldern und Feldnamen diff --git a/docs/02_settings.md b/docs/02_settings.md new file mode 100644 index 0000000..eb1ff19 --- /dev/null +++ b/docs/02_settings.md @@ -0,0 +1,15 @@ +# Einstellungen + +## Editor für Textfeld "Inhalt" einbinden + +* Installiere den Editor deiner Wahl (zum Beispiel *redactor*) +* lege im Editor dein Wunschprofil an +* nach dem Speichern erscheint die Profilübersicht in *Redactor* +* hier den Wert kopieren, der in der Spalte `Selektor` steht +* im Hauptmenü unter `Aktuelles` >`Einstellungen` bei `Editor` den kopierten Eintrag einfügen - achte darauf, dass der Name ohne den Punkt davor eingefügt wird + +**Beispiel** +Im Redactor wurde das Profil mit dem Namen *Mein-Redactor-Profil* angelegt. Dann steht bei `Selector`: `.redactor-editor--Mein-Redactor-Profil` +In den Addon-Einstellungen von diesem Addon hier, muss dann bei Editor der Eintrag so aussehen: `class="form-control redactor-editor--Mein-Redactor-Profil"` + +Für den Editor CK5 ist es: `class="form-control cke5-editor" data-profile="default" data-lang="de"` diff --git a/docs/03_neues_entry.md b/docs/03_neues_entry.md new file mode 100644 index 0000000..6613766 --- /dev/null +++ b/docs/03_neues_entry.md @@ -0,0 +1,46 @@ +# Die Klasse `neues_entry` + +Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm Datasets zur Verfügung. Greift auf die Tabelle `rex_neues_entry` zu. + +> Es werden nachfolgend zur die durch dieses Addon ergänzte Methoden beschrieben. Lerne mehr über YOrm und den Methoden für Querys, Datasets und Collections in der [YOrm Doku](https://github.com/yakamara/yform/blob/master/docs/04_yorm.md) + +## Alle Einträge erhalten + +```php +$entries = neues_entry::query()->find(); // YOrm-Standard-Methode zum Finden von Einträgen, lässt sich mit where(), Limit(), etc. einschränken und Filtern. +$entries = neues_entry::findOnline(); // Alle Online-Einträge +$entries = neues_entry::findByCategory($category_id [, $status]) // Alle Einträge einer Kategorie +``` + +## Beispiel-Ausgabe einer News + +```php +$entry = neues_entry::get(3); // News mit der id=3 +// dump($entry); + +echo $entry->getName(); +echo $entry->getAuthor(); +echo $entry->getDomain(); +echo $entry->getTeaser(); +echo $entry->getImage(); +echo $entry->getMedia(); +echo $entry->getDescriptionAsPlaintext(); +echo $entry->getDescription(); +echo $entry->getExternalUrl(); +echo $entry->getExternalLabel(); +echo $entry->getPublishDate(); +echo $entry->getPublishDateTime(); +echo $entry->getFormattedPublishDate($format); // IntlDateFormatter::FULL +echo $entry->getFormattedPublishDateTime($format); // [IntlDateFormatter::FULL, IntlDateFormatter::SHORT] +echo $entry->getStatus(); +echo $entry->getUrl(); // opt. URL-Schlüssel angeben +``` + +```php +$categories = neues_entry::get(3)->getCategories(); +// dump($categories); + +foreach($categories as $category) { +// ... +} +``` diff --git a/docs/04_neues_category.md b/docs/04_neues_category.md new file mode 100644 index 0000000..072864b --- /dev/null +++ b/docs/04_neues_category.md @@ -0,0 +1,21 @@ +# Die Klasse `neues_category` + +Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm Datasets zur Verfügung. Greift auf die Tabelle `rex_neues_category` zu. + +> Es werden nachfolgend zur die durch dieses Addon ergänzte Methoden beschrieben. Lerne mehr über YOrm und den Methoden für Querys, Datasets und Collections in der [YOrm Doku](https://github.com/yakamara/yform/blob/master/docs/04_yorm.md) + +## Beispiel-Ausgabe einer Kategorie + +```php +$category = neues_category::get(3); // News-Kategorie mit der id=3 +// dump($category); + +echo $category->getName(); + +$entries = $category->getEntries(); + +foreach($entries as $entry) { + echo $entry->getName(); +// ... +} +``` diff --git a/docs/05_neues_author.md b/docs/05_neues_author.md new file mode 100644 index 0000000..1963387 --- /dev/null +++ b/docs/05_neues_author.md @@ -0,0 +1,104 @@ +# Die Klasse `neues_author` + +Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm Datasets zur Verfügung. Greift auf die Tabelle `rex_neues_author` zu. + +> Es werden nachfolgend zur die durch dieses Addon ergänzte Methoden beschrieben. Lerne mehr über YOrm und den Methoden für Querys, Datasets und Collections in der [YOrm Doku](https://github.com/yakamara/yform/blob/master/docs/04_yorm.md) + +## Infos zu einem Autor erhalten + +```php +$author = neues_author::get(3); // Autor mit der id=3 +// dump($author); +``` + +## Alle Autoren erhalten + +```php +$authors = neues_author::query()->find(); +foreach($authors as $author) { + echo $author->getName(); +} +``` + +## Neuen Autor erstellen + +```php +$author = new neues_author::create(); +$author->setName('Name'); +$author->setNickname('Spitzname'); +$author->save(); +``` + +## Methoden + +### `getName()` + +Gibt den Namen des Autors zurück. + +```php +$name = $author->getName(); +``` + +### `setName(string $value)` + +Setzt den Namen des Autors. + +```php +$author = $author->setName('Neuer Name'); +``` + +### `getNickname()` + +Gibt den Spitznamen des Autors zurück. + +```php +$nickname = $author->getNickname(); +``` + +### `setNickname(string $value)` + +Setzt den Spitznamen des Autors. + +```php +$author = $author->setNickname('Neuer Spitzname'); +``` + +### `getText(bool $asPlaintext = false)` + +Gibt den Text des Autors zurück. Wenn `$asPlaintext` true ist, wird der Text ohne HTML-Tags zurückgegeben. + +```php +$text = $author->getText(true); +``` + +### `setText(mixed $value)` + +Setzt den Text des Autors. + +```php +$author = $author->setText('Neuer Text'); +``` + +### `getBeUserId()` + +Gibt die Benutzer-ID des Autors zurück. + +```php +$beUserId = $author->getBeUserId(); +``` + +### `setBeUserId(int $value)` + +Setzt die Benutzer-ID des Autors. + +```php +$author = $author->setBeUserId('Neue Benutzer-ID'); +``` + +### `getUser()` + +Gibt den Benutzer (`rex_user`) des Autors zurück. + +```php +$author = $author->getUser(); +``` diff --git a/docs/06_url.md b/docs/06_url.md new file mode 100644 index 0000000..9a5a4dd --- /dev/null +++ b/docs/06_url.md @@ -0,0 +1,21 @@ +# URL-Profile + +Das Addon URL in Version 2.x wird vorausgesetzt. + +## Schnelle Einrichtung von Profilen + +Die Konfiguration der URL-Profile ist abhängig vom gewünschten Projekt und Umfang. Deshalb werden keine URL-Profile bei der Installation eingerichtet. + +Nachfolgend Beispiel-Konfigurationen für verschiedene Szenarien: + +## News-Einträge mit einer Domain + +Mit der Methode `getUrl()` kann die URL des aktuellen News-Eintrags geholt werden. Dazu muss URL2 installiert sein und ein Profil mit dem Schlüssel `neues-entry-id` angelegt sein. + +Beispiel: + +![sunstrom de_redaxo_index php_page=url_generator_profiles func=edit id=1 list=5fa6c979(Surface Pro 7)](https://user-images.githubusercontent.com/3855487/209814035-f194a7d6-ae9a-463c-979a-7d8b542d239c.png) + +### News-Einträge im Kontext von YRewrite und Multidomains / mehreren Sprachen + +Die Methode `getUrl()` erlaubt optional als Parameter anstelle von `neues-entry-id` ein eigenes Profil zu übergeben, z.B. `"neues-entry-id-domain-x"`. Somit lassen sich weitere Profile mit Filter je Domain erstellen und diese mit einem eigenen definitierten Schlüssel übergeben. diff --git a/docs/07_rss.md b/docs/07_rss.md new file mode 100644 index 0000000..3e627b0 --- /dev/null +++ b/docs/07_rss.md @@ -0,0 +1,5 @@ +# RSS-Feed + +> Hinweis: Der RSS-Feed befindet sich noch in Arbeit, es gibt noch kein Datum für die Fertigstellung. Beteilige dich an der Entwicklung, wenn du möchtest. + +Das Addon `Neues` bietet einen RSS-Feed für die News-Einträge an. Der Feed kann über die URL `index.php?rex-api-call=neues_rss` aufgerufen werden. Die Ausgabe kann über die URL-Parameter `lang` und `category` beeinflusst werden. diff --git a/docs/10_restful_api.md b/docs/10_restful_api.md new file mode 100644 index 0000000..62f0cb6 --- /dev/null +++ b/docs/10_restful_api.md @@ -0,0 +1,24 @@ +# RESTful API + +Die [Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/05_rest.md) 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: + +```text +/neues/3/entry +/neues/3/category +``` + +## Endpunkt `entry` + +**Auslesen:** GET `example.org/rest/neues/3/date/?token=###TOKEN###` + +**Auslesen einzelner Termin** GET `example.org/rest/neues/3//entry/7/?token=###TOKEN###` Eintrag der `id=7` + +## Endpunkt `category` + +**Auslesen:** GET `example.org/rest/neues/3/category/?token=###TOKEN###` + +**Auslesen einzelne Kategorie** GET `example.org/rest/neues/3/category/7/?token=###TOKEN###` Eintrag der `id=7` diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 38ab172..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1,5 +0,0 @@ -theme: jekyll-theme-minimal -title: REDAXO 5 Events -description: Terminverwaltung für REDAXO 5 auf YForm-Basis -logo: https://raw.githubusercontent.com/alexplusde/neues/master/docs/screenshot.png -show_downloads: true diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index e4962f7..0000000 --- a/docs/index.md +++ /dev/null @@ -1,174 +0,0 @@ -# Terminverwaltung für REDAXO 5.10 & YForm 3.3 - -Mit diesem Addon können Termine anhand von YForm und YOrm im Backend verwaltet und im Frontend ausgegeben werden. Auf Wunsch auch mehrsprachig. - -## Features - -* Vollständig mit **YForm** umgesetzt: Alle Features und Anpassungsmöglichkeiten von YForm verfügbar -* Einfach: Die Ausgabe erfolgt über [`rex_sql`](https://redaxo.org/doku/master/datenbank-queries) oder objektorientiert über [YOrm](https://github.com/yakamara/redaxo_yform_docs/blob/master/de_de/yorm.md) -* Flexibel: **Zugriff** über die [YForm Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/plugins.md#restful-api-einf%C3%BChrung) -* Sinnvoll: Nur ausgewählte **Rollen**/Redakteure haben Zugriff -* Bereit für **mehrsprachige** Websites: Reiter für Sprachen auf Wunsch anzeigen oder ausblenden -* Bereit für mehr: Vorbereitet für das [JSON+LD-Format](https://jsonld.com/neues/), ICS-Format -* Bereit für viel mehr: Kompatibel zum [URL2-Addon](https://github.com/tbaddade/redaxo_url) - -> **Tipp:** Events arbeitet hervorragend zusammen mit den Addons [`yform_usability`](https://github.com/FriendsOfREDAXO/yform_usability/) und [`yform_geo_osm`](https://github.com/FriendsOfREDAXO/yform_geo_osm) - -> **Steuere eigene Verbesserungen** dem [GitHub-Repository von neues](https://github.com/alexplusde/neues) bei. Oder **unterstütze dieses Addon:** Mit einer [Spende oder Beauftragung unterstützt du die Weiterentwicklung dieses AddOns](https://github.com/sponsors/alexplusde) - -## Installation - -Im REDAXO-Installer das Addon `neues` herunterladen und installieren. Anschließend erscheint ein neuer Menüpunkt `Veranstaltungen` sichtbar. - -## Nutzung im Frontend - -### Die Klasse `neues_entry` - -Typ `rex_yform_manager_dataset`. Greift auf die Tabelle `rex_neues_entry` zu. - -#### Beispiel-Ausgabe eines Termins - -```php -dump(neues_entry::get(3)); // Termin mit der id=3 -``` - -#### Zusätzliche Methoden - -`getCategory()` holt die passende Kategorie als `neues_category`-Objekt. - -```php -dump(neues_entry::get(3)->getCategory()); // Termin mit der id=3 -``` - -### Die Klasse `neues_category` - -Typ `rex_yform_manager_dataset`. Greift auf die Tabelle `rex_neues_category` zu. - -#### Beispiel-Ausgabe einer Kategorie - -```php -dump(neues_category::get(3)); // Termin mit der id=3 -``` - -### Die Klasse `neues_location` - -Typ `rex_yform_manager_dataset`. Greift auf die Tabelle `rex_neues_location_` zu. - -#### Beispiel-Ausgabe einer Location - -```php -dump(neues_location::get(3)); // Termin mit der id=3 -``` - -## Nutzung im Backend: Die Terminverwaltung - -### Die Tabelle "SPRACHEN" - -Die Tabelle "TERMINE" mit Flaggen-Symbol ist eine Tabelle, in der zunächst Sprachen verwaltet werden können und im Anschluss die eigentliche Termin-Tabelle gefiltert nach dieser Sprache angezeigt wird. - -Wer keine mehrsprachigen Termine benötigt, kann diesen Menüpunkt problemlos für Redakteure über die Benutzer-Rollen ausblenden. Wichtig ist jedoch, dass mind. eine Sprache angelegt wurde. - -### Die Tabelle "TERMINE" - -In der Termin-Tabelle werden einzelne Daten festgehalten. Nach der Installation von `neues` stehen folgende Felder zur Verfügung: - -| Typ | Typname | Name | Bezeichnung | -|----------|---------------------|---------------------|-------------------| -| value | text | name | Name | -| validate | empty | name | | -| value | textarea | description | Beschreibung | -| value | be_manager_relation | neues_category_id | Kategorie | -| value | be_manager_relation | location | Veranstaltungsort | -| value | be_media | image | Bild | -| value | text | url | URL | -| value | datetime | startDate | Beginn | -| validate | compare_value | startDate | | -| value | time | doorTime | Einlass | -| value | datetime | endDate | Ende | -| value | select | neuesStatus | Status | -| value | text | offers_url | Tickets-URL | -| value | text | offers_price | Preis | -| validate | type | offers_price | | -| value | select | offers_availability | Verfügbarkeit | -| validate | type | url | | - -Die Felder und Feldnamen orientieren sich dabei am [JSON+LD-Standard für Veranstaltungen](https://jsonld.com/neues/), die wichtigsten Validierungen wurden bereits eingefügt. - -### Die Tabelle "KATEGORIEN" - -Die Tabelle Kategorien kann frei verändert werden, um Termine zu gruppieren (bspw. Veranstaltungsreihen) oder zu Verschlagworten (als Tags). - -| Typ | Typname | Name | Bezeichnung | -|----------|---------------------|---------|-------------| -| value | text | name | Titel | -| validate | unique | name | | -| validate | empty | name | | -| value | be_media | image | Bildmotiv | -| value | choice | status | Status | -| value | be_manager_relation | date_id | Termine | - -### Die Tabelle "LOCATION" - -Die Tabelle Location enthält die passenden Veranstaltungsorte zu den Veranstaltungen. Sie wurde im Hinblick auf leichte Geocodierung erstellt, lässt sich aber beliebig um zusätzliche Informationen erweitern. - -| Typname | Name | Bezeichnung | Funktion | -|---------|-------------|-------------|--------------------| -| value | text | name | Name | -| value | text | street | Straße, Hausnummer | -| value | text | zip | PLZ | -| value | text | locality | Stadt | -| value | osm_geocode | lat_lng | Geoposition | -| value | text | lat | Latitude | -| value | text | lng | Lng | - -Die Felder und Feldnamen orientieren sich dabei am [JSON+LD-Standard für Veranstaltungen](https://jsonld.com/neues/), die wichtigsten Validierungen wurden bereits eingefügt. - -## 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 - /v0.dev/neues/date - /v0.dev/neues/category - /v0.dev/neues/location -``` - -### Endpunkt `date` - -**Auslesen:** GET `example.org/rest/v0.dev/neues/date/?token=###TOKEN###` - -**Auslesen einzelner Termin** GET `example.org/rest/v0.dev/neues/date/7/?token=###TOKEN###` Termin der `id=7` - -### Endpunkt `category` - -**Auslesen:** GET `example.org/rest/v0.dev/neues/category/?token=###TOKEN###` - -**Auslesen einzelne Kategorie** GET `example.org/rest/v0.dev/neues/category/7/?token=###TOKEN###` Termin der `id=7` - -### Endpunkt `location` - -**Auslesen:** GET `example.org/rest/v0.dev/neues/location/?token=###TOKEN###` - -**Auslesen einzelner Standort** GET `example.org/rest/v0.dev/neues/location/7/?token=###TOKEN###` Termin der `id=7` - -## Lizenz - -MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/neues/blob/master/LICENSE.md) - -## Autor - -**Alexander Walther** -http://www.alexplus.de -https://github.com/alexplusde - -**Projekt-Lead** -[Alexander Walther](https://github.com/alexplusde) - -## Credits - -neues basiert auf: [YForm](https://github.com/yakamara/redaxo_yform) -Danke an [Gregor Harlan](https://github.com/gharlan) für die Unterstützung diff --git a/docs/screenshot.png b/docs/screenshot.png deleted file mode 100644 index 62294c9..0000000 Binary files a/docs/screenshot.png and /dev/null differ diff --git a/package.yml b/package.yml index fb8c853..45f22d3 100644 --- a/package.yml +++ b/package.yml @@ -1,5 +1,5 @@ package: neues -version: '3.2.0' +version: '3.3.0-dev' author: 'Alexander Walther' supportpage: https://alexplusde.github.io/neues/ load: late @@ -30,39 +30,19 @@ pages: entry: title: translate:neues_entry icon: rex-icon fa-bullhorn - subPath: pages/data_edit.php - yform: - table_name: rex_neues_entry - wrapper_class: rex_neues_entry - show_title: false perm: neues[date] category: title: translate:neues_category icon: rex-icon fa-folder - subPath: pages/data_edit.php - yform: - table_name: rex_neues_category - wrapper_class: rex_neues_category - show_title: false perm: neues[category] author: title: translate:neues_author - perm: neues[author] icon: rex-icon fa-user - subPath: pages/data_edit.php - yform: - table_name: rex_neues_author - wrapper_class: rex_neues_author - show_title: false - date_lang: + perm: neues[author] + lang: title: translate:neues_lang - perm: neues[date_lang] + perm: neues[lang] icon: rex-icon fa-flag - subPath: pages/data_edit.php - yform: - table_name: rex_neues_entry_lang - wrapper_class: rex_neues_entry_lang - show_title: false settings: title: translate:neues_settings icon: rex-icon fa-gear @@ -70,7 +50,6 @@ pages: perm: admin docs: title: translate:neues_help - subPath: README.md icon: rex-icon fa-info-circle itemclass: pull-right perm: neues[docs] @@ -79,4 +58,4 @@ default_config: default_author: "Redaktion" default_thumbnail: "" external_url_label: "Zur Website" - editor: 'class="###neues-settings-editor###"' + editor: 'class="form-control redactor-editor--default"'