Content von einer Sprache in die andere übernehmen

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
ulitobandito
Posts: 1
Joined: Tue Sep 30, 2008 8:52 am

Content von einer Sprache in die andere übernehmen

Post by ulitobandito » Tue Sep 30, 2008 9:16 am

Hallo Zusammen

auf meiner Homepage, habe ich eine Tabelle mit regelmässigen Aufzeichungen über verschiedene Bienevölker.
Ich würde gerne die Homepage auch auf englisch habe, möchte aber bei einer Aktualisierung nicht zweimal die Daten in die Tabelle schreiben.

Ist es möglich den Inhalt der deutschen Seiten mit den Tabellen in der Enlischen Version anzuzeigen?

PS. "allow-url-fopen" ist auf bei meinen Server auf OFF und ich kann dies nicht ändern.

Vielen Dank für die Hilfe

Uli

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Content von einer Sprache in die andere übernehmen

Post by Holger » Tue Sep 30, 2008 10:11 am

Hallo Uli,

als "Quick & Dirty" Lösung könntest Du die Druckversion der deutschen Seite mit dem Wrapper-Plugin auf der englischen Seite einbinden.
Da sich ja alles auf der gleichen Domain abspielt kannst Du die Funktion autowrap(); verwenden.

Das Plugin findest Du hier: http://cmsimplewiki.com/doku.php/plugins/wrapper.
Um die Seite mit der Tabelle in der Druckversion einzubinden musst Du nur "&print" an die URL anhängen.
Allerdings solltest Du im CSS des Templates auch geeignete Einstellungen für body .print machen bzw. haben.

Schöner wäre es allerdings mit einem kleinen Skript...

LG

Holger

beate_r
Posts: 174
Joined: Thu May 22, 2008 11:44 pm
Location: Hessen / Germany

Re: Content von einer Sprache in die andere übernehmen

Post by beate_r » Tue Sep 30, 2008 10:48 am

Wie wäre es, wenn man die Tabellen als - beispielsweise - HTML-Fragmente in einer separaten Datei ablegt, die man dann über den Scripting-Mechanismus einfügt? Oder, falls der Webserver das zulassen sollte, mit klassischen Server Sinde Includes?

LG

Beate

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Content von einer Sprache in die andere übernehmen

Post by Holger » Tue Sep 30, 2008 12:32 pm

beate_r wrote:Wie wäre es, wenn man die Tabellen als - beispielsweise - HTML-Fragmente in einer separaten Datei ablegt, die man dann über den Scripting-Mechanismus einfügt? Oder, falls der Webserver das zulassen sollte, mit klassischen Server Sinde Includes?
Klar, das ist die einfachste Methode. Allerdings kann der User die Tabellen dann nicht mehr über CMSimple pflegen. Das halte ich für
den größten Nachteil hierbei.

BTW: Wie kombiniert man PHP und SSI?

LG

Holger

Connie
Posts: 282
Joined: Thu May 22, 2008 10:11 am
Location: Hamburg
Contact:

Re: Content von einer Sprache in die andere übernehmen

Post by Connie » Tue Sep 30, 2008 12:47 pm

man könnte in der Server-Konfiguration .shm und .sthml PHP zuordnen, aber das wäre wieder mal die berühmte Kanone, die auf Spatzen schießt und ich garantiere für nichts...

Gruss, Connie
|---
Connie Müller-Gödecke, http://www.webdeerns.de

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Content von einer Sprache in die andere übernehmen

Post by Holger » Wed Oct 01, 2008 10:51 am

PHP kann zwar über virtual() eine (*.shtml)-Datei einbinden, wenn PHP als Apache-Modul läuft.
Das entspricht dann aber der SSI-Funktion <!--#include virtual... -->, mit allen damit verbundenen Nachteilen.
Beispielsweise wird es Probleme mit der Verfgbarkeit von Variablen in der eingebundenen Datei geben.

Der umgekehrte Weg - Server Side Includes die PHP-Code ausführen - könnte mit folgender Einstellung in der HTTPD.CONF gehen:

Code: Select all

Options +Includes 
AddOutputFilter INCLUDES .php
Dazu braucht man aber Zugriff auf die Serverkonfiguration.

Also wäre ein einfaches include() über PHP und ohne SSI die Wahl.

Holger

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

Re: Content von einer Sprache in die andere übernehmen

Post by cmb » Sat Mar 16, 2013 12:01 am

