Modul Mandanten Kopieren/Export-Import gesucht

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von yodatortenboxer » Do 13. Apr 2017, 16:34

Hallo,

gibt es für die 4,9er Reihe ein funktionierendes Modul um einen vorhandenen Mandanten komplett in einen neuen Mandanten zu kopieren?
Vieleicht gibt es ja auch auch eine Möglichkeit bzw. einen Weg per Modul/Plugin einen Mandanten zu exportieren und dann wieder als neuen Mandant zu importieren.

Falls es dies noch nicht gibt, welche Datenbanktabellen sind hier wichtig bzw. werden benötigt um dementsprechend so ein Modul/Plugin selbst umsezen zu können?

Danke im Voraus, Ralf
Schöne Grüße von Usedom
Ralf

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von homtata » Do 13. Apr 2017, 16:59

Ich hatte das Plugin mal für die 4.8 angepasst und dann im laufenden Betrieb aber nach Feedbacks feststellen müssen, dass es trotzdem noch Bugs bei der Template-Verwaltung hatte. Das Teil ist extremst komplex gewesen, bis für alle Tabellen die Zuordnungen der Kategorien, Artikel, Module, Templates, Templatekonfigurationen usw. gestimmt hatten. Keine Ahnung, wie das für die 4.9 aussieht, die ja doch einige strukturelle Änderungen zur 4.8 aufweist.
Ich denke nicht, dass sich jemand derzeit daran machen wird, das Plugin für die 4.9 anzupassen und nochmal alle Routinen durchzusehen und geradezubiegen inkl. Bugfixing. Dafür wirds zu wenig eingesetzt, und um ehrlich zu sein ist man oft schneller, wenn man den Mandanten neu aufsetzt. Ich habe bis heute einen 4.8er Mandanten, den ich damals mit dem Plugin kopiert hatte, der bis heute im zweiten Mandanten krankt und mich zum Fluchen bringt. Aber: du kannst das Tool hier suchen ("plugin copy client") und dich dran versuchen - der grobe Ablauf ist dort vorgegeben. Du wirst dich nur zu Tode testen und mit Rücksicherungen beschäftigen ,-)

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von rethus » Fr 14. Apr 2017, 09:03

Ich befürchte hier bist du auf einen massiven Nachteil bei der Nutzung des Contenido-Mandanten-Systems gestoßen.

Wie homtata schon erwähnte ist es extrem komplex "bei Contenido" einen einzelnen Mandenten aus einem Mehrmandantensystem zu extrahieren, weil es in der DB nie sauber nach Mandanten getrennt wurde. Im Grunde müsste die gesamte DB-Struktur neu aufgedröselt werden, um Mandanten wirklich zu separieren.

Die Anfrage die du hier gestellt hast, habe ich schon vor Jahren hier im Forum gestellt... der Kosten/Nutzen spricht einfach dagegen, das jemand so etwas für Contenido umsetzen wird.
Der einzige praktische Weg (wenn du z.B. einen Mandanten in ein eigenes Contenido auslagern möchtest) ist, die Contenido-Installation zu duplizieren, auf dem neune Server aufzusetzen und in den beiden Installationen jeweils den nicht benötigten Mandanten tot zu schalten.

Nicht schön, aber einziger weg, wenn man nicht unnötig Zeit und Geld verbrennen will.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von yodatortenboxer » So 16. Apr 2017, 20:59

Naja, dann muss ich einmal schauen ob ich mir hier dann selbst ein Modul/Plugin bauen kann.
Bei mir läuft eine Contenido Installation der aktuellen 4.9er Version bei der aktuell 14 Mandanten installiert sind.
Die meisten sind Mandanten, die für 1-2 Monate für ein Event eine kleine Seite benötigen.
Von daher wäre es dann praktisch gewesen, bei einem neuen Mandanten einen anderen inkl. allem zu Kopieren und dann nur noch ein paar Inhaltliche Änderungen vornehmen zu müssen.

