Skip to content

Commit

Permalink
Merge branch 'main' into namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
alxndr-w authored Apr 3, 2024
2 parents cf9fe50 + 9f8b6a6 commit 16a24b3
Show file tree
Hide file tree
Showing 17 changed files with 974 additions and 55 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 }}
2 changes: 0 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
}

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

rex_yform_manager_dataset::setModelClass(
'rex_neues_entry',
Entry::class,
Expand All @@ -41,7 +40,6 @@
'rex_neues_entry_lang',
EntryLang::class,
);

}

if (rex::isBackend() && 'neues/entry' == rex_be_controller::getCurrentPage() || 'yform/manager/data_edit' == rex_be_controller::getCurrentPage()) {
Expand Down
90 changes: 59 additions & 31 deletions docs/01_c_migration.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,51 @@
# Migration von REDAXO `FOR News Manager 3` und `alexplusde\Neues` v3 zu `FriendsOfREEAXO\Neues` v4
# Migration von REDAXO `FOR News Manager 3`, `Blogger 1.3.2` und `alexplusde\Neues` 3.x zu `FriendsOfREEAXO\Neues` 4.1

## 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.
Das FOR-Addon News-Manager und das FOR-Addon Blogger befinden sich nicht mehr in aktiver Entwicklung. Sie wurden nur noch bis Ende 2022 bzw. Anfang 2024 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.
Ein wesentlicher Vorteil gegenüber News Manager oder Blogger 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)

## Automatische Daten-Migration von News Manager zu Neues 4

Es gibt einen eine automatische Migration von News Manager-Einträgen zu Neues 4.
| Was | News Manager `3.0.3` | Blogger `1.3.2` | Neues `^4.1` |
| ------------------------------------ | ------------------------------------------- | --------------- | ------------------------------------------------------------- |
| Letzte Weiterentwicklung und Wartung | ❌ 28. Dez. 2022 | ❌ 31. März 2024 | ✅ aktuell |
| REDAXO Core-Version | ab `^5.4` | ❌ n/a | ab `^5.15` |
| PHP-Version | ab `^5.6` | ❌ n/a | ab `^7.2` |
| Addon-Abhängigkeiten | URL ab `^2` | Keine | URL ab `^2`, YForm ab `^4`, YForm Field ab `^2` |
| Position im Backend | `Addons > News Manager` | `Addons > Blogger` | `Aktuelles` (oben) |
| News-Übersicht |`News Manager > "News anlegen"` | `Blogger > Einträge` |`Aktuelles > Einträge` |
| Kategorien |`News Manager > "Kategorien"` | `Blogger > Kategorien` |`Aktuelles > Kategorien` |
| Kommentare | ✅ als Plugin: `News Manager > "Kommentare"` | ❌ nein | ❌ nein |
| Autoren | ❌ nein | ❌ nein |`Aktuelles > Autoren` |
| Mehrsprachigkeit |`News Manager > (Sprache auswählen)` | ❌ nein |`Aktuelles > Sprachen` |
| Dokumentation | ✅ als Plugin | ❌ nein |`Aktuelles > Hilfe` |
| Einstellungen | ❌ nein | `Blogger > Einstellungen` |`Aktuelles > Einstellungen` |
| WYSIWYG-Editor | ✅ ausschließlich `redactor2` | ✅ frei wählbar | ✅ frei wählbar (`cke5`, `redactor`, `markitup`, `tinymce`) |
| Backend-Sprachen | ✅ ja `de,en,es,se` | ✅ ja `de, en` | ✅ ja `da,de,en,el,fi,nl,no,pl,ro,se,es,tr,uk` |
| RSS | ✅ ja | ❌ nein | ✅ ja |
| Fertige Fragmente | ✅ ja | ✅ ja | ✅ ja |
| Multi-Domain-Unterstützung | ❌ über Umwege | ❌ n/a | ✅ ja |
| Frei erweiterbare Felder | ❌ nein | ❌ nein | ✅ ja (via YForm) |
| YOrm-Model | ❌ nein | ❌ nein | ✅ ja (News-Einträge, Kategorien, Autoren, Sprachen) |
| CSV-Import | ❌ nein | ❌ nein | ✅ ja (via YForm) |
| CSV-Export | ❌ nein | ❌ nein | ✅ ja (via YForm) |
| RESTful API | ❌ nein | ❌ nein | ✅ ja (via YForm) |

## Migration von News Manager zu Neues

### Automatische Daten-Migration von News Manager zu Neues 4

Es gibt eine automatische Migration von News Manager-Einträgen zu Neues 4.

Diese liegt der finalen Version des News Managers bei. Alternativ müssen folgenden Schritte erfolgen.

