Skip to content

Commit ca995cf

Browse files
authored
Merge pull request #123 from FriendsOfREDAXO/christophboecker-patch-1
$_REQUEST-Nutzung aufgelöst
2 parents 67db35d + f0e4aed commit ca995cf

File tree

2 files changed

+45
-27
lines changed

2 files changed

+45
-27
lines changed

boot.php

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,10 @@
66
use rex_addon;
77
use rex_api_function;
88
use rex_cronjob_manager;
9-
use rex_csrf_token;
109
use rex_extension;
1110
use rex_plugin;
12-
use rex_url;
1311
use rex_yform_manager_dataset;
1412

15-
use function count;
16-
1713
/**
1814
* Tabellen in YForm mit eigener Model-Class.
1915
*/
@@ -53,33 +49,13 @@
5349
}
5450

5551
if (rex::isBackend()) {
56-
$addon = rex_addon::get('neues');
57-
$pages = $addon->getProperty('pages');
58-
5952
/**
6053
* Individualiserte Liste für Enries.
6154
*/
6255
rex_extension::register('YFORM_DATA_LIST', Entry::epYformDataList(...));
6356

6457
/**
6558
* Plus(Add)-Button im Hauptmenü-Punkt des Addon bereitstellen.
66-
*
67-
* RexStan: Using $_REQUEST is forbidden, use rex_request::request() or rex_request() instead.
68-
* Kommentar: Für diese Nutzung ist keine rex-Alternative verfügbar
69-
* @phpstan-ignore-next-line
7059
*/
71-
if (0 < count($_REQUEST)) {
72-
$_csrf_key = Entry::table()->getCSRFKey();
73-
74-
$params = rex_csrf_token::factory($_csrf_key)->getUrlParams();
75-
76-
$params['table_name'] = Entry::table()->getTableName(); // Tabellenname anpassen
77-
$params['rex_yform_manager_popup'] = '0';
78-
$params['func'] = 'add';
79-
80-
$href = rex_url::backendPage('neues/entry', $params);
81-
82-
$pages['neues']['title'] .= ' <a class="label label-primary tex-primary" style="position: absolute; right: 18px; top: 10px; padding: 0.2em 0.6em 0.3em; border-radius: 3px; color: white; display: inline; width: auto;" href="' . $href . '">+</a>';
83-
$addon->setProperty('pages', $pages);
84-
}
60+
rex_extension::register('PAGES_PREPARED', Neues::epPagesPrepared(...));
8561
}

lib/neues.php

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22

33
namespace FriendsOfRedaxo\Neues;
44

5+
use rex;
6+
use rex_be_controller;
7+
use rex_be_page;
8+
use rex_csrf_token;
9+
use rex_extension_point;
510
use rex_fragment;
611
use rex_pager;
712
use rex_sql;
13+
use rex_url;
814

915
use const ENT_QUOTES;
1016

@@ -62,9 +68,45 @@ public static function getEntry(int $postId): string
6268
return $fragment->parse('neues/entry.php');
6369
}
6470

65-
/* Hilfsklasse für JSON-LD Fragmente */
66-
public static function htmlEncode($value)
71+
/**
72+
* Hilfsklasse für JSON-LD Fragmente.
73+
*
74+
* @api
75+
*/
76+
public static function htmlEncode(string $value): string
6777
{
6878
return htmlentities($value, ENT_QUOTES, 'UTF-8');
6979
}
80+
81+
/**
82+
* EP-Callback für PAGES_PREPARED.
83+
*
84+
* Ergänzt den Backend-Menüpunkt um einen Plus-Button. Dies aber nur dann,
85+
* wenn die Instanz nicht via Redaxo-Konsole aufgerufen wurde.
86+
* (Prüfung zeitverzögert im EP, da die Konsole während der boot.php noch
87+
* nicht initialisiert ist).
88+
*
89+
* @api
90+
* @param rex_extension_point<array<string,rex_be_page>> $ep
91+
*/
92+
public static function epPagesPrepared(rex_extension_point $ep): void
93+
{
94+
if (null === rex::getConsole()) {
95+
$_csrf_key = Entry::table()->getCSRFKey();
96+
97+
$params = rex_csrf_token::factory($_csrf_key)->getUrlParams();
98+
99+
$params['table_name'] = Entry::table()->getTableName(); // Tabellenname anpassen
100+
$params['rex_yform_manager_popup'] = '0';
101+
$params['func'] = 'add';
102+
103+
$href = rex_url::backendPage('neues/entry', $params);
104+
105+
$neues = rex_be_controller::getPageObject('neues');
106+
$neues->setTitle(
107+
$neues->getTitle() .
108+
' <a class="label label-primary tex-primary" style="position: absolute; right: 18px; top: 10px; padding: 0.2em 0.6em 0.3em; border-radius: 3px; color: white; display: inline; width: auto;" href="' . $href . '">+</a>',
109+
);
110+
}
111+
}
70112
}

0 commit comments

Comments
 (0)