Content von einer Sprache in die andere übernehmen
-
- Posts: 1
- Joined: Tue Sep 30, 2008 8:52 am
Content von einer Sprache in die andere übernehmen
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
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
Re: Content von einer Sprache in die andere übernehmen
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
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
Re: Content von einer Sprache in die andere übernehmen
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
LG
Beate
Re: Content von einer Sprache in die andere übernehmen
Klar, das ist die einfachste Methode. Allerdings kann der User die Tabellen dann nicht mehr über CMSimple pflegen. Das halte ich fürbeate_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?
den größten Nachteil hierbei.
BTW: Wie kombiniert man PHP und SSI?
LG
Holger
Re: Content von einer Sprache in die andere übernehmen
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
Gruss, Connie
|---
Connie Müller-Gödecke, http://www.webdeerns.de
Connie Müller-Gödecke, http://www.webdeerns.de
Re: Content von einer Sprache in die andere übernehmen
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:
Dazu braucht man aber Zugriff auf die Serverkonfiguration.
Also wäre ein einfaches include() über PHP und ohne SSI die Wahl.
Holger
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
Also wäre ein einfaches include() über PHP und ohne SSI die Wahl.
Holger
Re: Content von einer Sprache in die andere übernehmen
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
Re: Content von einer Sprache in die andere übernehmen
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.
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.
-
- 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
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: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:
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));}}}
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;
Re: Content von einer Sprache in die andere übernehmen
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).Tata wrote:Oder habe ich falsch verstanden, worüber es geht?
Hatte ich schon wieder ganz vergessen. Danke für den Hinweis; sicherlich für den ein oder anderen nützlich.Traktorist wrote:Um sie dann dazustellen, kann man eine Funktion verwenden, die Christoph und ich mal für einen Fall bei mir erstellt haben.
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