Seite 1 von 1
Was ganz einfaches ..... CMS_HTML
Verfasst: Fr 7. Apr 2006, 17:48
von peanut
Hallo zusammen
ich muss irgendwie in dem CMS_HTML Feld einen statischen Text mit reinbauen ( mit Sprachen )
Zweck ist für den Kunden das er nicht immer als BSP: Preis: 100 Euro angeben muss sondern nur noch 100 Euro und der Preis dann auf english autom. übersetzt wird preis - price
Kann mir da jemand einen kurzen Schubs geben ?
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Text HTML
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 05.08.2005
************************************************/
echo "<p>"."CMS_HTML[1]"."</p>";
?>
Danke
Gruss
Peanut
PS: Ja ich habe zuerst die Boardsuche verwendet, aber sowas einfaches gibt es wohl nicht :)
Verfasst: Fr 7. Apr 2006, 18:39
von i-fekt
Versuch mal folgendes:
Code: Alles auswählen
<?php
if( $lang=="1" ) {
echo "<p>Preis: CMS_HTML[1]</p>";
} else {
echo "<p>Price: CMS_HTML[1]</p>";
}
?>
Dabei steht die
1 für die ID der deutschen Sprache, die else für die andere. Wenn du mehr hast einfach ein elseif einbauen.
Ungetestet, bin nicht sicher, ob der Wert auf $lang vorhanden ist.
Verfasst: Fr 7. Apr 2006, 19:14
von HerrB
Wie wäre es mit der Contenido-eigenen Übersetzung?
Code: Alles auswählen
<?php
echo "<p>".mi18n("Price:")." CMS_HTML[1]</p>";
?>
Und dann im Modul die Übersetzung einpflegen.
Gruß
HerrB
Verfasst: Mo 10. Apr 2006, 20:19
von peanut
Hallo HerrB
soweit so gut. Nun habe ich noch eine weiterführende Frage im Bezug auf das Modul
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Text HTML
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 05.08.2005
************************************************/
echo '<p class="db_liste_top">'.mi18n("Price: €").' '."CMS_HTML[2]".'</p>';
?>
Und zwar sieht das nun so aus bei mehreren Feldern:
Preis: € 100.-
Referenz: XXXccc
Ort: Stuttgart
Frage: Wie bekomme ich das nun hin das es so aussieht ( übersichtlich ) ohne extra Felder anzulegen und mühsam alles über CSS dann anzupassen ? Und einfach Leerschritte sind auch nicht drin wegen der Artikelliste.
Preis:
______€ 100.-
Referenz:__ XXXccc
Ort:_______Stuttgart
Danke für einen kleinen Denkanstoss
Gruss
Peanut
Verfasst: Di 11. Apr 2006, 11:26
von HerrB
Na, Du baust außen rum eine Tabelle (so mit <table>, <td> usw.). Genau dafür sind nach wie vor Tabellen gedacht und zulässig...
Gruß
HerrB
Verfasst: Di 11. Apr 2006, 22:10
von peanut
Hallo HerrB
danke für den Tipp aber ich alte Lusche bekomms mal wieder nicht hin ...... und meinen Code poste ich hier lieber nicht sonst werde ich wieder ausgebuht hehehe
Könntest Du eben ein Grundgerüst hier der C-Gemeinde hinsetzten ?
Tausend und einen Dank
Gruss
Peanut
Verfasst: Mi 12. Apr 2006, 01:29
von HerrB
Jetzt habe ich das Problem verstanden (ich war nahe dran, etwas in Richtung "Selfhtml" zu schreiben).
Das ist in der Tat nicht ganz einfach, da Du im Moment offensichtlich für jede Zeile ein Modul definiert hast.
Wenn Du es so lassen musst, bliebe nur das Artikellisten Modul Advanced, wobei die Ausgabe dann von CSS in Tabelle angepasst werden müsste.
Alternativ fällt mir nur ein, ein Modul zu gestalten (statt 3):
Code: Alles auswählen
echo '<p class="db_liste_top"><table>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Price: €").'</td>'."\n";
echo ' <td>'."CMS_HTML[2]".'</td>."\n"';
echo ' </tr>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Referenz:").'</td>'."\n";
echo ' <td>'."CMS_HTML[3]".'</td>."\n"';
echo ' </tr>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Ort:").'</td>'."\n";
echo ' <td>'."CMS_HTML[4]".'</td>."\n"';
echo ' </tr>'."\n";
echo '</table></p>';
Gruß
HerrB
Verfasst: Mi 12. Apr 2006, 08:18
von Maribeauli
HerrB hat geschrieben:
Alternativ fällt mir nur ein, ein Modul zu gestalten (statt 3):
Code: Alles auswählen
echo '<p class="db_liste_top"><table>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Price: €").'</td>'."\n";
echo ' <td>'."CMS_HTML[2]".'</td>."\n"';
echo ' </tr>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Referenz:").'</td>'."\n";
echo ' <td>'."CMS_HTML[3]".'</td>."\n"';
echo ' </tr>'."\n";
echo ' <tr>'."\n";
echo ' <td>'.mi18n("Ort:").'</td>'."\n";
echo ' <td>'."CMS_HTML[4]".'</td>."\n"';
echo ' </tr>'."\n";
echo '</table></p>';
Gruß
HerrB
HerrB,
nun gibt mir bitte auch mal "Nachhilfe" und sage mir wo oder was ich falsch verstanden habe.
Ich hätte die Ausgabe über ein Layout gelöst in der Art:
Code: Alles auswählen
<table>
<tr><td>Preis:</td><td width="x"></td><td> CONTAINER-Syntax für Output Modul 1</td></tr>
<tr><td>Referenz:</td><td width="x"></td><td> CONTAINER-Syntax für Output Modul 2</td></tr>
<tr><td>Ort:</td><td width="x"></td><td> CONTAINER-Syntax für Output Modul 3</td></tr>
</table>
Erreiche ich damit nicht das gleiche?
PS: Nur am Rande, die Syntax mit deiner Tabelle ist nicht valid, table darf nicht zwischen p stehen

