Hallo Redaxouser,
habe das Problem für ein Modul mehr als 20 Variabeln zu brauchen.Nun hab ich mich schon mal versucht hier im Forum schlau zu machen und mein Modul mit der Aktion "rexnames" ergänzt.
Leider habe ich keinen Erfolg damit.
Kann mir wer einen Tip geben?
Verwende REDAXO 4.1
AKTION:
rexnames: beide auf ADD/EDIT
Presave-Action [Wird vor dem Speichern des Moduls ausgeführt]
Postsave-Action [Wird nach dem Speichern des Moduls ausgeführt]
<?php $newname = ""; for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; } else { $newname .= '~~'; } } if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') { $rexname = split('~~', $REX_ACTION['VALUE'][1]); } else { $REX_ACTION['VALUE'][1] = $newname; } ?>
<?php
$newname = "";
for ( $c = 0; $c < 99; $c++ ) {
if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; }
else { $newname .= '~~'; }
}
if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') {
$rexname = split('~~', $REX_ACTION['VALUE'][1]);
} else {
$REX_ACTION['VALUE'][1] = $newname;
}
?>
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt

Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Hallo,
erstmal wo her hast die rexname?
Meine sieht irgendwie anders aus?
"Leider habe ich keinen Erfolg damit. Kann mir wer einen Tip geben?"
Wo bei kein Erfolg?
OK jetzt kommt mal mein Test, einfach mal testen ob was Angezeigt wird.
Aktion:
Presave-Action ADD/EDIT
Postsave-Action ADD/EDIT
Modul die Aktion Speichern und
Eingabe:
Ausgabe:
Das Modul jetzt einbinden und mal die 3 Felder ausfüllen und im Frontent mal schauen ob diese wieder Angezeigt werden.
Cheffchen
erstmal wo her hast die rexname?
Meine sieht irgendwie anders aus?
"Leider habe ich keinen Erfolg damit. Kann mir wer einen Tip geben?"
Wo bei kein Erfolg?
OK jetzt kommt mal mein Test, einfach mal testen ob was Angezeigt wird.
Aktion:
Presave-Action ADD/EDIT
Code: Alles auswählen
<?php $rexname = rex_request("rexname","array"); $newname = ""; for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; } else { $newname .= '~~'; } } if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') { $rexname = split('~~', $REX_ACTION['VALUE'][1]); } else { $REX_ACTION['VALUE'][1] = $newname; } ?>
Code: Alles auswählen
<?php $rexname = rex_request("rexname","array"); $newname = ""; for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; } else { $newname .= '~~'; } } if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') { $rexname = split('~~', $REX_ACTION['VALUE'][1]); } else { $REX_ACTION['VALUE'][1] = $newname; } ?>
Eingabe:
Code: Alles auswählen
<?php $rexname = split("~~","REX_VALUE[1]"); $GLOBALS['rexname'] = $rexname; ?>
<input type="text" name="rexname[0]" value="<?php if (isset ($rexname[0])) { print $rexname[0]; }?>" />
<input type="text" name="rexname[15]" value="<?php if (isset ($rexname[15])) { print $rexname[15]; }?>" />
<input type="text" name="rexname[30]" value="<?php if (isset ($rexname[30])) { print $rexname[30]; }?>" />
Code: Alles auswählen
<?php $rexname = split("~~","REX_VALUE[1]"); $GLOBALS['rexname'] = $rexname; ?>
<?php if (isset ($rexname[0])) { print $rexname[0]; } ?>
<?php if (isset ($rexname[0])) { print $rexname[15]; } ?>
<?php if (isset ($rexname[0])) { print $rexname[30]; } ?>
Cheffchen
Guten Morgen...im warsten Sinn des Wortes
Deine Antwort hat bei mir die Bretter vor den Augen entfernt.
Es lag daran das ich versuchte REX_VALUES[xx] anzusprechen statt $rexname[xx]...na ja, das ist's nach VALUE[20] eben aus.
Jedenfalls einen herzlichen Dank für die wirklich rasche Antwort und das rexnames Testmodul ist ja auf die schnelle auch gut zu gebrauchen...
Liebe Grüße
Manfred

Deine Antwort hat bei mir die Bretter vor den Augen entfernt.
Es lag daran das ich versuchte REX_VALUES[xx] anzusprechen statt $rexname[xx]...na ja, das ist's nach VALUE[20] eben aus.
Jedenfalls einen herzlichen Dank für die wirklich rasche Antwort und das rexnames Testmodul ist ja auf die schnelle auch gut zu gebrauchen...

Liebe Grüße
Manfred
Re: mehr als 20 Values
Danke Cheffchen! 

- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: mehr als 20 Values
Hej,
die rexnames brauchst nicht mehr verwenden. Man kann REX_VALUE auch als array nutzen.
Einfaches Bsp.
Moduleingabe:
Modulausgabe
vg Thomas
die rexnames brauchst nicht mehr verwenden. Man kann REX_VALUE auch als array nutzen.
Einfaches Bsp.
Moduleingabe:
Code: Alles auswählen
<?php
$values = array();
$values[1] = rex_var::toArray('REX_VALUE[1]');
$values[1]['media_1'] =<<<EOF
REX_MEDIA_BUTTON[1]
EOF;
$values[1]['link_1'] =<<<EOF
REX_LINK_BUTTON[1]
EOF;
$values[2] = rex_var::toArray('REX_VALUE[2]');
$values[2]['media_1'] =<<<EOF
REX_MEDIA_BUTTON[2]
EOF;
$values[2]['link_1'] =<<<EOF
REX_LINK_BUTTON[2]
EOF;
for ($i = 1; $i <= count($values); $i++) {
echo '
<table class="rex-table">
<tr class="rex-title">
<th colspan="2">Medien</th>
</tr>
<tr>
<th>Bild</th>
<td>' . $values[$i]['media_1'] . '</td>
</tr>
<tr class="rex-title">
<th colspan="2">Text</th>
</tr>
<tr>
<th>Überschrift</th>
<td><input type="text" name="VALUE[' . $i . '][h1]" value="' . (isset($values[$i]['h1']) ? $values[$i]['h1'] : '') . '" /></td>
</tr>
<tr>
<th>Fließtext</th>
<td><textarea name="VALUE[' . $i . '][text]" class="rex-markitup lead" data-buttonset="appsimple">' . (isset($values[$i]['text']) ? $values[$i]['text'] : '') . '</textarea></td>
</tr>
<tr class="rex-title">
<th colspan="2">Verlinkung</th>
</tr>
<tr>
<th>interner Link</th>
<td>' . $values[$i]['link_1'] . '</td>
</tr>
</table>';
}
?>
Modulausgabe
Code: Alles auswählen
<?php
$values = array();
$values[1] = rex_var::toArray('REX_VALUE[1]');
$values[1]['media_1'] = 'REX_MEDIA[1]';
$values[1]['link_1'] = 'REX_LINK_ID[1]';
$values[2] = rex_var::toArray('REX_VALUE[2]');
$values[2]['media_1'] = 'REX_MEDIA[2]';
$values[2]['link_1'] = 'REX_LINK_ID[2]';
foreach ($values as $value) {
echo $value['media_1'];
echo $value['h1'];
echo $value['text'];
echo $value['link_1'];
}
?>
vg Thomas
Re: mehr als 20 Values
Hey cool.
Danke Thomas!
Gruß Matthias
Danke Thomas!

Gruß Matthias