Wieder subsite Problem mit v1.7.2

Please post the URLs to pages, where you've made a CMSimple template available for download

Moderator: mikey

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Wieder subsite Problem mit v1.7.2

Post by Tata » Wed Mar 11, 2020 12:11 pm

Ich habe versucht eine Seite von v1.6.10 auf v1.7.2 zu konvertieren. Mit exchange, ging alles super. Die Seite hat aber auch DE und EN Versionen, die eigene Templates nutzen. Unter v1.6.10 ging es mit

Code: Select all

$tx['subsite']['template']
. Unter v1.7.2 bekommt man nur leere Seite.
mit

Code: Select all

<?php
if($sl=='sk') $cf['site']['template']="ukastelana";
if($sl=='de') $cf['site']['template']="ukastelana_de"; 
if($sl=='en') $cf['site']['template']="ukastelana_en";
$_XH_controller->initTemplatePaths();
?>
geht es auch nicht.
Wie kann man verschiedene Templates für die 2lang nutzen? Rein theoretisch mit Templateeinstellung für jede 2langUnterseite? Das wäre zu aufwendig.
Am Localhost läuft es gut. Und das ist das, das ich nicht verstehe.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

frase
Posts: 3145
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by frase » Wed Mar 11, 2020 6:13 pm

Tata wrote:
Wed Mar 11, 2020 12:11 pm
Rein theoretisch mit Templateeinstellung für jede 2langUnterseite? Das wäre zu aufwendig.
Ja, das wäre zwar der normale Weg - ist aber lästig.

Ich bin kein PHP-Spezialist.
Mein Vorschlag wäre aber:
Lege eine Standard-CSS-Datei an, in der nur die allgemeinen Styles drin sind. Also alles, was bei allen gleich ist.
Zusätzlich legst du drei sprachspezifische CSS-Dateien an, die die Unterschiede enthalten.
Im Header (nach dem <?=head();?> aber vor dem schließenden </head>) rufst du die jeweilige sprachabhängige CSS-Datei auf.
In etwa so (ungetestet):

Code: Select all