Verfasst: Mi 12. Apr 2006, 12:30
von HerrB
PS: Nur am Rande, die Syntax mit deiner Tabelle ist nicht valid, table darf nicht zwischen p stehen
Danke. Ich wollte nur das p nicht unberücksichtigt lassen. Murx...
Ich hätte die Ausgabe über ein Layout gelöst in der Art:
Gefordert war die Mehrsprachigkeit der Beschriftung. Dies ist (elegant) über die Modul-Übersetzung via mi18n möglich.
Wenn man es ganz hart macht, könnte man ein Layout mit (hier) 6 Containern verwenden und jeweils über ein Modul Beschriftung und Text festlegen. Das ist aber sehr aufwendig, eine Verschwendung von Ressourcen und wenn man später mal was ändern will... Auch wäre die Beschriftung für jeden Artikel erneut einzutragen. Außerdem sollte man ein Layout nach Möglichkeit später nicht anfassen müssen (deswegen ist es z.B. auch eine gute Idee, Container in 10er-Schritten mit IDs zu belegen, damit später noch Felder dazwischen setzen kann).
Die Ideal-Form des Moduls dürfte aber sicherlich eine Trennung von Code und (Modul-)Template sein - d.h. wie z.B. beim Hauptnavigationsmodul gibt es ein Template mit Platzhaltern:
Code: Alles auswählen
<table>
<!-- BEGIN:BLOCK -->
<tr><td>{ITEM}</td><td>{VALUE}</td></tr>
<!-- END:BLOCK -->
</table>
welches ich dann im Modul zeilenweise fülle:
Code: Alles auswählen
cInclude('classes', 'class.template.php');
$tpl = new Template;
$tpl->set('d', 'ITEM', mi18n("Price: €"));
$tpl->set('d', 'VALUE', "CMS_HTML[2]");
$tpl->next();
$tpl->set('d', 'ITEM', mi18n("Reference:"));
$tpl->set('d', 'VALUE', "CMS_HTML[3]");
$tpl->next();
$tpl->set('d', 'ITEM', mi18n("Location:"));
$tpl->set('d', 'VALUE', "CMS_HTML[4]");
$tpl->next();
$tpl->generate('templates/<Name des Templates>.html');
<Name des Templates>.html muss mit der Bezeichnug aus Style->HTML Editor übereinstimmen. Man beachte die 'd'-Option beim set (ermöglicht Blockwiederholungen).
Abstände und anderes würde ich dann über CSS definieren (ggf. halt im (Modul-)Template noch eine Klasse für table, tr bzw. td ergänzen).
Gruß
HerrB
Verfasst: Mi 12. Apr 2006, 13:35
von Maribeauli
@HerrB,
ja, verstanden, danke für die ausführliche Erklärung.
Verfasst: Mi 12. Apr 2006, 18:13
von peanut
Hallo HerrB
gleich mal testen ob das so geht wie mein Kunde es braucht
Danke fürs kurze reindenken
Gruss
Peanut