Hier jedesmal eine neue komplette Contenidoinstallation pro Mandant zu kopieren wäre einfach zu umständlich, auch in der Pflege im nachhinein.
Das wären zum Beispiel bei 14 Mandanten 14 Datenbanken inkl. Updates die kommen könnten.
Schöne Grüße von Usedom
Ralf

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von rethus » Mo 17. Apr 2017, 10:13

Ja, da rennst du bei mir offene Türen ein. Sehe ich 100% genau so.
Ich wollte vor einigen Jahren für Kunden mit kleineren Seiten auch "EIN" Contenido aufsetzen, und dann jeden Kunden als eigenen Mandanten pflegen.

Ich hatte sogar einige einfache Anpassungen gemacht, die es dir ermöglichten Layouts und Module über mehrere Mandanten zu teilen, inkl. der Sicherheit, das nur der "Besitzer" des Moduls dieses verändern/löschen kann. In dem Fall wäre der Besitzer der Master-Mandant für die Administration der Layouts und Module.

Kurzum, ich hab die ganze Sache aufgrund der fehlenden Trennung der Mandanten gekippt. Weil frühzeitig das Chaos ersichtlich war.
Was wenn Mandant 12 ein Backup seiner Daten von vor 3 Wochen (z.B. vor seinem Urlaub) eingespielt haben will... :shock: - unmöglich mit Contenido wie es bisher war und noch ist [will man nicht die Daten handverlesen in den ganzen Tabellen ändern].

Wenn du da ein Plugin für das trennen der Mandanten machst, wirst du einiger User sehr glücklich machen... die Hoffnung, das Contenido jedoch in Zukunft Mandantendaten "sauber" hege ich nicht mehr.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von homtata » Mo 17. Apr 2017, 22:30

Meiner Meinung nach kann es diese gewünschte eierlegende Wollmilchsau nicht geben, die EINERSEITS "die Mandanten sauber trennen soll", dann aber wieder "Module und Layouts" gleichzeitig verwenden können soll. Wenn ich es gleich sauber trennen will, dann mach ich verschiedene Installationen, denn auch bei getrennten Mandanten wären die härteren Upgrades auch jetzt schon getrennt zu fahren (Moduländerungen usw.). Es wird aufgrund der ganzen Struktur sowieso utopisch sein, die Mandanten über alle Datenbanktabellen hinweg zu trennen, das ist denke ich faktisch kaum möglich, denn an manchen Stellen MUSS man über die Mandanten hinweg Werte in Tabellen fortschreiben, sonst kann man das mit der Mandantenfähigkeit auch sein lassen.
Daher bleibt einzig und allein das Bestreben, ggf. ein Plugin zu haben, das sauber Mandanten kopieren kann, und da hab ich ja wie gesagt für die 4.8 zumindest den recht konfusen Weg mal vorgezeichnet, und wer immer sich daran macht, etwas für die 4.9 zu tun, ist schwerst beraten, sich das gut reinzupfeifen, denn alles andere kostet schlicht und ergreifend zu viel Zeit. Ich weiß, wovon ich rede. Allein das überarbeiten und testen des Umschreibens der 4.6er auf die 4.8er-Version hat mich LOCKER 5 Manntage gekostet. In der Zeit kopiere ich etliche kleinere Webseiten mit purer Fleißarbeit hin und her ;-)

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von rethus » Di 18. Apr 2017, 11:29

Geht nicht, wohnt in der will nicht Straße :wink:

Die Logik hinter einem Mehr-Mandanten-System ist (wenn zu ende gedacht) immer eine physikalische Trennung der Daten.
I.d.R kann das sogar relativ simpel realisiert werden - vorausgesetzt, das ein System von Grund auf mit der Zielsetzung der Mandantenfähigkeit und Trennung der Mandanten-Daten entwickelt wird.

3 Grundsätze, die dies ermöglichen
1) Core-Funktionalitäten müssen Mandentenunabhängig gekapselt werden und über Schnittstellen zugänglich sein.
2) Mandanten-Daten werden je Mandant abgeschlossen für sich gespeichert
3) weiche niemals von Grundsatz 1 und 2 ab.

