[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
mehr als 20 Values - REDAXO Forum
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/
Benutzeravatar
mgg
Beiträge: 54
Registriert: 3. Jul 2008, 11:21
Wohnort: Klosterneuburg
Kontaktdaten: Website

mehr als 20 Values

6. Nov 2009, 09:23

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;
}
?>
Lieben Gruß
Manfred Fröhlich

www.mgg.co.at

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

6. Nov 2009, 15:11

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

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; } ?>
Postsave-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; } ?>
Modul die Aktion Speichern und
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]; }?>" />
Ausgabe:

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]; } ?>
Das Modul jetzt einbinden und mal die 3 Felder ausfüllen und im Frontent mal schauen ob diese wieder Angezeigt werden.

Cheffchen

Benutzeravatar
mgg
Beiträge: 54
Registriert: 3. Jul 2008, 11:21
Wohnort: Klosterneuburg
Kontaktdaten: Website

7. Nov 2009, 09:50

Guten Morgen...im warsten Sinn des Wortes :lol:

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...
:lol:

Liebe Grüße
Manfred
Lieben Gruß
Manfred Fröhlich

www.mgg.co.at

MAZup!
Beiträge: 67
Registriert: 14. Okt 2010, 15:53

Re: mehr als 20 Values

7. Okt 2015, 11:48

Danke Cheffchen! :-)

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: mehr als 20 Values

7. Okt 2015, 12:26

Hej,

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

MAZup!
Beiträge: 67
Registriert: 14. Okt 2010, 15:53

Re: mehr als 20 Values

7. Okt 2015, 12:30

Hey cool.

Danke Thomas! :-)

Gruß Matthias

Zurück zu „Allgemeines [R4]“