## Manuelle Daten-Migration von News Manager zu Neues 4
### Manuelle Daten-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)
Expand Down Expand Up @@ -96,6 +99,31 @@ INNER JOIN rex_newsmanager_categories
ON FIND_IN_SET(rex_newsmanager_categories.id, REPLACE(REPLACE(rex_newsmanager.newsmanager_category_id, '|', ','), ' ', '')) > 0;
```

## Migration von Blogger zu Neues

### Automatische Daten-Migration von Blogger zu Neues 4.1

Es wird eine automatische Migration von Blogger-Einträgen zu Neues 4.1.

Diese liegt der finalen Version des News Managers bei. Alternativ müssen folgenden Schritte erfolgen.

### Manuelle Daten-Migration von Blogger 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.

### SQL-Befehle zur Migration der Daten von Blogger zu Neues 4

> Hinweis: Die Tags müssen manuell oder mit eigenen Anpassungen übertragen werden, da es hierfür eine eigene Tabelle gibt.
folgt...

```SQL
```

## 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:
Expand Down
6 changes: 3 additions & 3 deletions fragments/neues/pagination.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
</svg>
</a>
<?php else: ?>
<a class="page-link d-inline-flex align-items-center h-100" href="<?= $prevPage === $currentPage ? '#' : '?page=' . $prevPage ?>">
<a class="page-link d-inline-flex align-items-center h-100" href="<?= $prevPage === $currentPage ? '#' : '?page=' . $pager->getRowsPerPage() * $prevPage ?>">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/>
</svg>
Expand All @@ -51,7 +51,7 @@
</a>
<?php else: ?>
<a class="page-link <?= $currentPage === $i ? 'active' : '' ?>"
href="?page=<?= $page ?>">
href="?page=<?= $pager->getRowsPerPage() * $page ?>">
<?= $page + 1 ?>
</a>
<?php endif ?>
Expand All @@ -61,7 +61,7 @@
<!-- Next -->
<li class="page-item <?= $nextPage === $currentPage ? 'disabled' : '' ?>">
<a class="page-link d-inline-flex align-items-center h-100"
href="<?= $nextPage === $currentPage ? '#' : '?page=' . $nextPage ?>">
href="<?= $nextPage === $currentPage ? '#' : '?page=' . $pager->getRowsPerPage() * $nextPage ?>">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
</svg>
Expand Down
13 changes: 5 additions & 8 deletions install.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@

/* Tablesets aktualisieren */
if (rex_addon::get('yform') && rex_addon::get('yform')->isAvailable()) {
rex_yform_manager_table_api::importTablesets(rex_file::get(rex_path::addon(rex_addon::get('neues')->getName(), 'install/tableset.json')));
rex_yform_manager_table_api::importTablesets(rex_file::get(__DIR__ . '/install/tableset.json'));
}

if (!rex_media::get('neues_entry_fallback_image.png')) {

rex_file::copy(rex_path::addon('neues', '/install/neues_entry_fallback_image.png'), rex_path::media('neues_entry_fallback_image.png'));
rex_file::copy(__DIR__ . '/install/neues_entry_fallback_image.png', rex_path::media('neues_entry_fallback_image.png'));
$data = [];
$data['title'] = 'Aktuelles - Fallback-Image';
$data['category_id'] = 0;
Expand All @@ -34,24 +33,22 @@
if (rex_addon::get('cronjob') && rex_addon::get('cronjob')->isAvailable()) {
$cronjob = array_filter(rex_sql::factory()->getArray("SELECT * FROM rex_cronjob WHERE `type` = 'rex_cronjob_neues_publish'"));
if (!$cronjob) {
$query = rex_file::get(rex_path::addon('neues', 'install/rex_cronjob_neues_publish.sql'));
$query = rex_file::get(__DIR__ . '/install/rex_cronjob_neues_publish.sql');
rex_sql::factory()->setQuery($query);
}
}

/* URL-Profile installieren */
if (rex_addon::get('url') && rex_addon::get('url')->isAvailable()) {

if (false === rex_config::get('neues', 'url_profile', false)) {

$rex_neues_category = array_filter(rex_sql::factory()->getArray("SELECT * FROM rex_url_generator_profile WHERE `table_name` = '1_xxx_rex_neues_category'"));
if (!$rex_neues_category) {
$query = rex_file::get(rex_path::addon('neues', 'install/rex_url_profile_neues_category.sql'));
$query = rex_file::get(__DIR__ . '/install/rex_url_profile_neues_category.sql');
rex_sql::factory()->setQuery($query);
}
$rex_neues_entry = array_filter(rex_sql::factory()->getArray("SELECT * FROM rex_url_generator_profile WHERE `table_name` = '1_xxx_rex_neues_entry'"));
if (!$rex_neues_entry) {
$query = rex_file::get(rex_path::addon('neues', 'install/rex_url_profile_neues_entry.sql'));
$query = rex_file::get(__DIR__ . 'install/rex_url_profile_neues_entry.sql');
rex_sql::factory()->setQuery($query);
}
/* URL-Profile wurden bereits einmal installiert, daher nicht nochmals installieren und Entwickler-Einstellungen respektieren */
Expand Down
98 changes: 98 additions & 0 deletions lang/da_da.lang
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
neues = Aktuelt
neues_title = Aktuelt
neues_entry = Indlæg
neues_settings = Indstillinger
neues_lang = Sprog

neues_category = Kategorier
neues_help = Hjælp

neues_default_thumbnail = Forhåndsvisningsbillede
neues_default_author = Forfatter

neues_author_table = 📰 Forfattere
neues_entry_category_rel = 📰 Indlæg 🔀 Kategorier
neues_entry_category_table = 📰 Kategorier
neues_entry_table = 📰 Indlæg
neues_entry_lang = 📰 Sprog

neues_entry_author_id = Forfatter
neues_name = Overskrift
neues_name_notice = Titel på indlægget
neues_name_validate_empty = Titlen på dette nyhedsindlæg må ikke være tom.
neues_category_name_validate_unique = Dette navn er allerede taget.
neues_category_title = Kategori
neues_category_title_notice = Navn på kategori, nøgleord eller navn på en serie af indlæg.
neues_category_image = Titelbillede
neues_teaser = Teaser
neues_teaser_notice = En kort teaser-tekst eller et resumé, der kan vises i oversigten over begivenheder.
neues_description = Indhold
neues_description_notice = Angiv indholdet af dit nyhedsindlæg.
neues_image = Titelbillede
neues_images = Galleri

neues_external_url = Ekstern link
neues_external_url_notice = Hvis der er yderligere informationer på en anden hjemmeside, så angiv her adressen til en ekstern hjemmeside, f.eks. <code>http://www.example.org/foo-bar/</code>
neues_external_url_validate_url = Indtast venligst en gyldig, fuldstændig URL (f.eks. `https://example.org/`)