Da bereits Module, Layouts und Templates in Contenido 4.9 im Dateisystem gespeicherrt wurden, ist der erste Schritt in die Zukunft getan.
Nachfolgend müsste z.B. eine DB für Contenido-Core erstellt werden, in der auch wirklich ausschließlich Daten gespeichert werden, die Mandantenunabhängig sind.
Jeder Mandant erhält zudem eine eigen Datenbank (oder eigene Tabellen mit entsprechenden Präfixen um z.B. DB-Slots zu sparen).

Überall, wo Mandanten-Daten mit Core-Daten in Verbindung treten, erfolgt dies über eine Schnittstelle.
E voilà, ein sauber getrenntes, leicht wartbares Mehr-Mandantensystem.

Ich möchte noch betonen, das ich es Contenido nicht nachteilig auslege, das es derzeit nicht so ist. Ich denke es ist dem Umstand geschuldet, das man eine sehr einfache Herangehensweise gewählt hat, um mehrere Webseiten in einer Installation zu betreuen. Auch muss man sehen, das es eine Software ist, die zunehmend gewachsen ist.
Das Contenido das meiste richtig macht, sieht man an der Langliebigkeit und fortschreitenden Entwicklung. Sieht man, das Contenido nicht zum Selbstzweck entwickelt wurde, sondern um schlussendlich Geld damit zu verdienen, ist klar, das hier Kosten-Nutzen für ein kompletten Relaunch gut abgewägt werden müssen.
Meistens ist ein "von der Picke auf neu"-machen auch ein Todesurteil eines Projektes und deiner Community. Daher finde ich die Route die f4b fährt ok.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von Faar » Di 18. Apr 2017, 12:24

rethus hat geschrieben:
Di 18. Apr 2017, 11:29
Geht nicht, wohnt in der will nicht Straße :wink:

3 Grundsätze, die dies ermöglichen
1) Core-Funktionalitäten müssen Mandentenunabhängig gekapselt werden und über Schnittstellen zugänglich sein.
2) Mandanten-Daten werden je Mandant abgeschlossen für sich gespeichert
3) weiche niemals von Grundsatz 1 und 2 ab.
Moin Rethus,

zuende gedacht müsse es dann so sein, dass der Core auf einem eigenen Server laufen könnte und jeder Mandant wiederum auf je eigenen Servern.
Damit würde ein Mehrmandanten-System auch richtig Sinn machen, denn wenn für manche Webspaces bereits eine Installation die Leistung ausreizt, wären mehrere Mandanten mit jeweils viel Traffic auf einem Server ein Problem. Statt die Last zu teilen, würde sie in dem Fall auf einem Server konzetriert.

Das ist, neben der mangelnden Trennbarkeit, mit ein Grund, warum ich Mandanten kaum einsetze.
(Bei Wordpress war es noch schlimmer, da lief recht schnell gar nichts mehr und eine Trennung war auch nicht möglich)
So wie es jetzt ist, ist die Mandantenfähigkeit eher eine Spielerei.
Es sei denn, 4fb hat in der eigenen Schublade eine Contenido-Multiserver-Version, von der wir nichts wissen :?

Ich kann mir aber auch vorstellen, dass es schwer sein wird, eine so saubere Trennung herbei zu führen.
Wie ist es mit den Plugins? Den Systemeinstellungen? Frontend- und Backend-Sprachen?
:shock:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von yodatortenboxer » Mi 19. Apr 2017, 11:38

Naja...jetzt einmal sehr simpel betrachtet.
Eine trennung der Mandanten muss ja vorhanden sein, da ich, wenn ich einen Mandanten auswähle, auch nur seine Sachen sehe.

Alles was mit Modulen und Layouts zu tun hat, liegt ja in einem Ordner im Mandantenverzeichnis der "nur" von einem Mandanten zu einem anderen kopiert werden muss.
Das mache ich aktuell ja auch nicht anders.

