Subsites

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Martin
Posts: 346
Joined: Thu Oct 23, 2008 11:57 am
Contact:

Re: Subsites

Post by Martin » Mon Oct 17, 2011 3:32 pm

Hallo,

ich bin ja mittlerweile auch für "subsites" - also die Möglichkeit mehrerer Content-Ordner mit je eigener Konfiguration. Die Verknüpfung von Setzung der Sprache und dem Ordnernamen ist aber meiner Meinung nach von Anfang an eine Fehlkonstruktion in CMSimple gewesen. Leider haben wir auch bei XH für die natürlich notwendige "Content-Konfiguration" auf diese Verbindung gesetzt. Dieses Subsites-Experiment in 1.5 beta setzt auch auf diese, meiner Meinung nach unsinnige Ordnername-Sprache-Verknüpfung, auf. Unter dem Aspekt, dass dieses Feature ja ein CMSimple-ohne-Subsites überhaupt nicht beeinträchtigt und nur eine zusätzliche Möglichkeit, die niemand nutzen muss, darstellt, finde ich es auch in Ordnung. Aber, bitte, wenn es Schwierigkeiten mit dieser Lösung gibt, lasst uns nicht anfangen, diese Provisorium mit anderen Krücken im Core zu stützen!

Vielleicht geht es ja auch anders, ich habe gerade mal was ausprobiert. Ausgehend von 1.4 sind nur ganz wenige Änderungen nötig, um die "Sprachverwirrung" zu vermeiden. Betroffen sind 3 Dateien:
  • cms.php - 2 Änderungen
    • Code: Select all

      //nach
      $pth['file']['langconfig'] = $pth['folder']['language'].basename($sl).'config.php';
      // dies einfügen
      if(file_exists($pth['folder']['content'] . 'config.php') ){
          $pth['file']['langconfig'] = $pth['folder']['content'] . 'config.php';
      } 
    • und

      Code: Select all

      //define('CMSIMPLE_BASE', (strtolower($cf['language']['default'])==$sl?'./':'./../'));               ersetzen mit
      define('CMSIMPLE_BASE', $pth['folder']['base']); 
  • plugins/index.php - eine Stelle, Z. 117, ändern und ergänzen

    Code: Select all

    $pluginloader_cfg['folder_down'] = CMSIMPLE_BASE === './' ? '' : '.';
    $pluginloader_cfg['language']  = $sl; 
  • login.php - 1 Stelle, nur um ein eigenes Subsite-Passwort zu haben

    Code: Select all

    if ($txc['security']['password'] != "") {
        $cf['security']['password'] = $txc['security']['password'];
    } 
Dann muss man nur noch in seinen "subsite"-Ordner eine der "langconfigs", "deconfig.php" oder so, unter dem Namen "config.php" speichern. Wenn man in diesem Ordner eine andere als die "default" Sprache, beispielsweise deutsch, haben will, schreibt man einfach in die subsite/index.php, vor den Aufruf der cms.php "$sl = 'de';" .

Das ist jetzt nicht das, was mir eigentlich vorschwebt und ich habe es gerade nur in einer Plugin-armen 1.4-Installation getestet. Aber vielleicht kann es sich ja mal jemand angucken, bevor wir mit $ssl und "gymnastikabteilung-fr"-Ordnern schlechte neue Tatsachen schaffen ...

LG
Martin

Gert
Posts: 3078
Joined: Fri May 30, 2008 4:53 pm
Location: Berlin
Contact:

Re: Subsites

Post by Gert » Mon Oct 17, 2011 4:40 pm

Martin wrote:bevor wir mit $ssl und "gymnastikabteilung-fr"-Ordnern schlechte neue Tatsachen schaffen ...
Hallo Martin,

das ($ssl und "gymnastikabteilung-fr") sind ja nur vage Ideen, ich glaube nicht, dass das ernsthaft jemand umsetzen will.

Über eine config.php in den languages und subsites Ordnern habe ich natürlich auch schon nachgedacht, sogar schon damit experimentiert. Aber ich wollte dann doch nicht, dass vorhandene Fremdsprachen mit einer config.php nachgerüstet werden müssen, um ein eigenes Passwort und ein eigenes Template zu haben.

Und ich wollte, dass Memberpages und Register auch weiterhin über die subsite.php ihre Login- und Logout Seiten setzen können. Die beiden wollte ich eigentlich erst für die 2.0 umschreiben.

Kurz gesagt: es soll ohne neue Dateien in vorhandenen Sprachen funktionieren.

Die langconfigs :roll: werden wir doch demnächst (2.0) sowieso abschaffen, dann funktioniert mein subsites doch sowieso nicht mehr.