neues_createdate = Oprettet den...
neues_createuser = Oprettet af...
neues_updatedate = Sidst ændret den...
neues_updateuser = Sidst ændret af...
neues_publishdate = Offentliggjort den...
neues_publishdate_validate_compare_value = Offentliggørelsesdatoen må ikke være tom.
neues_publishuser = Offentliggjort af...

neues_category_ids = Kategori(er)
neues_prio = Rækkefølge

neues_status = Offentliggjort?
neues_status_notice = Angiver, om dette nyhedsindlæg skal være synligt nu (offentliggjort/planlagt) eller stadig er i udkaststadiet.
neues_category_status_notice = Angiver, om denne kategori skal være synlig nu (offentliggjort/planlagt) eller stadig er i udkaststadiet.
neues_status_online = Offentliggjort
neues_status_offline = Offline
neues_status_planned = Planlagt
neues_status_draft = Udkast
neues_status_deleted = Kasseret

neues_domain_ids = Websites
neues_domain_ids_notice = Her kan du angive, om nyhederne kun skal offentliggøres på en eller flere websites inden for denne REDAXO-installation.
neues_date_ids = Indlæg
neues_date_id_notice = Nyhedsindlæg, der er tilknyttet denne kategori

neues_language = Sprog
neues_language_name = Sprog
neues_language_name_notice = Navn på sprog
neues_language_code = Sprogkode (ISO 639-1)
neues_language_code_notice = Tocifret sprogkode i henhold til ISO-standard, f.eks.<code>da</code>
neues_language_entry = Administrer indlæg
neues_language_entry_notice = Administrer linkede begivenheder

neues_editor = Editor

neues_author = Forfattere
neues_author_name = Navn
neues_author_nickname = Kaldenavn
neues_author_text = Beskrivelse
neues_author_be_user_id = REDAXO-bruger

# Doku

neues_docs_a_intro = Introduktion
neues_docs_b_import_export = Import/Eksport
neues_docs_c_migration = Migration
neues_docs_d_example = Eksempel
neues_docs_settings = Indstillinger
neues_docs_neues_entry = Indlæg
neues_docs_neues_category = Kategorier
neues_docs_neues_author = Forfattere
neues_docs_neues_language = Sprog
neues_docs_url = URL-tilføjelse
neues_docs_rss = RSS-feed
neues_docs_restful_api = YForm RESTful API

# Cronjob

neues_entry_publish_success = %s indlæg er blevet offentliggjort med succes.
neues_entry_publish_error = %s indlæg kunne ikke offentliggøres.
neues_entry_publish_cronjob = Offentliggør planlagte indlæg. (Aktuelt)
Loading

0 comments on commit 16a24b3

Please sign in to comment.