Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
alxndr-w committed Apr 1, 2024
2 parents da37bb1 + ffd7f39 commit 5948c64
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 23 deletions.
21 changes: 11 additions & 10 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,27 @@
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);
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',
\neues_entry_lang::class,
EntryLang::class,
);
}

Expand All @@ -54,8 +55,8 @@
[
'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' => [
Expand Down Expand Up @@ -130,8 +131,8 @@
[
'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' => [
Expand Down Expand Up @@ -205,7 +206,7 @@ static function ($a) {

foreach ($category_ids as $category_id) {
/** @var neues_category $neues_category */
$neues_category = neues_category::get($category_id);
$neues_category = Category::get($category_id);
if ($neues_category) {
$return[] = '<a href="' . rex_url::backendPage('neues/category', $params) . '">' . $neues_category->getName() . '</a>';
}
Expand Down
10 changes: 9 additions & 1 deletion docs/07_rss.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@

> 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.
Die `rex_api_neues_rss`-Klasse ist Teil des `Neues`-Addons und ermöglicht die Generierung eines RSS-Feeds für News-Einträge. Der Feed wird über die URL `index.php?rex-api-call=neues_rss` aufgerufen. Die Ausgabe wird durch verschiedene URL-Parameter beeinflusst:

- `domain_id`: Dieser Parameter ermöglicht es, den Feed auf eine bestimmte Domain zu beschränken. Zum Beispiel wird `index.php?rex-api-call=neues_rss&domain_id=1` verwendet, um den Feed für die Domain mit der ID 1 zu generieren.

- `lang_id`: Mit diesem Parameter wird der Feed auf eine bestimmte Sprache beschränkt. Zum Beispiel wird `index.php?rex-api-call=neues_rss&lang_id=2` verwendet, um den Feed in der Sprache mit der ID 2 zu generieren.

- `category_id`: Dieser Parameter ermöglicht es, den Feed auf eine bestimmte Kategorie zu beschränken. Zum Beispiel wird `index.php?rex-api-call=neues_rss&category_id=3` verwendet, um den Feed für die Kategorie mit der ID 3 zu generieren.

Die Parameter `domain_id`, `lang_id` und `category_id` sind optional und der Feed kann auch ohne diese Parameter generiert werden. Wenn sie nicht angegeben werden, werden alle Domains, Sprachen und Kategorien in den Feed einbezogen.
30 changes: 25 additions & 5 deletions lib/compatibility_classes.php
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
<?php

class neues_author extends FriendsOfRedaxo\neues\Author {
/**
* @deprecated Use FriendsOfRedaxo\neues\Author instead.
*/
class neues_author extends FriendsOfRedaxo\neues\Author
{

}

class neues_category extends FriendsOfRedaxo\neues\Category {
/**
* @deprecated Use FriendsOfRedaxo\neues\Category instead.
*/
class neues_category extends FriendsOfRedaxo\neues\Category
{

}

class neues_entry extends FriendsOfRedaxo\neues\Entry {
/**
* @deprecated Use FriendsOfRedaxo\neues\Entry instead.
*/
class neues_entry extends FriendsOfRedaxo\neues\Entry
{

}

class neues_entry_lang extends FriendsOfRedaxo\neues\EntryLang {
/**
* @deprecated Use FriendsOfRedaxo\neues\EntryLang instead.
*/
class neues_entry_lang extends FriendsOfRedaxo\neues\EntryLang
{

}

class neues extends FriendsOfRedaxo\neues\Neues {
/**
* @deprecated Use FriendsOfRedaxo\neues\Neues instead.
*/
class neues extends FriendsOfRedaxo\neues\Neues
{

}
2 changes: 1 addition & 1 deletion lib/neues.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static function getList(int $rowsPerPage = 10, string $pageCursor = 'page
*/
public static function getEntry(int $postId): string
{
$post = neues_entry::get($postId);
$post = Entry::get($postId);
$fragment = new rex_fragment();
$fragment->setVar('post', $post);
return $fragment->parse('neues/entry.php');
Expand Down
4 changes: 2 additions & 2 deletions lib/neues_entry.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,10 @@ public function setName(string $name): self
*
* @api
*/
public function getAuthor(): ?neues_author
public function getAuthor(): ?Author
{
if ($this->getRelatedDataset('author_id')) {
return neues_author::get($this->getRelatedDataset('author_id')->getId());
return Author::get($this->getRelatedDataset('author_id')->getId());
}
return null;
}
Expand Down
6 changes: 3 additions & 3 deletions lib/rex_api_neues_rss.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ public function execute(): void
$lang_id = rex_request('lang_id', 'int', null);
$category_id = rex_request('category_id', 'int', null);

if ($category_id && $category = neues_category::get($category_id)) {
$collection = neues_entry::findOnline($category_id);
if ($category_id && $category = Category::get($category_id)) {
$collection = Entry::findOnline($category_id);
$filename = 'rss.neues.' . rex_string::normalize($category->getName()) . '.xml';
$description = 'RSS-FEED: ' . rex::getServerName() . ' | ' . rex_escape($category->getName());
} else {
$collection = neues_entry::findOnline();
$collection = Entry::findOnline();
$description = 'RSS-FEED: ' . rex::getServerName();
$filename = 'rss.neues.xml';
}
Expand Down
7 changes: 6 additions & 1 deletion lib/rex_cronjob_neues_publish.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
<?php

namespace FriendsOfRedaxo\Neues;

use rex_cronjob;
use rex_i18n;

class rex_cronjob_neues_publish extends rex_cronjob
{
public function execute()
{
/* Collection von Neues-Einträgen, die noch nicht veröffentlicht sind, aber es sein sollten. (geplant) */
$neues_entry_to_publish = FriendsOfRedaxo\Neues\neues_entry::query()->where('status', 0)->where('publishdate', date('Y-m-d'), '<')->find();
$neues_entry_to_publish = Entry::query()->where('status', 0)->where('publishdate', date('Y-m-d'), '<')->find();
$neues_entry_to_publish->setValue('status', 1);
if (!$neues_entry_to_publish->save()) {
$this->setMessage(sprintf(rex_i18n::msg('neues_entry_publish_error'), count($neues_entry_to_publish)));
Expand Down

0 comments on commit 5948c64

Please sign in to comment.