...
<html lang="<?=$sl;?>">
<head>
...
<?=head();?>
...
<?php if($sl=='sk'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_sk.css">
<?php endif ?>
<?php if($sl=='de'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_de.css">
<?php endif ?>
<?php if($sl=='en'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_en.css">
<?php endif ?>
</head>

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by Tata » Wed Mar 11, 2020 6:36 pm

Es geht nicht nur um die stylesheet.css, sonder um die ganze templates. In der SK Version ist täglich aktualisierte Inhalt. In den EN und DE sind praktisch nur algemeine statische informationen.
Ich verstehe aber nicht, wieso funktioniert es am Localhost, aber nicht mehr am Server. Also einige Funktionen, die direkt im template geschrieben sind, funktionoieren unter v1.7.2 nicht. (@frase: mehr in PM)
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by olape » Wed Mar 11, 2020 8:13 pm

Wenn ich mich recht entsinne, dann gibt es ab 1.7 einige Variablen, die sich nicht mehr überschreiben lassen.
$cf['site']['template'] wird vielleicht dazu gehören.

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by Tata » Wed Mar 11, 2020 8:26 pm

Ja, so sehe ich es auch. Doch sollte es irgendwie möglich sein. Vielleicht finde ich etwas.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by Tata » Wed Mar 11, 2020 9:02 pm

Da ist

Code: Select all

$tx['subsite']['template']
in initTemplatePaths().
Ich habe nun die "Sprachtemplates" in Sprachdateien definiert.
z.B. in:
/cmsimple/languages/de.php $tx['subsite']['template'] = "mytemplate_de.htm";
Aber es hat keine Wirkung. Die "Sprachseiten" werden gar nicht gelesen (kein Quellcode ist zu sehen). MM scheint es etwas anderes falsch zu laufen.
Im Adminmodus, kann ich die DE, EN Seiten durch URL aufrufen, nach dem Logout sind sie aber wieder weg.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

olape
Posts: 1017
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by olape » Thu Mar 12, 2020 5:21 am

Ich glaube, der Weg, den Frank beschrieben hat, ist die beste Variante.
Es muss ja nicht auf CSS beschränkt sein, man kann alles andere auch über die Abfrage der Sprache regeln.

Eigentlich könnte man 3 oder mehr vollständige Templates innerhalb einer Datei (templete.htm) anlegen und per $sl entsprechend zuweisen.

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by Tata » Thu Mar 12, 2020 7:08 am

Damit wurde ich gestern lange beschäftigt.
Ich habe unter templates:
stylesheet_sk.css, stylesheet_de.css und stylesheet_en.css
im template habe ich das originellle sowie auch "2lang" <body> etwa so eingebaut (mit ".hide, .show" Klassen in stylesheet_sk.css):

Code: Select all

<!DOCTYPE HTML>
<html lang="<?=$sl;?>">
<?=head();?>
...
<?php if($sl=='sk'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_sk.css">
<?php endif ?>
<?php if($sl=='de'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_de.css">
<?php endif ?>
<?php if($sl=='en'):?>
<link rel="stylesheet" type="text/css" href="<?=$pth['folder']['template']?>ukastelana_en.css">
<?php endif ?>
</head>
<!-- sk lang -->
<body class="body <?php if(!$sl=='sk'){ echo 'hide';}else{echo 'show';}?>" <?php echo onload();?>>
...
</body>
<!-- 2lang -->
<body class="body <?php if(($sl=='de') || ($sl=='en')){ echo 'show';}else{echo 'hide';}?>" <?php echo onload();?>>
...
</body>
</html>
Die Abfrage in "2lang body" ist wohl überflüssig. Aber egal ob da, oder nicht, die wirkung hat sich nicht geändert und die DE und EN Seiten werden nicht gezeigt. Die Console meldet auch gar nichts. Die 2lang Links sind im Statusbar richtig gezeigt.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

frase
Posts: 3145
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by frase » Thu Mar 12, 2020 8:13 am

Tata wrote:
Wed Mar 11, 2020 6:36 pm
Es geht nicht nur um die stylesheet.css, sonder um die ganze templates.
Ja, sorry!
Das hatte ich nicht bedacht. Ich glaubte, dass du nur verschiedene Styles hast.
olape wrote:
Thu Mar 12, 2020 5:21 am
Eigentlich könnte man 3 oder mehr vollständige Templates innerhalb einer Datei (templete.htm) anlegen und per $sl entsprechend zuweisen.
Das wäre in deinem Fall wahrscheinlich wirklich die beste Lösung.
Das heißt:
Ganz normales CMS ohne Spezial-Änderungen.
Sprachen und Inhalte ganz normal anlegen.
template.htm in 3 Bereiche aufteilen (ohne "hide" und "show").

Code: Select all

<?php if($sl=='sk'):?>
<body class="body"<?=onload();?>>
... hier der gesamte slowakische Inhalt ...
</body>
<?php endif ?>
<?php if($sl=='en'):?>
<body class="body"<?=onload();?>>
... hier der gesamte englische Inhalt ...
</body>
<?php endif ?>
<?php if($sl=='de'):?>
<body class="body"<?=onload();?>>
... hier der gesamte deutsche Inhalt ...
</body>
<?php endif ?>
</html>
Leider ist deine Seite zu komplex und umfangreich, sodass ich es nicht "mal schnell" ausprobieren und testen kann. Aber prinzipiell sollte das so funktionieren. Und falls sich die Styles auch sprachabhängig ändern, dann haben wir das ja oben schon beschrieben.

Tata
Posts: 3111
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Wieder subsite Problem mit v1.7.2

Post by Tata » Thu Mar 12, 2020 9:28 am

:-) Auch nichts. Die SK Seite kommt OK. Nach dem Umschalten zu DE oder EN kommt
syntax error, unexpected T_ENDIF in /www/u/k/u22546/public_html/_sub/test/templates/ukastelana/template.htm on line 322
in #322 steht

Code: Select all

<?php endif ?>
Die Blocks sind genau so gebaut, wie oben empfohlen. D.h.:

Code: Select all

<?php if($sl=='sk'):?>
[code]<body class="body"<?=onload();?>>
... hier der gesamte slowakische Inhalt ...
</body>
<?php endif ?>
<?php if($sl=='en'):?>
<body class="body"<?=onload();?>>
... hier der gesamte englische Inhalt ...
</body>
<?php endif ?>
<?php if($sl=='de'):?>
<body class="body"<?=onload();?>>
... hier der gesamte deutsche Inhalt ...
</body>
<?php endif ?>
</html>
Ich war nicht sicher ob es statt

Code: Select all

<?php if($sl=='en'):?>
nicht

Code: Select all

<?php if($sl=='en');?>
lauten sollte. Es bringt aber keine Änderung.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

Post Reply