[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Versionierungs-Addon - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

Versionierungs-Addon

19. Jul 2007, 16:38

Hallo zusammen

Ich habe ein Versionierungs-Addon für Redaxo geschrieben, das es erlaubt, einen Artikel in mehreren Versionen zu verwalten. Dazu erscheint in der Bearbeitungsansicht eines Artikels ein zusätzlicher Balken "Version", in dem Auswahllisten zur Verfügung stehen, mit denen die zu bearbeitende Version und die anzuzeigende Version ausgewählt werden kann. So kann an einem Artikel weitergearbeitet werden, ohne dass die Änderungen gleich auf der Seite erscheinen. Um die richtige Version im Frontend anzuzeigen, müssen die Templates geändert werden: die Ausgabe des Inhalts erfolgt über

Code: Alles auswählen

$versioned_article = OOVersionedArticle::getArticleById(REX_ARTICLE_ID);
$versioned_article->getArticle(<ctypeid>);
anstatt

Code: Alles auswählen

$this->getArticle(<ctypeid>);
Bei der Installation dieses Addons wird die Datei redaxo/include/pages/content.inc.php überschrieben! Deshalb ist das Addon nur in Redaxo 3.2 installierbar. Weiter wird schreibend in die Tabelle rex_article_slice eingegriffen. Deshalb möchte ich das Addon vorerst nicht für den Produktiveinsatz empfehlen. Ich suche aber Leute, die sich für das Addon interessieren und es testen möchten, um mit mir allfällige Fehler zu beheben. Ich bin auch offen für Verbesserungsvorschläge in der Bedienung oder dem Funktionsumfang.

Grüsse
Stephan

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

20. Jul 2007, 11:51

Hi Stephan,

wirklich Klasse Addon!!
Sogar mit Doku und Manual, respekt!

Folgene Ideen sind mir gekommen:

Für R3.2
Vorschau auch von Versionierten Artikel

Für R3.3
REDAXO Page ersetzen, statt drüberkopieren
So gehts:
+ Beispiel: $REX['ADDON']['page'][$mypage] = 'content';
=> Aufruf: include/addons/$mypage/pages/content.inc.php

Viele Grüße,
Markus

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

20. Jul 2007, 14:04

Hallo Markus

zu R3.2:
Das würde wirklich Sinn machen, ich versuche das noch zu integrieren.

zu R3.3:
Genau diese Möglichkeit, eine Seite zu überschreiben hat mir eben gefehlt in R3.2. Gut, dass es das in der nächsten Version gibt, das erhöht die Flexibilität nochmals!

Danke fürs Feedback
Stephan

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

20. Jul 2007, 14:37

Hej,

bevor ich ein neues Redaxo aufsetze, würde mich interessieren ob die "alte" content.inc.php verschoben wird bzw beim deinstallieren deines Addons auf den alten zustand wieder hergestellt wird.

vg Thomas

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

20. Jul 2007, 14:56

Hallo Thomas

Ja, bei der Deinstallation wird der ursprüngliche Zustand wieder hergestellt. Die Bemerkung bezüglich Produktiveinsatz in meinem ersten Post war mehr aus dem Grund, dass in Redaxo-eigene Tabellen eingegriffen wird. Wenn du also sicher gehen willst, rate ich dir, von der Tabelle rex_article_slice vor der Installation ein Backup anzulegen, damit du bei einem allfälligen Fehler im Addon den ursprünglichen Zustand wieder herstellen kannst.

Grüsse
Stephan

wgmx
Beiträge: 79
Registriert: 25. Mai 2005, 21:03
Wohnort: México D.F.
Kontaktdaten: ICQ

2. Sep 2007, 20:27

Hallo Stephan,

Ich habe das Addon heute bei einer zweisprachigen Seite installiert und kann berichten, dass es Probleme gibt:

Wenn die Versionsverwaltung aktiviert ist, werden neue Artikel und Kategorieen nur in Sprache 0 angelegt, normalerweise erscheinen sie auch in der zweiten Sprache. Hast Du eine Idee, woran das liegt?

Gruß aus MX
Wieland

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

7. Sep 2007, 14:36

Hallo Wieland

Entschuldige die späte Antwort; ich war in den Ferien. Ich habe bei mir das von dir Beschriebene auch versucht und habe keinen Fehler entdecken können. Mein Testsystem läuft mit PHP 4.4.4-8 und MySQL 5.0.32. Erscheint denn keine Fehlermeldung beim Erstellen des Artikels?
Wird der neue Artikel in der Datenbank in den Tabellen "rex_190_version_empty_articles" und "rex_190_version_article_versions" in beiden Sprachen eingetragen?

Gruss
Stephan

wgmx
Beiträge: 79
Registriert: 25. Mai 2005, 21:03
Wohnort: México D.F.
Kontaktdaten: ICQ

7. Sep 2007, 17:19

Hallo Stephan,

Ich habe eben nochmal probiert und gemerkt, dass ich das Problem nicht korrekt beschrieben habe: Artikel werden korrekt angelegt, aber Kategorien nicht. Neue Kategrien erscheinen nur in Sprache 0.
Wird der neue Artikel in der Datenbank in den Tabellen "rex_190_version_empty_articles" und "rex_190_version_article_versions" in beiden Sprachen eingetragen?
Bei mir in der DB gibt die "rex_190_version_article_versions" gar nicht, nur "rex_190_version_empty_articles" ist vorhanden.

MySQL 4.0.23-nt
PHP Version 4.3.11

Gruss aus Mx
Wieland

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

7. Sep 2007, 18:04

Hallo Wieland

Ich habe das Problem gefunden:
Ersetze in der Datei functions/function_version_extensions.inc.php die Funktion version_add_article durch den folgenden Code

Code: Alles auswählen

function version_add_article($attr) {
	global $REX;

	$sql = new sql();

	$query = sprintf("INSERT INTO %s%d_version_article_versions (article_id, clang, online_version, working_version) VALUES ",
	                   $REX['TABLE_PREFIX'],
	                   $REX['ADDON']['rxid']['version']);

	$values = array();

	$values[] = sprintf("('%d', '%d', '%d', '%d')",
	                      $attr['id'],
	                      $attr['clang'],
	                      1,
	                      1);

	$query.= implode(", ", $values);
	$sql->query($query);

	$query = sprintf("INSERT INTO %s%d_version_empty_articles (article_id, clang, version_id, version_date) VALUES ",
	                   $REX['TABLE_PREFIX'],
	                   $REX['ADDON']['rxid']['version']);

	$values = array();

	$values[] = sprintf("('%d', '%d', '%d', '%d')",
	                      $attr['id'],
	                      $attr['clang'],
	                      1,
	                      time());

	$query.= implode(", ", $values);
	$sql->query($query);
}
Damit sollte das Problem behoben sein.
(Das mit der fehlenden Tabelle kann fast nicht sein, da sonst das Addon überhaupt nicht funktionieren würde...)

Ich werde später eine reparierte Version des Addons in den Downloadbereich stellen

Gruss und danke für den Hinweis!
Stephan

wgmx
Beiträge: 79
Registriert: 25. Mai 2005, 21:03
Wohnort: México D.F.
Kontaktdaten: ICQ

7. Sep 2007, 18:41

Hallo Stephan,

danke fuer die Korrektur, jetzt werden die Kategorien richtig angelegt.
(Das mit der fehlenden Tabelle kann fast nicht sein, da sonst das Addon überhaupt nicht funktionieren würde...)
Die Tabelle ist definitiv nicht da. Und es kann schon sein, dass es nicht richtig funtktioniert, denn bis zum Ende habe ich es noch nicht probiert, da ich bei den fehlenden Kategorien haengengeblieben war.

Jetzt faellt mir erstmal folgendes auf:
Die Versionierung funktioniert bisher nur bei neuen Artikeln bzw. Kategorieen. Bei allen, die zum Zeitpunkt der Addon-Installation schon bestanden, ist das Auswahlfeld fuer die Version zwar da, aber es steht nur "neue Version" drin, und man kann nichts machen, es passiert rein gar nichts.

Kann das an der fehlenden Tabelle liegen? Ich kann Dir gern mal die Logindaten fuers Backend schicken, falls Du mal reinsehen willst.

Gruss aus Mx
Wieland

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

7. Sep 2007, 21:35

Hallo Wieland

Das liegt definitiv an der(n) fehlenden Tabelle(n). Du solltest folgende Tabellen haben:
  • rex_190_version_article_slice
    rex_190_version_article_versions
    rex_190_version_empty_articles
Wenn eine oder mehrere davon nicht existieren, funktioniert das Addon nicht, weil die Installation nicht geklappt hat.
Ein Backendzugang hilft mir eigentlich nicht weiter, aber eine Möglichkeit gibt es noch: Addon deinstallieren, Addon wieder installieren und schauen, ob dann alle Tabellen vorhanden sind.

--- Ab hier nur weitermachen, falls es wirklich ein Testsystem ist!
Falls nicht, kannst du das Addon wieder deinstallieren und in der SQL-Klasse (./redaxo/include/classes/class.sql.inc.php) in Zeile 40

Code: Alles auswählen

$this->debugsql = false;
durch

Code: Alles auswählen

$this->debugsql = true;
ersetzen. Dann Addon wieder installieren und die Debug-Meldungen betrachten. Wenn es einen Fehler gibt, meldet dir dies die SQL-Klasse. Mit dieser Angabe könnte ich dir vielleicht weiterhelfen.
Danach musst du natürlich die Änderung in der SQL-Klasse wieder rückgängig machen.

Gruss
Stephan

wgmx
Beiträge: 79
Registriert: 25. Mai 2005, 21:03
Wohnort: México D.F.
Kontaktdaten: ICQ

7. Sep 2007, 22:07

Hallo Stephan,

deinstallieren geht nicht, es kommt folgende Fehlermeldung:

Code: Alles auswählen

Fatal error: Undefined class name 'ooversionedarticle' in d:\appserv\www\cms\rex_strauss\dev\redaxo\include\addons\version\uninstall.inc.php on line 57
Gibt es eine Moeglichkeit, das Addon "per hand" zu deinstallieren, um dann mit dem $this->debugsql = true; fortzufahren?

Gruss aus Mx
Wieland

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

7. Sep 2007, 22:28

Hallo Wieland

Ok, auch bei der Deinstallationsroutine (uninstall.inc.php) gibts noch einen Fehler. Du musst die Kommentarzeichen in Zeile 19 entfernen.

Gibt es bei dir die Datei ./redaxo/include/addons/version/files/content.inc.php.bak? Sie sollte bei der Installation gespeichert worden sein. Falls nicht, musst du in der Deinstallationsroutine noch die Zeilen 79 und 80 auskommentieren. Dann sollte es klappen und du kannst den neuen Versuch starten.

Sorry für die vielen Fehler, aber die kommen halt manchmal erst bei den ersten Testen zum Vorschein (ich hatte letztens nicht Zeit, dies seriös zu machen, deshalb auch der Hinweis bezüglich Produktiveinsatz)

Grüsse
Stephan

wgmx
Beiträge: 79
Registriert: 25. Mai 2005, 21:03
Wohnort: México D.F.
Kontaktdaten: ICQ

8. Sep 2007, 03:58

Hallo,

ich denke, wir machen erstmal per PM weiter und melden uns hier wieder, wenns Fortschritte gibt.

Habe Dir eine PM mit den Debug-Meldungen geschickt.

Gruss aus Mx
Wieland

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

19. Sep 2007, 12:47

Hi Stephan,

neue Ideen sind aufgekommen...

Vscope hatte folgende Idee:
Warum nicht die Versionierung auch für Templates/Module/Aktionen etc..

Evtl für die zukünftige Version mir R3.3, da sollte das einfacher gehen.

Viele Grüße,
Markus

sigg
Beiträge: 43
Registriert: 21. Jan 2007, 17:01

19. Sep 2007, 13:47

Hallo Markus

Finde ich eine gute Idee. Allerdings wäre für dies ein ganz neuer Ansatz nötig; ich würde vorschlagen, eine generische Versionsverwaltung zu erstellen, die beliebige Objekte aus der Datenbank versionieren könnte. Das aktuelle Addon unterstützt nur den Artikelinhalt, weil dieser gecacht wird und somit die zwei Versionen an zwei Orten gespeichert werden können: im Cache die Onlineversion, in der Datenbank die Arbeitsversion.
Ich habs noch nicht so genau angeschaut, aber vermutlich werden für eine generische Versionsverwaltung einige zusätzliche Extension Points nötig. Es liegt somit auch an euch: habt ihr genügend Zeit und auch Lust, Anpassungen am System in Form von Extension Points vorzunehmen?

Grüsse
Stephan

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

19. Sep 2007, 13:53

Hi Stephan,

prinzipiell definieren wir gerne EPs solange diese einigermaßen allgemeingültig verwendbar sind..

Gruß,
Markus

Merchenman
Beiträge: 53
Registriert: 26. Jan 2007, 18:11
Wohnort: Marbella
Kontaktdaten: Website

22. Okt 2008, 13:03

Hallo Leute,
wird an der Versionsverwaltung eigentlich noch gearbeitet? Habe gerade eine neue Seite mit Redaxo 4.1 installiert und bin auf der Suche nahc genau diesem Addon. Vielleicht kann mir da jemand weiterhelfen. Danke.

Zurück zu „Allgemeines [R3]“