Subsites ist weiter nix als die Erweiterung der Sprachfunktion auf Verzeichnisse mit mehr als 2 Buchstaben für die Serie 1.x.x.

Wenn wir aber eine Lösung auf config.php Basis machen sollten, dann sollten wir gleich die langconfigs abschaffen, und in jeden Sprach- oder Subsite Ordner eine config.php legen, die, wenn sie da ist, die config.php der Hauptsprache oder der Hauptsite ersetzt. Also keine $txc Variablen mehr.

Aber wenn es keine subsite.php für Plugins mehr gibt, gibt es auch nicht mehr die Möglichkeit, ein paar abweichende Einstellungen für Sprachen und Subsites über die Sprachdateien der Plugins vorzunehmen.

Das geht dann nur noch, indem in den Sprach- und Subsite-Ordnern plugins/ Verzeichnisse angelegt werden, in denen eine config.php liegt, die dann aktiv ist, wenn sie da ist. Da sehe ich die grössten Probleme.

Ich würde sagen: Lassen wir es erstmal so, wir stecken nun mal in der History mit den Sprachstrukturen, den langconfigs usw. fest. So ist es erstmal einfach und mit den meisten Sachen kompatibel.
Gert Ebersbach | CMSimple | Templates - Plugins - Services

Martin
Posts: 346
Joined: Thu Oct 23, 2008 11:57 am
Contact:

Re: Subsites

Post by Martin » Mon Oct 17, 2011 5:29 pm

Hallo Gert,
Gert wrote: ... das ($ssl und "gymnastikabteilung-fr") sind ja nur vage Ideen, ich glaube nicht, dass das ernsthaft jemand umsetzen will.
:D Dann ist ja gut! Ich fürchtete nur, dass irgendein Mechanismus, egal wie er aussieht, in den Core wandert, um diesen "Sprachmissbrauch" zu stützen. Das schaffte nur neue Umständlichkeiten, die uns später ärgern würden ...
Gert wrote:Aber ich wollte dann doch nicht, dass vorhandene Fremdsprachen mit einer config.php nachgerüstet werden müssen, um ein eigenes Passwort und ein eigenes Template zu haben.
Das wäre auch bei meinem obigen Vorschlag nicht so, aber ...
Gert wrote:Und ich wollte, dass Memberpages und Register auch weiterhin über die subsite.php ihre Login- und Logout Seiten setzen können.
Hach ja, ich wusste doch, dass ich was vergessen hatte! Eine Plugin-Konfiguration über die Sprachdateien wäre damit wirklich nicht mehr möglich ... Ließe sich sicher irgendwie deichseln, aber so lange wir Sprache, Konfiguration, Ordner- und Dateinamen nicht noch fester zusammennähen, habe ich es auch nicht eilig, ihren cmsimple-traditionellen ZUsammenhang zu zerschneiden.

LG
Martin

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Subsites

Post by cmb » Mon Oct 17, 2011 5:36 pm

Hallo Gert, hallo Martin,

ich bin der Meinung, wir sollten mal gut über Martins Vorschlag nachdenken. Das hat nämlich was, finde ich. Und wenn nun subsite-spezifische Änderungen an den Core-Sprachdateien erwünscht sind, wird eben noch ergänzt:

Code: Select all

if (subsite()) {
    $pth['file']['language'] = $pth['folder']['content'].'language.php';
}
 
Und für die Plugins ließe sich sicherlich auch eine passende Lösung finden. Z.B. könnten subsites-Sprachdateien in einen Unterordner von languages gelegt werden oder auch einfach nach dem Muster SUBSITE-SPRACHE.php angesprochen werden. Das sollte vom PL aus eigentlich völlig transparent für die Plugins machbar sein.
Gert wrote:Subsites ist weiter nix als die Erweiterung der Sprachfunktion auf Verzeichnisse mit mehr als 2 Buchstaben
Dann sollten wir aber vielleicht beantragen, dass auch ISO-639 erweitert wird. ;) Das Problem dieser Erweiterung ist ja eben das Verbiegen von $sl (Selected Language). Und das wird in Multilang-Umgebungen mit Subsites ein Problem, da ein Plugin eben nicht mehr wissen kann, welche Sprache es anbieten soll (allenfalls die default-Sprache). Nun braucht vielleicht kein Mensch mehrsprachige Subsites, aber konsequenter wäre es doch, wenn auch das möglich wäre.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

Gert
Posts: 3078
Joined: Fri May 30, 2008 4:53 pm
Location: Berlin
Contact:

Re: Subsites

Post by Gert » Mon Oct 17, 2011 5:48 pm

Hallo Martin,