Ich lege einen neuen Mandanten an und kopiere mir alles was ich an Modulen usw. brauche von anderen da rein.
Damit ist das erste ja schon erledigt.

Dann kommt aber das...
Wieder anlegen der Templates,Kategorien, Artikel, das verknüpfen miteinander usw. und das hätte ich auch gern "kopiert".

Das kopieren einer Seite in eine andere Sprache funktioniert ja auch soweit mit allen Kategorien und Artikeln und der Strucktur.
Hier müsste also theoretisch nur ein anstatt andere Sprache (von Mandant A Sprache A zu Mandant A Sprache B) ein Anderer Mandant/Sprache (von Mandant A Sprache A zu Mandant B Sprache B) sein.

Wie gesagt, einmal ganz simpel betrachtet.
Schöne Grüße von Usedom
Ralf

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von Faar » Mi 19. Apr 2017, 13:09

yodatortenboxer hat geschrieben:
Mi 19. Apr 2017, 11:38
Naja...jetzt einmal sehr simpel betrachtet.
Eine trennung der Mandanten muss ja vorhanden sein, ...
Im Konjunktiv heißt es "müsste" und dann wäre es gut :)
Aber schon hier zeigt sich in den DB-Tabellen das Problem:
Wieder anlegen der Templates,Kategorien, Artikel, das verknüpfen miteinander usw. und das hätte ich auch gern "kopiert".
Zum Beispiel haben Kategorien und Artikel fortlaufende Nummern (IDs) in den DB-Tabellen und diese sind miteinander "verknüpft".
Der Unterschied zu den Mandanten besteht dann z.B. in einer Spalte der Tabelle, in der die Mandanten-ID (idclient) steht.
Aber die idart und idcat sind Primärschlüssel und das heißt, dass eine ID-Zahl nur jeweils einmal vorkommen kann, nicht jedoch in diesen Tabellen der idclient.
Hätte man es wirklich Konsequent trennen können wollen, müsste es eine Art idcatclient geben, ähnlich wie idcatlang oder idcatart.
Das heißt, eine idart könnte es dann mehrmals geben aber nur eine idartclient.

Faktisch hast du in der DB z.B. eine idart = 1 und sagen wir mal idart = 34 und irgendwann mal idart = 1154, die alle zusammen zum Client (Mandanten) 1 gehören und dazwischen viele idarts, die nicht zu client = 1 gehören.
Wollte man das mittels Plugin sauber trennen, müsste man auch die IDs wieder neu von 0 anfangen zählen zu lassen.
Aber dabei alle Zusammenhänge dieser IDs zu anderen Tabellen berücksichtigen und auch diese nachziehen.
Ja, und hier wären Datenbank-Zauberer notwendig, um ein Programm zu schreiben, das automatisch alle diese Zusammenhänge erkennt und neu ordnet.
Das kopieren einer Seite in eine andere Sprache funktioniert ja auch soweit mit allen Kategorien und Artikeln und der Strucktur.
Es gibt idartlang, idcatlang und sogar eine idclientslang aber keine idartclient oder idcatclient.
Hier müsste also theoretisch nur ein anstatt andere Sprache (von Mandant A Sprache A zu Mandant A Sprache B) ein Anderer Mandant/Sprache (von Mandant A Sprache A zu Mandant B Sprache B) sein.

Wie gesagt, einmal ganz simpel betrachtet.
Wenn die Verschachtelung mit den fortlaufenden ID-Nummern nicht wäre und an vielen anderen Stellen nicht auch Verknüpfungen oder Gemeinsamkeiten wären.
Was sagt denn eine idclientslang = 6, in ein neues Contenido kopiert, aus?
Welche Sprache gehört dazu, welcher Client?
Eine neue Installation hat alles auf 1.
Und ein Kopierprogramm müsste alle Zusammenhänge aller Tabellen aufdröseln und auch wieder bei 1 anfangen zu zählen.

