Skip to content

Commit

Permalink
Merge branch 'main' into lang-update
Browse files Browse the repository at this point in the history
  • Loading branch information
alxndr-w authored Apr 1, 2024
2 parents 1da6f17 + 5948c64 commit f7c6cb6
Show file tree
Hide file tree
Showing 41 changed files with 1,854 additions and 287 deletions.
25 changes: 17 additions & 8 deletions .github/workflows/publish-to-redaxo-org.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: publish to redaxo.org
# Instructions: https://github.com/FriendsOfREDAXO/installer-action/

name: Publish to REDAXO.org
on:
release:
types:
Expand All @@ -9,10 +10,18 @@ jobs:
redaxo_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: FriendsOfREDAXO/installer-action@v1
with:
myredaxo-username: ${{ secrets.MYREDAXO_USERNAME }}
myredaxo-api-key: ${{ secrets.MYREDAXO_API_KEY }}
description: ${{ github.event.release.body }}
version: ${{ github.event.release.tag_name }}
- uses: actions/checkout@v3
- if: hashFiles('composer.json') != ''
uses: shivammathur/setup-php@v2
with:
php-version: "8.2"
- if: hashFiles('composer.json') != ''
uses: ramsey/composer-install@v2
with:
composer-options: "--no-dev"
- uses: FriendsOfREDAXO/installer-action@v1
with:
myredaxo-username: ${{ secrets.MYREDAXO_USERNAME }}
myredaxo-api-key: ${{ secrets.MYREDAXO_API_KEY }}
description: ${{ github.event.release.body }}
version: ${{ github.event.release.tag_name }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/.idea
/composer.lock
/.php-cs-fixer.cache
/vendor
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# News-Verwaltung für REDAXO 5 (Aktuelles, Pressemitteilungen, Pressestimmen, ...)

![friendsofredaxo neues](https://github.com/alexplusde/neues/assets/3855487/9baa05e7-17d3-46a2-ad62-36223a896e94)
![friendsofredaxo neues](https://github.com/FriendsOfREDAXO/neues/assets/3855487/e6ead321-154e-4a1f-be29-53bbabadec06)


Mit diesem Addon können News-Beiträge anhand von YForm und YOrm im Backend verwaltet und im Frontend ausgegeben werden. Auf Wunsch auch multidomainfähig und mehrsprachig.

Expand Down
1 change: 0 additions & 1 deletion assets/jetzt-beauftragen.svg

This file was deleted.

100 changes: 81 additions & 19 deletions boot.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,44 @@
<?php

if (rex_addon::get('yform')->isAvailable() && !rex::isSafeMode()) {
namespace FriendsOfRedaxo\Neues;

use rex;
use rex_addon;
use rex_be_controller;
use rex_config;
use rex_cronjob_manager;
use rex_csrf_token;
use rex_extension;
use rex_extension_point;
use rex_plugin;
use rex_url;
use rex_yform_manager_dataset;
use rex_yform_manager_table;
use rex_yform_rest;
use rex_yform_rest_route;


if (rex_addon::get('cronjob')->isAvailable() && !rex::isSafeMode()) {
rex_cronjob_manager::registerType(rex_cronjob_neues_publish::class);
}

if (rex_addon::get('yform')->isAvailable() && !rex::isSafeMode()) {
rex_yform_manager_dataset::setModelClass(
'rex_neues_entry',
neues_entry::class,
Entry::class,
);
rex_yform_manager_dataset::setModelClass(
'rex_neues_category',
neues_category::class,
Category::class,
);
rex_yform_manager_dataset::setModelClass(
'rex_neues_author',
neues_author::class,
Author::class,
);
rex_yform_manager_dataset::setModelClass(
'rex_neues_entry_lang',
EntryLang::class,
);

}

if (rex::isBackend() && 'neues/entry' == rex_be_controller::getCurrentPage() || 'yform/manager/data_edit' == rex_be_controller::getCurrentPage()) {
Expand All @@ -27,33 +51,66 @@

if (rex_plugin::get('yform', 'rest')->isAvailable() && !rex::isSafeMode()) {
/* YForm Rest API */
$rex_neues_entry_route = new \rex_yform_rest_route(
$rex_neues_entry_route = new rex_yform_rest_route(
[
'path' => '/neues/3/date/',
'path' => '/neues/4/date/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => \neues_entry::class,
'query' => \neues_entry::query(),
'type' => Entry::class,
'query' => Entry::query(),
'get' => [
'fields' => [
'rex_neues_entry' => [
'id',
'status',
'name',
'teaser',
'description',
'domain_ids',
'lang_id',
'publishdate',
'author_id',
'url',
'image',
'images',
'status',
'createdate',
'createuser',
'updatedate',
'updateuser',
],
'rex_neues_category' => [
'id',
'name',
'image',
'status',
],
'rex_neues_author' => [
'id',
'name',
'nickname',
'text',
'image',
'be_user_id',
],
],
],
'post' => [
'fields' => [
'rex_neues_entry' => [
'status',
'name',
'teaser',
'description',
'domain_ids',
'lang_id',
'publishdate',
'author_id',
'url',
'image',
'images',
'createdate',
'createuser',
'updatedate',
'updateuser',
],
],
],
Expand All @@ -67,27 +124,31 @@
],
);

\rex_yform_rest::addRoute($rex_neues_entry_route);
rex_yform_rest::addRoute($rex_neues_entry_route);

/* YForm Rest API */
$rex_neues_category_route = new \rex_yform_rest_route(
$rex_neues_category_route = new rex_yform_rest_route(
[
'path' => '/v0.dev/neues/category/',
'path' => '/neues/4/category/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => \neues_category::class,
'query' => \neues_category::query(),
'type' => Category::class,
'query' => Category::query(),
'get' => [
'fields' => [
'rex_neues_category' => [
'id',
'name',
'image',
'status',
],
],
],
'post' => [
'fields' => [
'rex_neues_category' => [
'name',
'image',
'status',
],
],
],
Expand All @@ -101,7 +162,7 @@
],
);

\rex_yform_rest::addRoute($rex_neues_category_route);
rex_yform_rest::addRoute($rex_neues_category_route);
}

rex_extension::register('YFORM_DATA_LIST', static function ($ep) {
Expand Down Expand Up @@ -144,9 +205,10 @@ static function ($a) {
$category_ids = array_filter(array_map('intval', explode(',', $a['value'])));

foreach ($category_ids as $category_id) {
$neues = neues_category::get($category_id);
if ($neues) {
$return[] = '<a href="' . rex_url::backendPage('neues/category', $params) . '">' . $neues->getName() . '</a>';
/** @var neues_category $neues_category */
$neues_category = Category::get($category_id);
if ($neues_category) {
$return[] = '<a href="' . rex_url::backendPage('neues/category', $params) . '">' . $neues_category->getName() . '</a>';
}
}
return implode('<br>', $return);
Expand Down
4 changes: 4 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
"redaxo/php-cs-fixer-config": "^2.0",
"friendsofphp/php-cs-fixer": "^3.14"
},
"replace": {
"psr/log": "*",
"psr/container": "*"
},
"scripts": {
"cs-dry": "php-cs-fixer fix -v --ansi --dry-run --config=.php-cs-fixer.dist.php",
"cs-fix": "php-cs-fixer fix -v --ansi --config=.php-cs-fixer.dist.php"
Expand Down
49 changes: 49 additions & 0 deletions docs/01_a_intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# News-Verwaltung für REDAXO 5 (Aktuelles, Pressemitteilungen, Pressestimmen, ...)

![friendsofredaxo neues](https://github.com/alexplusde/neues/assets/3855487/9baa05e7-17d3-46a2-ad62-36223a896e94)

Mit diesem Addon können News-Beiträge anhand von YForm und YOrm im Backend verwaltet und im Frontend ausgegeben werden. Auf Wunsch auch multidomainfähig und 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/blob/master/docs/04_yorm.md)
* Flexibel: **Zugriff** über die [YForm Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/05_rest.md)
* Sinnvoll: Nur ausgewählte **Rollen**/Redakteure haben Zugriff
* Bereit für Multidomain-Newsverwaltung mit YRewrite
* Bereit für **mehrsprachige** Websites: Reiter für Sprachen auf Wunsch anzeigen oder ausblenden
* Bereit für viel mehr: Kompatibel zum [URL2-Addon](https://github.com/tbaddade/redaxo_url)

> **Hinweis:** Neues benötigt ab Version 3 [`yform_field`](https://github.com/alexplusde/yform_field/) für die Auswahl von (YRewrite-)Domains und Dem Auswahldatum für Veröffentlichungen
> **Tipp:** Neues 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 [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 im Hauptmenü ein neuer Menüpunkt `Aktuelles`.

![image](https://user-images.githubusercontent.com/3855487/209792457-b6f824dc-7fd8-4295-a7c7-2eab046d19c7.png)

## Lizenz

MIT Lizenz, siehe [LICENSE.md](https://github.com/alexplusde/neues/blob/master/LICENSE)

## Autor

**Alexander Walther**
<http://www.alexplus.de>
<https://github.com/alexplusde>

**Paul Götz**
<http://www.alexplus.de>
<https://github.com/schorschy>

**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) sowie [Norbert Micheel](https://github.com/tyrant88) für die Unterstützung
Loading

0 comments on commit f7c6cb6

Please sign in to comment.