mip_forms dynamisch? |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
mip_forms dynamisch? |
Tue. 5. December 2006, 08:36
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Okay, ich glaube der Titel klingt ziemlich blöd.
Ich möchte das der Redakteur zusätzliche Eingabefelder (Textfelder) hinzufügen kann. Ist das möglich. So wie bei lokalen Datenbanken einen weiteren Adresssatz. -------------------- |
|
|
Tue. 5. December 2006, 09:22
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Is nich ganz das was du suchst aber vllt hilts dir ja. Schau dir mal cms:mod-Tags an, seziell die Option menuoptions="advanced". Beispiel (in den Moduloutput) QUELLTEXT <cms:mod type="text" id="1" menuoptions="advanced" /> Dann das Element bearbeiten. Wenn du danach wieder auf den Edit-Button gehst kannst du zusätzlich noch "Neu" wählen und neue einträge anlegen. menuoptions="advanced" kann man auch auf typegroups anwenden. Gruß, Peter Hi Mit den mip_forms gehts übrigens auch: QUELLTEXT <?php for($i = 1; $i <= 10; $i++) { $mip_form['cat'] = 'txt'; $mip_form['type'] = ''; $mip_form['desc'] = 'Textfeld '.$i; $mip_form['cms_var'] = "MOD_VAR[$i]"; $mip_form['cms_val'] = $cms_mod['value']["$i"]; $mip_form['cms_val_default'] = ''; $mip_form['tab'] = '0'; mip_formsp($mip_form); } ?> QUELLTEXT Nummer eins: MOD_VALUE[1] und zwei: MOD_VALUE[2]; <?PHP echo 'drei: '.$cms_mod['value']['3']; ?> Jetz könntest du in einem text-Feld eine kommaseparierte Liste mit Feldern eingeben lassen (anstatt numerischen $i's kannst du problemlos auch strings benutzen). Nach dem speichern wird dann anhand der Liste die korrekte Anzahl an Feldern erstellt. Statt speichern und neu-öffnen kannst du dir einfach mal den JS-code angucken der generiert wird, wenn du z.B. bei einer checkbox $mip_form['2']['flag'] = 'reload'; aktivierst und dann auf einen Klickbutton "Übernehmen" übertragen. Gruß, Peter ----------- Ooops.. ganz komisches Phänomen -- ich hab eine antwort erstellt und sie ist an das Ende meines vorherigen Beitrages angefügt worden o_O Bug im forum?? Gruß, Peter |
|
|
Tue. 5. December 2006, 09:34
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
-------------------- SEFRENGO | a free choice ... again!
|
|
|
Tue. 5. December 2006, 10:00
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Worüber sich definitiv streiten lässt...
(was wir hier aber nicht schon wieder tzun werden ) Gruß, Peter |
|
|
Tue. 5. December 2006, 11:12
Beitrag
#5
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
nein feature .... Das macht es übrigens scheinbar nur dann, wenn noch keiner den Beitrag vorher gelesen hat. Das finde ich ganz cool. -------------------- |
|
|
Tue. 5. December 2006, 11:14
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 245 Mitglied seit: 06.07.2006 Mitglieds-Nr.: 117 |
|
|
|
Tue. 5. December 2006, 12:04
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 613 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 30 |
Streit!? Sogar von Kriegen war schon die Rede. Warum krieg ich davon immer nichts mit?
-------------------- |
|
|
Tue. 5. December 2006, 12:19
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
ZITAT Das macht es übrigens scheinbar nur dann, wenn noch keiner den Beitrag vorher gelesen hat. Hmm okay.. dann Feature.. Aber man sollte doch vorher gewarnt werden (sonst beginnt man wieder mit "Hi noch ien Nachtrag...". Naja ich mag diese eigenständigkeit nicht Gruß, Peter |
|
|
Tue. 5. December 2006, 14:53
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Mhm, ich bräuchte das schon im Template (deshalb Mip_forms)., so ähnlich wie im Formbuilder. Da blicke ich aber noch nicht ganz durch. Typischerweise brauche ich so etwas für Adressdaten.
Das Beispiel von MaZderMind leuchtet mir ein, nur noch nicht wie man es im backend "anstösst". Einfach per get in der url im backend? -------------------- |
|
|
Tue. 5. December 2006, 14:59
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Anstoßen? Hmm?
Was willst du denn überhaupt? Du kannst z.B. in den mip_forms ein textfeld "eingabefelder" anlegen. danach splittest du dann (in der Modulkonfiguration) diesen String an den Kommas auf und erstellst abhängig davon dann mip_forms-Eingabefelder wie ichs oben gezeigt habe. Der Redakteur kann nun z.B. zu 'name,adresse,gebdat' noch ',gebort' hinzufügen, speichern und wieder auf konfiguriere ngehen und tadda - es ist ein neues Eingabefeld 'gedat' aufgetaucht. Das speichern und neu öffnen kann man auch automatisieren. Ich bastel mal ein Beispiel... Gruß, Peter |
|
|
Tue. 5. December 2006, 20:38
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Na gut, war vielleicht etwas umständlich beschrieben.
Standardmäßig würde im Template nur ein Textfeld auftauchen (sozusagen i=1) Darunter dann ein Editbutton der ein weiteres Text(eingabe) feld hinzufügt usw. Gebe ich jetzt einfach dem Button die Anzahl als Zahl per Get mit (und damit ein Seitenreload) oder wird das alles per JS und onchange gemacht? -------------------- |
|
|
Tue. 5. December 2006, 21:03
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Ne wenn dann per reolad.
Gruß, Peter |
|
|
Tue. 5. December 2006, 22:09
Beitrag
#13
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
@pawel
schau dir doch einmal das Kontaktformlar, den FormBuilder oder das ContentFlex an. Alle diese Module besitzen eine solch funktion. Gruss Mistral P.S wiso nimmst di nicht das ContentFlex ? -------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Wed. 6. December 2006, 09:23
Beitrag
#14
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
ZITAT P.S wiso nimmst di nicht das ContentFlex ? Ich gebe zu, ein bisschen Sport ist dabei (ich will es halt verstehen, deshalb selbts machen). Hauptsächlich will ich aber die Daten weiterverarbeiten, mit einer Funktionalität, die in den vorgeschlagenen Modulen ohnehin nicht vorhanden ist. Es geht mir darum ein Googlemapsmodul zu schreiben, welche s den SF-Redakteur die Arbeit abnimmt, JS schreiben zu müssen. Er gibt einfach nur seinen Key, Adressen, das Markericon usw. ein und der JS-Code wird vom Modul generiert. In einer einfachen Version läuft das Modul sogar schon bei mir (Key, Adressfeld (ohne Cache der Koordinaten)). Ziel ist es, das der Redakteureine beliebiger Anzahl von Adressen eingeben kann, die Geokoordinaten in der DB gecacht werden -------------------- |
|
|
Sat. 9. December 2006, 22:13
Beitrag
#15
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Okay, ich habe mir mal den Formbuilder ein bißchen reduziert.
QUELLTEXT <?php // Anzahl der Spalten if ($cms_mod['value']['6'] == '' || $cms_mod['value']['6'] <= '0') $cms_mod['value']['6'] = '6'; if ($cms_mod['value']['99'] != '0') $cms_mod['value']['6'] = round($cms_mod['value']['6']+$cms_mod['value']['99']); echo '<table border="0"> <tr> <td>Nr.</td> <td>Adresse</td> <td>Titel</td> <td>Infotext</td> </tr>'; $mip_forms_tab_temp = $mip_forms_tab; $mip_forms_tab['open'] = ''; $mip_forms_tab['close'] = ''; $mip_forms_tab['left'] = '<!--%s-->%s'; $mip_forms_tab['left_width'] = ''; $mip_forms_tab['right'] = '%s'; $mip_forms_tab['full'] = '<td>%s<br>%s</td><td width="5"> </td></tr>'; $mip_forms_tab['tab'] = '<td width="33" valign="top">%s</td>'; $ecount = 100; // Konfiguration der einzelnen Spalten for($i=0;$i < $cms_mod['value']['6'];$i++){ $frm_name = $ecount; $frm_default = $ecount+1; $frm_optionen = $ecount+2; //name $name_element = '<input type="text" name="MOD_VAR['.$frm_name.']" style="width:200px" value="'.htmlentities( $cms_mod['value'][$frm_name],ENT_COMPAT,'utf-8').'" />'; //default $def_element = '<input type="text" name="MOD_VAR['.$frm_default.']" style="width:200px" value="'.htmlentities( $cms_mod['value'][$frm_default],ENT_COMPAT, 'utf-8').'" />'; //optionen $optionen_element = '<input type="textarea" name="MOD_VAR['.$frm_optionen.']" style="width:200px" value="'.htmlentities( $cms_mod['value'][$frm_optionen],ENT_COMPAT,'utf-8').'" />'; echo '<tr width="640px">'; $element_nr = ($i < 9) ? ('0'. ($i+1) ): $i+1; echo '<td> '.$element_nr.' </td>'; echo '<td>'. $name_element .'</td>'; echo '<td>'. $def_element .'</td>'; echo '<td>'. $optionen_element .'</td>'; echo '</tr>'; $ecount = $ecount+20; } $mip_forms_tab = $mip_forms_tab_temp; ?> <tr> <td colspan="9" align="right"><select name="MOD_VAR[99]" size="1" onchange="document.editform.action.value='change';document.editform.submit();"> <option value="0" selected>Elementgruppe erstellen - löschen</option> <?php if ($cms_mod['value']['6'] >= '4') echo "<option value=\"-3\">-3</option>"; ?> <?php if ($cms_mod['value']['6'] >= '3') echo "<option value=\"-2\">-2</option>"; ?> <?php if ($cms_mod['value']['6'] >= '2') echo "<option value=\"-1\">-1</option>"; ?> <option value="1">+1</option> <option value="2">+2</option> <option value="3">+3</option> </select></td> </tr> </table> <?php unset($mip_form, $tmp_mod, $y, $ecount, $name_element, $def_element, $optionen_element, $attrib_element); ?> (Kann man einfach ausprobieren, indem man ein neues Modul erstellt und den Text in den Konfigbereich kopiert) Die Variablen kann man sicher noch "sprechend" umbenennen. Mir ist noch nicht klar, wie ich den Inhalt im Frontend verfügbar mache, wie also die Variablen heißen. Kann man nicht sowieso auch hier mip_forms verwenden? Hat jemand einen Tipp? Der Beitrag wurde von pawel bearbeitet: Sat. 9. December 2006, 22:14 -------------------- |
|
|
Sat. 9. December 2006, 23:06
Beitrag
#16
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Wie ich das sehe heißen die Variablen MOD_VAR[100], MOD_VAR[101], usw. bzw. $mip_form['100'], $mip_form['101'], usw.. Ich muss aber sagen dass das ein ziemliches gemurkse ist (das Selbst-Ausgeben der Formularelemente und damit das umgehen der mip_forms, obwohl ich ja oben gezeigt habe wie es richtig gehen kann). Außerdem verstehe ich nich so ganz wo da genau der vorteil gegenüber meiner Methode sein soll (außer dass die hinzufügeb/entfernen-Elemente schon dabei sind). Gruß, Peter |
|
|
Sun. 10. December 2006, 21:49
Beitrag
#17
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Jo, das sehe ich auch so. Ich bekam nur den Tipp mir den Formbuilder mal anzusehen
Eine Vorteil gegenüber deiner Methode sehe ich nicht, mit der experimentire ich ja auch. Was mir beim Formbuilder gefallen hat, ist, das sich mit der Auswahl in der select-Box das Form sofort neu mit den zusätzlichen Feldern neu lädt. Wie gesagt, das Modul ist im <head, deshalb nützen mir die (praktischeren) CMS-Tags nichts. -------------------- |
|
|
Sun. 10. December 2006, 22:02
Beitrag
#18
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
die Selektbox kanst du doch analog auch aug mein System übertragen Gruß, Peter |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 26.4.24 - 17:03 |