Opened 7 years ago

Closed 7 years ago

#1496 closed defect (fixed)

Nach der Löschung einer Inhaltsseite werden andere Inhaltsseiten nicht mehr angezeigt

Reported by: thomas.daeppen Owned by: thomas.daeppen
Priority: normal Milestone: Contrexx 3.0 SP5
Component: ContentManager Version: 3.0.3
Severity: normal Keywords:
Cc:

Description (last modified by thomas.daeppen)

Wird eine Inhaltsseite gelöscht, welche ein Alias enthält, so entsteht eine Inkonsistenz in der Seitenstruktur, welche zur Folge hat, dass andere Inhaltsseiten in der Seitenstruktur nicht mehr angezeigt werden. Die Seiten sind aber (meistens) über das Frontend noch aufrufbar.



Manuelles Einspielen des Bugfixes:
Prüfung ob Ihre Installation von diesem Bug betroffen ist. Rufen Sie dazu die folgende URL auf ( Der Contrexx Sicherheitshinweis muss dabei bestätigt werden):

http://<Ihre Website>/cadmin/index.php?cmd=content&tree=verify

Wenn nun in der oberen linken Browserecke eine 1 erscheint, ist Ihre Website von diesem Bug nicht betroffen. Wenden Sie sich in diesem Fall an den Herstellersupport (http://www.contrexx.com/support) für weitere Unterstützung.
Erscheint in der oberen linken Browserecke eine Liste von Fehler, so müssen nun die folgenden Schritte unternommen werden, um den Fehler zu beheben:

  1. Bugfix https://github.com/Cloudrexx/cloudrexx/commit/820832674554bf74f53280cb15de7b7681b187e1 einspielen
  2. Bugfix https://github.com/Cloudrexx/cloudrexx/commit/664157cb26a9ebe3da0152b4600dd24a17809b06 einspielen
  3. In der Datenbank die Kaskadierungsoptionen des Fremdschlüssels contrexx_content_page.node_id wie folgt setzen:
    • ON DELETE: SET NULL
    • ON UPDATE: NO ACTION

Dazugehörige SQL-Abfrage (Achtung: Gegebenenfalls muss das Tabellen-Präfix contrexx_ angepasst werden. Der Fremdschlüssel contrexx_content_page_ibfk_1 kann einen anderen Namen haben!):

ALTER TABLE `contrexx_content_page` DROP FOREIGN KEY `contrexx_content_page_ibfk_1` ;
ALTER TABLE `contrexx_content_page` ADD FOREIGN KEY ( `node_id` ) REFERENCES `contrexx_content_node` (
`id`
) ON DELETE SET NULL ON UPDATE NO ACTION ;
  1. In der Datenbank die Kaskadierungsoptionen des Fremdschlüssels contrexx_content_node.parent_id wie folgt setzen:
    • ON DELETE: NO ACTION
    • ON UPDATE: NO ACTION

Dazugehörige SQL-Abfrage (Achtung: Gegebenenfalls muss das Tabellen-Präfix contrexx_ angepasst werden. Der Fremdschlüssel contrexx_content_node_ibfk_1 kann einen anderen Namen haben!):

ALTER TABLE `contrexx_content_node` DROP FOREIGN KEY `contrexx_content_node_ibfk_1` ;
ALTER TABLE `contrexx_content_node` ADD FOREIGN KEY ( `parent_id` ) REFERENCES `contrexx_content_node` (
`id`
) ON DELETE NO ACTION ON UPDATE NO ACTION ;
  1. Die folgende URL aufrufen, um die Inkonsistenz in der Datenbank zu lösen:

http://<Ihre Website>/cadmin/index.php?cmd=content&tree=fix

  1. Führen Sie die zu Beginn durchgeführt Prüfung nochmals durch (http://<Ihre Website>/cadmin/index.php?cmd=content&tree=verify), um sicher zu stellen, dass die Einspielung des Bugfixes erfolgreich war.

Change History (5)

comment:1 Changed 7 years ago by thomas.daeppen

  • Milestone changed from Contrexx 3.0 SP5 to Contrexx 3.0 SP4
  • Resolution set to fixed
  • Status changed from new to closed

comment:2 Changed 7 years ago by thomas.daeppen

  • Milestone changed from Contrexx 3.0 SP4 to Contrexx 3.0 SP5
  • Resolution fixed deleted
  • Status changed from closed to reopened
  • Summary changed from Nach der Löschung einer Inhaltsseiten werden andere Inhaltsseiten nicht mehr angezeigt to Nach der Löschung einer Inhaltsseite werden andere Inhaltsseiten nicht mehr angezeigt

Falls auf Grund dieses Fehlers die Seitenstruktur vor der Einspielung des Bugfixes eine Inkonsistenz aufwies, besteht diese nach der Einspielung Bugfixes in https://github.com/Cloudrexx/cloudrexx/commit/820832674554bf74f53280cb15de7b7681b187e1 weiterhin, da diese nicht gelöst wird, sondern mit dem Bugfix nur verhindert wird, dass eine erneute Inkonsistenz auftreten kann.

comment:3 Changed 7 years ago by thomas.daeppen

Die Inkonsistenz der Seitenstruktur kann mit dem URL-Modifikator tree=fix (Bsp: /cadmin/index.php?cmd=content&tree=fix) gelöst werden.

Im Update-Skript muss der Mechanismus zur Lösung der Inkonsistenz aufgerufen werden:

\Env::get('em')->getRepository('Cx\Model\ContentManager\Node')->recover()

Siehe dazu auch: https://github.com/Cloudrexx/cloudrexx/commit/664157cb26a9ebe3da0152b4600dd24a17809b06

comment:4 Changed 7 years ago by thomas.daeppen

  • Description modified (diff)

comment:5 Changed 7 years ago by kramer

  • Resolution set to fixed
  • Status changed from reopened to closed
Note: See TracTickets for help on using tickets.