Ab CMSimple_XH 1.5.2/CMSimple 4 geht's ganz einfach: den gemeinsamen Content verwaltet man einfach mit Boilerplate_XH und bindet ihn dann über einen einfachen Plugincall in beiden Sprachen ein.
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: Content von einer Sprache in die andere übernehmen

Post by Tata » Sat Mar 16, 2013 12:48 am

Bitte, nicht lachen. Ich würde einfach die Tabelle auf einer Stelle kopieren und auf der anderen reinkleben. Es würde wohl nicht automatisch, aber doch würde es erlauben wenigstens die Überschriffte auch auf Englisch zu übersetzen. Oder habe ich falsch verstanden, worüber es geht?
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.

Traktorist
Posts: 235
Joined: Mon Mar 07, 2011 4:34 pm
Location: South of Lower Saxony, Germany

Re: Content von einer Sprache in die andere übernehmen

Post by Traktorist » Sat Mar 16, 2013 10:09 am

Wenn es nur um Tabellen geht, dann wäre ja die Frage ob es nicht auch Tabellen aus einer CSV-Datei sein dürfen. Die könnte man offline erstellen und dann per FTP oder einem Filemanager-Plugin hochladen.

Um sie dann dazustellen, kann man eine Funktion verwenden, die Christoph und ich mal für einen Fall bei mir erstellt haben.
Der Funktionsaufruf könnte dann wie folgt aussehen und wenn man den jeweils in die deutsche und englische Seite einbaut, dann hat man auf beiden Seite die gleiche Tabelle:

Code: Select all

{{{PLUGIN:csv_as_table('userfiles/tabellen/tabelle.csv', array(200,150,60,40,40,40,40));}}}
csv_as_table = Name der Funktion
userfiles/tabellen/tabelle.csv = Speicherort und Name der CSV-Datei
200,150,60,40,40,40,40 = Spaltenanzahl und –breite, wobei sich die Anzahl der Spalten aus der Anzahl der Einträge zwischen den Kommas ergibt.

Für mich ist diese Funktion eine prima Möglichkeit Tabellen erzeugen zu lassen.

Gruß, Ele

Hier die Funktion:

Code: Select all

function csv_as_table($fn, $widths, $headings = FALSE, $classes = 'csv_table', $delimiter = "\t", $enclosure = '"') {
$o = '<table id="ID_NAME" class="'.$config['classes'].'">'."\n";
    if (($fh = fopen($fn, 'r')) !== FALSE) {
		if ($headings !== FALSE) {
			$o .= '<thead><tr>';
			if ($headings === TRUE) {
				if (($headings = fgetcsv($fh, 4096, $delimiter, $enclosure)) === FALSE) {
					$headings = array();
				}
			}
			foreach ($headings as $heading) {
				$o .= '<td id="ID_BREIT">'.$heading.'</td>';
			}
			$o .= '</tr></thead>'."\n";
		}
		$o .= '<tbody>'."\n";
		while (($rec = fgetcsv($fh, 4096, $delimiter, $enclosure)) !== FALSE) {
			$o .= '<tr>';
			$i = 0;
			foreach ($rec as $field) {
				$o .= '<td';
				if (isset($widths[$i])) {
					$o .= ' style="width: ' . $widths[$i] . 'px;"';
				}
				$o .= '>'.htmlspecialchars($field).'</td>';
				$i ++;
			}
			$o .= '</tr>'."\n";
		}
		fclose($fh);
		$o .= '</tbody>'."\n";
    }
    $o .= '</table>'."\n";
    return $o;

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

Re: Content von einer Sprache in die andere übernehmen

Post by cmb » Sun Mar 17, 2013 9:09 pm

Tata wrote:Oder habe ich falsch verstanden, worüber es geht?
Nein, nicht wirklich. Aber wenn die Tabelle häufig aktualisiert werden muss, dann ist das Kopieren schon etwas aufwendig (und man kann es auch leicht mal vergessen).
Traktorist wrote:Um sie dann dazustellen, kann man eine Funktion verwenden, die Christoph und ich mal für einen Fall bei mir erstellt haben.
Hatte ich schon wieder ganz vergessen. Danke für den Hinweis; sicherlich für den ein oder anderen nützlich. :)

Und zur Info: der eigentliche Thread ist uralt. Ich bin nur zufällig darauf gestoßen, und dachte mir, das könnte anderen auch so gehen. Daher habe ich mal Boilerplate_XH erwähnt. Die Vorschläge von Tata und Ele sind ggf. sogar besser; da möge jeder nach Bedarf entscheiden.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply