Modul Input-Output

Gesperrt
jknoblich
Beiträge: 20
Registriert: Do 19. Sep 2002, 21:29
Kontaktdaten:

Modul Input-Output

Beitrag von jknoblich »

Liebe Forengemeinde,
ich würde mich ja auch gern beteiligen und Module zur Verfügung stellen.

Da ich es aber immer noch nicht begreife, wie das mit dem Input funktioniert, habe ich bisher meine Module "hartcodiert" was die Fonts angeht.
Das kann man aber schlecht machen, wenn man diese anderen zur Verfügung stellen will.

Der Input soll auch nur zwei, drei Felder mit der üblichen Fontauswahl haben.

Wie nun ?

Gruß
Jens
Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b »

am einfachsten nimmst du dir den Input z.b. aus dem Textmodul.
hier mal erklärt:

Code: Alles auswählen

echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=\"top\">
erstmal die Tabelle aufgebaut

Code: Alles auswählen

  <td width=\"202\">".$mod["font"].":</td>
  <td><select name=\"CMS_VAR[0]\" size=\"1\">";
die 2 Spalten...
$mod["font"] enthält das Wort "Schriftart" - war für multi-language-Support gedacht - aber naja... ;)
in der 2. Zelle ist die Select-Auswahl. CMS_VAR[0] ist der Name dieser Select-auswahl - später kann man darauf mit CMS_VALUE[0] zurückgreifen.

Code: Alles auswählen

if ("CMS_VALUE[0]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
Hier der Schriftzug "keine" ($lngForm["nothing"]) - wiedermal multilanguage.
die If-Abfrage ist so gedacht... wurde noch kein font gewählt (CMS_VALUE[0] = 0) dann wird die auswahl selected. Also markiert. Ansonsten nicht.

Code: Alles auswählen

for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[0]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
hier eine For-Schleife, die 50 Zahlen generiert. der Wert ist nur 1-50 . Die If-Abfrage hier soll den Font selecten, der vorher mal ausgewählt wurde wenn man später das Template noch einmal konfiguriert.

Code: Alles auswählen

echo "</SELECT></td>
</tr></table>
<input type=\"hidden\" name=\"CMS_VAR[1]\" value=\"".$value."\">";
der Hidden-Wert der hier definiert wird, ist die Container-Nummer. $value enthält immer die Nummer des aktuellen Containers. Schön wenn man die Nummer übergibt, weil man dann im Output dafür sorgen kann, dass man das Modul mehrfach einsetzen kann.

das ist jetzt eine Font-Auswahl gewesen. Wählst du z.b. Font 11 aus, dann enthält im Output die Variable CMS_VALUE[0] den Wert "11".
du setzt es also im Output dann so ein:

echo "<span id=\"fontCMS_VALUE[0]\">";
als Ergebnis kommt dann
<span id="font11">

Für deine konkrete Frage nach 3 Schriftauswahlen:

Code: Alles auswählen

echo "<input type=\"hidden\" name=\"CMS_VAR[0]\" value=\"".$value."\">";
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr valign=\"top\"><td width=\"202\">Schriftart 1:</td>";
echo "<td><select name=\"CMS_VAR[1]\" size=\"1\">";
if ("CMS_VALUE[1]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[1]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Schriftart 2:</td>";
echo "<td><select name=\"CMS_VAR[2]\" size=\"1\">";
if ("CMS_VALUE[2]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[2]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Schriftart 3:</td>";
echo "<td><select name=\"CMS_VAR[3]\" size=\"1\">";
if ("CMS_VALUE[3]" != 0) {
	echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
	echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
	if ($i != "CMS_VALUE[3]") {
         	echo "<option value=\"$i\">Font $i</option>";
         } else {
         	echo "<option value=\"$i\" selected>Font $i</option>";
         }
}
echo "</SELECT></td></tr></table>";
Jetzt hast du in:
CMS_VALUE[0] die aktuelle Containernummer
CMS_VALUE[1] Schriftart 1
CMS_VALUE[2] Schriftart 2
CMS_VALUE[3] Schriftart 3


Hilft dir das weiter??

achso.... du kannst natürlich auch alles andere einsetzen. Denke beim Input daran, dass du den eingestellten Wert wieder übernimmst, damit das auch noch so eingestellt ist, wenn du nochmal das Template konfigurierst.
Bespiel:
<input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\">
wenn du den Value nicht wieder übergibst, tritt folgender Effekt auf.
Du konfigurierst das Template und schreibst was in dieses Input-feld.
Das wird auch korrekt übernommen in den Output.
wenn du aber jetzt nochmal das Template konfigurierst, ist das Input-Feld wieder leer - und das ist ja nicht erwünscht. Deswegen immer den Value übergeben.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net

Der-Dirigent: http://der-dirigent.de
jknoblich
Beiträge: 20
Registriert: Do 19. Sep 2002, 21:29
Kontaktdaten:

Danke

Beitrag von jknoblich »

Das war richtig gut erklärt und hat mir prompt weitergeholfen.
Jetzt könnte ich theoretisch mein Bildergaleriemodul weitergeben.

D.h. eigentlich ist es gar kein reines Modul, sondern basiert mehr auf hochgeladene Bilder,Thumbs und Textdateien.

Ich hab das mal früher mir so gebastelt, da meine Mitglieder immer neue Bildergalerien sehen wollten. Ist also noch einiges immer händisch zu machen dabei:
- Bilder bearbeiten (großes Bild, kleines Bild)
- 1. Txt-Datei editieren (Name Thumb-Datei, Name GrossesBild, Bildbeschreibung)
- 2. Txt-Datei editieren (Bezeichnung der Galerie, Ordnername)
- alles per FTP hochladen

Also wer an so einem komplizierten Teil Interesse hat, kann sich ja mal melden.
Sicherlich kann man das noch umstricken, aber ich bin kein Freund von "Bilder einzeln per Browser hochladen" und kann so natürlich auch nicht auf DB-Inhalte(Dateinamen, Pfade etc.) zurückgreifen.

Hier ein Link (Ist aber noch nicht fertig, die Seite):
http://www.ssc.strausbergnet.de/conteni ... 15&idside=

Gruß
Jens
Gesperrt