Kurzum: Simpel betrachtet ist es alles andere als simpel.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von Oldperl » Do 20. Apr 2017, 10:09

Servus,

wie Frank schon sagt
Faar hat geschrieben:
Mi 19. Apr 2017, 13:09
Kurzum: Simpel betrachtet ist es alles andere als simpel.
Dieses bedingt aber auch einen relativ hohen zeitlichen Aufwand um ein entsprechendes Tool zu erstellen. Es ist also grundsätzlich möglich und Ansätze gibt es auch bereits einige dazu. Auch kann man dazu die eine oder andere On-Board-Funktion nutzen um diese "Beziehungen" aufzudröseln.
Jedoch darf man weitere "Baustellen" dabei auch nicht vergessen, denn so kompliziert wie sich die Beziehung bei Artikeln darstellt sind auch weitere Konstrukte wie bei Kategorien (Navi) oder Layouts und Templates/Vorlagen. Auch hier sollte bei einem guten Tool auf entsprechende Beziehungen geachtet und diese am Besten bereinigt werden.
Noch komplizierter wird es dann im Falle von Beziehungen die sich aus dem Content des Mandanten ergeben, denn hier müsste man dann ja auch noch diesen Content entsprechend parsen und bearbeiten.

Daher denke ich eigentlich es wird eine wirkliche Trennung von Mandanten nur geben, wenn sich hier zukünftig bereits im grundsätzlichen Layout von Contenido etwas ändert.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von Faar » Do 20. Apr 2017, 10:40

Huch, er lebt noch :wink:

Vielleicht ist es sogar einfacher, Contenido so zu ändern, dass Mandanten wirklich getrennt sind, oder? :|
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von homtata » Do 20. Apr 2017, 14:13

Vielleicht ist es sogar einfacher, Contenido so zu ändern, dass Mandanten wirklich getrennt sind, oder? :|
Das haben wir ja schon, indem man einfach getrennte Contenidos fährt. Ihr könnt mich jetzt schlagen, aber die Mehrmandantenfähigkeit eines Systems macht eigentlich nur DANN richtig Sinn, wenn es eben gewollte Crossovers zwischen den Systemen gibt. Ansonsten ist es nix weiter als eine Spielerei, um dem Redakteur nur EIN Login zuzumuten für ansonsten unabhängige Systeme - naja.
In einem Mehrmandantensystem sind gewisse Mehrfachbenutzungen meist ausdrücklich erwünscht - seien es die Module/Plugins, die Layouts, teilweise Inhalte. Und dann bleibt immer die Frage: welche dieser Elemente binde ich an die Installation selbst und welche an den konkreten Mandanten? Und egal wie man es anpackt, wird es nachher nicht so heititei einfach sein, EINEN Mandanten zu klonen. In Typo3 (so wie ich es kenne) hilft man sich eher, indem man eher in einem riesigen Baum arbeitet, alle ALLES benutzen können und man dann die Domains auf verschiedene Zweige routet - DA kann man natürlich bequem hin und her kopieren und am Ende wieder gut löschen usw., aber das ist halt nicht das, was Contenido als Mandanten vorschwebt.
Fakt ist aber auch: so wie die Mandanten bisher in Contenido gehandhabt werden (nämlich mit eigentlich komplett getrennten Inhalten und Funktionen, aber vermischten Datenbankeinträgen) macht es für den Mehrmandanteneinsatz kaum Sinn, außer zum Einsparen von Datenbanken, wenn man VIELE Webseiten, aber nur wenig Datenbanken hat. Die Vorstellung, die Inhalte und Werte je Mandant schön getrennt in Tabellen zu haben, ist illusorisch und unpraktisch. Und das machen dann auch zusätzliche idclient-Werte nicht wirklich besser (die es meist schon gibt).

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul Mandanten Kopieren/Export-Import gesucht

Beitrag von Faar » Do 20. Apr 2017, 15:13

homtata hat geschrieben:
Do 20. Apr 2017, 14:13
Ihr könnt mich jetzt schlagen
:mrgreen: :roll:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten