Skip to content

Commit bca4b58

Browse files
Url-Addon-Einträge löschen verbessert
1 parent 6f6896c commit bca4b58

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

install.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use rex_path;
1313
use rex_sql;
1414
use rex_yform_manager_table_api;
15+
use Url\Profile;
1516

1617
/** @var rex_addon $this */
1718

@@ -86,16 +87,17 @@
8687
*/
8788
if (rex_addon::get('url')->isAvailable()) {
8889
if (false === rex_config::get('neues', 'url_profile', false)) {
90+
$urlProfileTable = rex::getTable(Profile::TABLE_NAME);
8991
// Category
90-
$sql->setTable(rex::getTable('url_generator_profile'));
92+
$sql->setTable($urlProfileTable);
9193
$sql->setWhere('table_name = :tn', [':tn' => '1_xxx_rex_neues_category']);
9294
$sql->select();
9395
if (0 === $sql->getRows()) {
9496
$this->includeFile(__DIR__ . '/install/url_profile_category.php', $subScriptParams);
9597
}
9698

9799
// Entry
98-
$sql->setTable(rex::getTable('url_generator_profile'));
100+
$sql->setTable($urlProfileTable);
99101
$sql->setWhere('table_name = :tn', [':tn' => '1_xxx_rex_neues_entry']);
100102
$sql->select();
101103
if (0 === $sql->getRows()) {

uninstall.php

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616

1717
use FriendsOfRedaxo\Neues\Cronjob\Publish;
18+
use Url\Cache;
19+
use Url\Profile;
1820

1921
/**
2022
* Url-Parameter nscope auswerten: unbekannt oder ungültig lösen die
@@ -63,9 +65,32 @@
6365
}
6466

6567
try {
66-
$sql->setTable(rex::getTable('url_generator_profile'));
67-
$sql->setWhere('table_name LIKE :tn', [':tn' => '1_xxx_rex_neues_%']);
68-
$sql->delete();
68+
/**
69+
* In enger Anlehnung an den Originalcode (Profil-Löschen) in der Datei
70+
* «pages/generator.profiles.php» des Url-Addons.
71+
* Siehe: if ($func == 'delete' && $id > 0) usw.
72+
*
73+
* Funktioniert nur bei aktiviertem Url-Addon. Bei deaktiviertem Url-Addon
74+
* bleiben die Einträge erhalten.
75+
*/
76+
$urlProfileTable = rex::getTable(Profile::TABLE_NAME);
77+
78+
$profiles = $sql->setTable($urlProfileTable)
79+
->setWhere('table_name LIKE :tn', [':tn' => '1_xxx_rex_neues_%'])
80+
->select('id')
81+
->getArray(fetchType: PDO::FETCH_COLUMN);
82+
83+
foreach ($profiles as $profileId) {
84+
$profile = Profile::get($profileId);
85+
if (null !== $profile) {
86+
$profile->deleteUrls();
87+
}
88+
$sql->setTable($urlProfileTable)
89+
->setWhere('id = :id', ['id' => $profileId])
90+
->delete();
91+
}
92+
93+
Cache::deleteProfiles();
6994
} catch (Throwable $th) {
7095
// void; falls rex_url_generator_profile nicht existiert / Url-Addon fehlt
7196
}

0 commit comments

Comments
 (0)