Skip to content

Commit

Permalink
add cronjob sync
Browse files Browse the repository at this point in the history
  • Loading branch information
alxndr-w committed Jul 16, 2024
1 parent 10eeabd commit c8b8932
Show file tree
Hide file tree
Showing 12 changed files with 225 additions and 48 deletions.
46 changes: 44 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
/* YForm Rest API */
$rex_neues_entry_route = new rex_yform_rest_route(
[
'path' => '/neues/4/date/',
'path' => '/neues/entry/5.0.0/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => Entry::class,
'query' => Entry::query(),
Expand Down Expand Up @@ -131,7 +131,7 @@
/* YForm Rest API */
$rex_neues_category_route = new rex_yform_rest_route(
[
'path' => '/neues/4/category/',
'path' => '/neues/category/5.0.0/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => Category::class,
'query' => Category::query(),
Expand Down Expand Up @@ -165,6 +165,48 @@
);

rex_yform_rest::addRoute($rex_neues_category_route);

/* YForm Rest API */
$rex_neues_author_route = new rex_yform_rest_route(
[
'path' => '/neues/author/5.0.0/',
'auth' => '\rex_yform_rest_auth_token::checkToken',
'type' => Author::class,
'query' => Author::query(),
'get' => [
'fields' => [
'rex_neues_author' => [
'id',
'name',
'nickname',
'text',
'image',
'be_user_id',
],
],
],
'post' => [
'fields' => [
'rex_neues_author' => [
'name',
'nickname',
'text',
'image',
'be_user_id',
],
],
],
'delete' => [
'fields' => [
'rex_neues_author' => [
'id',
],
],
],
],
);

rex_yform_rest::addRoute($rex_neues_author_route);
}

rex_extension::register('YFORM_DATA_LIST', static function ($ep) {
Expand Down
14 changes: 7 additions & 7 deletions docs/03_neues_entry.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm
## 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
$entries = FriendsOfRedaxo\Neues\Entry::query()->find(); // YOrm-Standard-Methode zum Finden von Einträgen, lässt sich mit where(), Limit(), etc. einschränken und Filtern.
$entries = FriendsOfRedaxo\Neues\Entry::findOnline(); // Alle Online-Einträge
$entries = FriendsOfRedaxo\Neues\Entry::findByCategory($category_id [, $status]) // Alle Einträge einer Kategorie
```

## Methoden und Beispiele

```php
$entry = neues_entry::get(3); // News mit der id=3
$entry = FriendsOfRedaxo\Neues\Entry::get(3); // News mit der id=3
// dump($entry);

echo $entry->getName();
Expand All @@ -36,7 +36,7 @@ echo $entry->getUrl(); // opt. URL-Schlüssel angeben
```

```php
$categories = neues_entry::get(3)->getCategories();
$categories = FriendsOfRedaxo\Neues\Entry::get(3)->getCategories();
// dump($categories);

foreach($categories as $category) {
Expand Down Expand Up @@ -241,15 +241,15 @@ $entry = $entry->setStatus(1);
Findet Online-Einträge. Wenn eine Kategorie-ID angegeben ist, werden nur Einträge aus dieser Kategorie zurückgegeben.

```php
$entries = neues_entry::findOnline(1);
$entries = FriendsOfRedaxo\Neues\Entry::findOnline(1);
```

### findByCategory(?int $category_id = null, int $status = 1)

Findet Einträge nach Kategorie.

```php
$entries = neues_entry::findByCategory(1, 1);
$entries = FriendsOfRedaxo\Neues\Entry::findByCategory(1, 1);
```

### getUrl(string $profile = 'neues-entry-id')
Expand Down
2 changes: 1 addition & 1 deletion docs/04_neues_category.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm
## Beispiel-Ausgabe einer Kategorie

```php
$category = neues_category::get(3); // News-Kategorie mit der id=3
$category = FriendsOfRedaxo\Neues\Category::get(3); // News-Kategorie mit der id=3
// dump($category);

echo $category->getName();
Expand Down
6 changes: 3 additions & 3 deletions docs/05_neues_author.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ Kind-Klasse von `rex_yform_manager_dataset`, damit stehen alle Methoden von YOrm
## Infos zu einem Autor erhalten

```php
$author = neues_author::get(3); // Autor mit der id=3
$author = FriendsOfRedaxo\Neues\Author::get(3); // Autor mit der id=3
// dump($author);
```

## Alle Autoren erhalten

```php
$authors = neues_author::query()->find();
$authors = FriendsOfRedaxo\Neues\Authorquery()->find();
foreach($authors as $author) {
echo $author->getName();
}
Expand All @@ -23,7 +23,7 @@ foreach($authors as $author) {
## Neuen Autor erstellen

```php
$author = new neues_author::create();
$author = new FriendsOfRedaxo\Neues\Author::create();
$author->setName('Name');
$author->setNickname('Spitzname');
$author->save();
Expand Down
23 changes: 17 additions & 6 deletions docs/10_restful_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,29 @@ Die [Rest-API](https://github.com/yakamara/redaxo_yform/blob/master/docs/05_rest
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
/neues/category
/neues/entry
/neues/author
```

## Endpunkt `entry`

**Auslesen:** GET `example.org/rest/neues/3/date/?token=###TOKEN###`
**Auslesen:** GET `example.org/rest/neues/entry/5.0.0/?token=###TOKEN###`

**Auslesen einzelner Termin** GET `example.org/rest/neues/3//entry/7/?token=###TOKEN###` Eintrag der `id=7`
**Auslesen einzelner Termin** GET `example.org/rest/neues/entry/5.0.0/3?token=###TOKEN###` Eintrag der `id=3`

## Endpunkt `author`

**Auslesen:** GET `example.org/rest/neues/author/5.0.0/?token=###TOKEN###`

**Auslesen einzelner Termin** GET `example.org/rest/neues/author/5.0.0/3?token=###TOKEN###` Eintrag der `id=3`

## Endpunkt `category`

**Auslesen:** GET `example.org/rest/neues/3/category/?token=###TOKEN###`
**Auslesen:** GET `example.org/rest/neues/category/5.0.0/?token=###TOKEN###`

**Auslesen einzelne Kategorie** GET `example.org/rest/neues/category/5.0.0/7?token=###TOKEN###` Eintrag der `id=7`

## Cronjob

**Auslesen einzelne Kategorie** GET `example.org/rest/neues/3/category/7/?token=###TOKEN###` Eintrag der `id=7`
Seit Version 5.0 gibt es einen Cronjob, der Daten einer anderen REDAXO-Installation abruft und in die Datenbank schreibt. Dazu muss der Cronjob in der anderen REDAXO-Installation eingerichtet werden. Der Cronjob ruft die Daten der Endpunkte `entry`, `author` und `category` ab.
6 changes: 6 additions & 0 deletions lang/de_de.lang
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,9 @@ neues_docs_restful_api = YForm RESTful API
neues_entry_publish_success = %s Beiträge wurden erfolgreich veröffentlicht.
neues_entry_publish_error = %s Beiträge konnten nicht veröffentlicht werden.
neues_entry_publish_cronjob = Geplante Beiträge veröffentlichen. (Aktuelles)

neues_entry_sync_error = Fehler beim Synchronisieren der Beiträge.
neues_entry_sync_cronjob = [📰 Neues] Beiträge, Kategorien und Autoren einer anderen REDAXO-Installation abrufen
neues_entry_sync_cronjob_url = URL der REDAXO-Installation
neues_entry_sync_cronjob_token = RESTful API-Token
neues_entry_sync_cronjob_status = Status-Wert
20 changes: 10 additions & 10 deletions lib/compatibility_classes.php
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
<?php

use FriendsOfRedaxo\neues\Author;
use FriendsOfRedaxo\neues\Category;
use FriendsOfRedaxo\neues\Entry;
use FriendsOfRedaxo\neues\EntryLang;
use FriendsOfRedaxo\Neues\Author;
use FriendsOfRedaxo\Neues\Category;
use FriendsOfRedaxo\Neues\Entry;
use FriendsOfRedaxo\Neues\EntryLang;

/**
* @deprecated use FriendsOfRedaxo\neues\Author instead
* @deprecated use FriendsOfRedaxo\Neues\Author instead
*/
class neues_author extends Author {}

/**
* @deprecated use FriendsOfRedaxo\neues\Category instead
* @deprecated use FriendsOfRedaxo\Neues\Category instead
*/
class neues_category extends Category {}

/**
* @deprecated use FriendsOfRedaxo\neues\Entry instead
* @deprecated use FriendsOfRedaxo\Neues\Entry instead
*/
class neues_entry extends Entry {}

/**
* @deprecated use FriendsOfRedaxo\neues\EntryLang instead
* @deprecated use FriendsOfRedaxo\Neues\EntryLang instead
*/
class neues_entry_lang extends EntryLang {}

/**
* @deprecated use FriendsOfRedaxo\neues\Neues instead
* @deprecated use FriendsOfRedaxo\Neues\Neues instead
*/
class neues extends FriendsOfRedaxo\neues\Neues {}
class neues extends FriendsOfRedaxo\Neues\Neues {}
3 changes: 2 additions & 1 deletion lib/neues.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use rex_fragment;
use rex_pager;
use rex_sql;

class Neues
{
Expand All @@ -23,7 +24,7 @@ class Neues
*/
public static function getList(int $rowsPerPage = 10, string $pageCursor = 'page'): string
{
$query = neues_entry::query()
$query = Entry::query()
->where('status', 1, '>=')
->where('publishdate', rex_sql::datetime(), '<=')
->orderBy('publishdate', 'desc');
Expand Down
2 changes: 1 addition & 1 deletion lib/neues_author.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* It inherits from the rex_yform_manager_dataset class.
*
*
* $author = neues_author::create();
* $author = FriendsOfRedaxo\Neues\Author::create();
* $author->setValue('name', 'Neuer Autor');
* $author->save();
*/
Expand Down
20 changes: 10 additions & 10 deletions lib/neues_category.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@
*
* Class neues_category
*
* This class represents a category in the news management.
* This class represents a Category in the news management.
* It inherits from the rex_yform_manager_dataset class.
*
* $category = neues_category::create();
* $category = FriendsOfRedaxo\Neues\Categoycreate();
* $category->setValue('name', 'Neue Kategorie');
* $category->save();
*/
class Category extends rex_yform_manager_dataset
{
/**
* Gibt den Namen der Kategorie zurück.
* Returns the name of the category.
* Returns the name of the Category.
*
* @return string Der Name der Kategorie. / The name of the category.
* @return string Der Name der Kategorie. / The name of the Category.
*
* Beispiel / Example:
* $name = $category->getName();
Expand All @@ -40,9 +40,9 @@ public function getName(): string

/**
* Setzt den Namen der Kategorie.
* Sets the name of the category.
* Sets the name of the Category.
*
* @param string $name Der neue Name der Kategorie. / The new name of the category.
* @param string $name Der neue Name der Kategorie. / The new name of the Category.
*
* Beispiel / Example:
* $category->setName('Neuer Name');
Expand All @@ -57,9 +57,9 @@ public function setName(string $name): self

/**
* Gibt die Einträge der Kategorie zurück.
* Returns the entries of the category.
* Returns the entries of the Category.
*
* @return rex_yform_manager_collection|null Die Einträge der Kategorie oder null, wenn keine Einträge vorhanden sind. / The entries of the category or null if no entries are present.
* @return rex_yform_manager_collection|null Die Einträge der Kategorie oder null, wenn keine Einträge vorhanden sind. / The entries of the Category or null if no entries are present.
*
* Beispiel / Example:
* $entries = $category->getEntries();
Expand All @@ -73,10 +73,10 @@ public function getEntries(): ?rex_yform_manager_collection

/**
* Gibt die URL der Kategorie zurück.
* Returns the URL of the category.
* Returns the URL of the Category.
*
* @param string $profile Das Profil, das für die URL-Erstellung verwendet wird. Standardmäßig 'neues-category-id'. / The profile used for URL creation. Defaults to 'neues-category-id'.
* @return string Die URL der Kategorie oder ein leerer String, wenn keine URL gefunden wurde. / The URL of the category or an empty string if no URL was found.
* @return string Die URL der Kategorie oder ein leerer String, wenn keine URL gefunden wurde. / The URL of the Category or an empty string if no URL was found.
*
* Beispiel / Example:
* $url = $category->getUrl();
Expand Down
14 changes: 7 additions & 7 deletions lib/neues_entry.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* This class represents a new entry.
*
* Beispiel / Example:
* $entry = neues_entry::get($id);
* $entry = FriendsOfRedaxo\Neues\Entry::get($id);
*
* @package rex_yform_manager_dataset
*/
Expand Down Expand Up @@ -393,13 +393,13 @@ public function setStatus(int $status): self

/**
* Findet Online-Einträge. Wenn eine Kategorie-ID angegeben ist, werden nur Einträge aus dieser Kategorie zurückgegeben.
* Finds online entries. If a category ID is provided, only entries from this category are returned.
* Finds online entries. If a Category ID is provided, only entries from this Category are returned.
*
* @param int|null $category_id Die ID der Kategorie. / The ID of the category.
* @param int|null $category_id Die ID der Kategorie. / The ID of the Category.
* @return rex_yform_manager_collection|null Die gefundenen Einträge oder null, wenn keine Einträge gefunden wurden. / The found entries or null if no entries were found.
*
* Beispiel / Example:
* $entries = neues_entry::findOnline(1);
* $entries = FriendsOfRedaxo\Neues\Entry::findOnline(1);
*
* @api
*/
Expand All @@ -413,14 +413,14 @@ public static function findOnline(?int $category_id = null): ?rex_yform_manager_

/**
* Findet Einträge nach Kategorie.
* Finds entries by category.
* Finds entries by Category.
*
* @param int|null $category_id Die ID der Kategorie. / The ID of the category.
* @param int|null $category_id Die ID der Kategorie. / The ID of the Category.
* @param int $status Der Status der Einträge. / The status of the entries.
* @return rex_yform_manager_collection|null Die gefundenen Einträge oder null, wenn keine Einträge gefunden wurden. / The found entries or null if no entries were found.
*
* Beispiel / Example:
* $entries = neues_entry::findByCategory(1, 1);
* $entries = FriendsOfRedaxo\Neues\Entry::findByCategory(1, 1);
*
* @api
*/
Expand Down
Loading

0 comments on commit c8b8932

Please sign in to comment.