Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> mip_forms dynamisch?
pawel
Beitrag 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.


--------------------
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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



ZITAT(MaZderMind @ Tue. 5. December 2006, 09:22) *
Bug im forum??
Gruß, Peter


nein feature ....


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 wink.gif )
Gruß, Peter
Go to the top of the page
 
+Quote Post
saschapi
Beitrag 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



ZITAT(alexander @ Tue. 5. December 2006, 09:34) *
nein feature ....

Das macht es übrigens scheinbar nur dann, wenn noch keiner den Beitrag vorher gelesen hat. smile.gif Das finde ich ganz cool.


--------------------
Go to the top of the page
 
+Quote Post
hylli
Beitrag Tue. 5. December 2006, 11:14
Beitrag #6


Advanced Member
******

Gruppe: AdvancedMembers
Beiträge: 245
Mitglied seit: 06.07.2006
Mitglieds-Nr.: 117



ZITAT(saschapi @ Tue. 5. December 2006, 11:12) *
Das macht es übrigens scheinbar nur dann, wenn noch keiner den Beitrag vorher gelesen hat. smile.gif Das finde ich ganz cool.

Dann finde ich ist's ein Feature!

Hylli
Go to the top of the page
 
+Quote Post
Olaf
Beitrag 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? cool.gif


--------------------
Gruß Olaf aus Ohorn

Lieber spät und richtig als nie und falsch.
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 wink.gif

Gruß, Peter
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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?


--------------------
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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?


--------------------
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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)
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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


--------------------
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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">&nbsp;</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


--------------------
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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 biggrin.gif
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.


--------------------
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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 smile.gif

Gruß, Peter
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 26.4.24 - 17:03

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.