scheint soweit zu klappen, aber das hier:
Martin wrote:Wenn man in diesem Ordner eine andere als die "default" Sprache, beispielsweise deutsch, haben will, schreibt man einfach in die subsite/index.php, vor den Aufruf der cms.php "$sl = 'de';" .
... klappt bei mir nicht.

Ausserdem kann man dann eine solche Seite nicht mehr einfach durch kopieren des Ordners 2site erzeugen. Man muss die index.php bearbeiten. Und die abweichende Plugin Konfiguration wird wohl dann auch nicht ohne weitere Strukturierung des subsite Ordners zu machen sein, da müssen dann noch weitere config Dateien in einer Ordnerstruktur abgelegt werden.

So einfach wie meine Subsites Variante geht nix anderes - 2site kopieren, fertig ist die Subsite. Ok, wenn man eine bestimmte Sprache haben will, nützt die neue Automatik nix, da muss man dann noch die Sprachdatei seiner Wahl kopieren und umbenennen, evtl. auch noch in einigen Plugins, das war's dann aber auch.
Gert Ebersbach | CMSimple | Templates - Plugins - Services

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Subsites

Post by cmb » Mon Oct 17, 2011 5:50 pm

Hallo Gert,

bei mir klappt's. Aber es erfordert, dass der Ordner keine Zweitsprache ist, also 2 Buchstaben als Namen hat.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

Gert
Posts: 3078
Joined: Fri May 30, 2008 4:53 pm
Location: Berlin
Contact:

Re: Subsites

Post by Gert » Mon Oct 17, 2011 6:15 pm

Gert wrote:... klappt bei mir nicht.
Liegt wohl daran, dass ich die 1.5 als Vorlage genommen habe ... da muss ich wohl alles erst wieder zurückdrehen, was subsites betrifft :roll:
Gert Ebersbach | CMSimple | Templates - Plugins - Services

Martin
Posts: 346
Joined: Thu Oct 23, 2008 11:57 am
Contact:

Re: Subsites

Post by Martin » Mon Oct 17, 2011 6:16 pm

Gert wrote:Ausserdem kann man dann eine solche Seite nicht mehr einfach durch kopieren des Ordners 2site erzeugen.
Wieso nicht? Mann könnte aber auch einfach "2lang" nehmen und "2site" aus dem Download entfernen. Wenn's bei der Standardsprache bleiben soll, muss man auch an der index.php nix ändern. Und dort die eine Zeile - $sl = 'fr' zu ergänzen, finde ich auch deutlich bequemer als eine (wenn es bei der einen bleibt!) Datei an einen anderen Ort zu kopieren und umzubenennen. ... Aber das Problem mit der "subsite-spezifischen" Plugin-Konfiguration bleibt natürlich bestehen. Da sollten wir nichts übers Knie brechen. ... Ich habe ja nichts gegen die vorliegende Subsite-Lösung, so lange sie nicht zu weiteren Verrenkungen im Core führt.

Martin

Edit: Ach, stimmt ja gar nicht ganz: Die "config.php" wird man in den meisten Fällen auch im "subsite"-Ordner haben wollen, aber ..

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Subsites

Post by cmb » Mon Oct 17, 2011 6:28 pm

Hallo Gert,
Gert wrote:So einfach wie meine Subsites Variante geht nix anderes - 2site kopieren, fertig ist die Subsite.
Vielleicht ein Installer :roll:

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

Gert
Posts: 3078
Joined: Fri May 30, 2008 4:53 pm
Location: Berlin
Contact:

Re: Subsites

Post by Gert » Mon Oct 17, 2011 7:07 pm

Hallo Martin,

so wie ich das verstehe, muss die config.php ja bei Subsites und Sprachen im jeweiligen content Ordner sein:

Code: Select all

if(file_exists($pth['folder']['content'] . 'config.php') ){
    $pth['file']['langconfig'] = $pth['folder']['content'] . 'config.php';
}  
Wenn ich nun auch eine in den content Ordner der Hauptsprache/Hauptsite lege, brauche ich keine langconfigs mehr ;)

Das Problem mit den abweichenden Konfigurationen für Plugins ist dann aber weiter offen. Muss wohl im Pluginloader geregelt werden. Wenn eine ./subsite/plugins/pluginname/config.php existiert, wird diese genommen.

Übrigens, das mit $sl="xy" funktioniert mit ein paar Rückbauten in der cms.php. Die cmsimplesubsite.htm brauche ich aber immernoch für einige Dinge, damit's funktioniert,

mal sehen ... Gert

Update: Die cmsimplesubsite.htm brauche ich eigentlich nur noch, um die Anzeige einer subsite im languagemenu() zu unterdrücken.
Gert Ebersbach | CMSimple | Templates - Plugins - Services

Post Reply