REX_VALUE erweitern Problem bei Block übernehmen

Wie verwendet man Module oder Aktion und passt diese an.

REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon skinnychubaka » 21. Jul 2010, 12:25

Guten Tag Redaxo Gemeinde ,

folgendes Problem in REDAXO 4.3, wenn ich das VALUE erweitere mit rexnames macht er soweit alles.
Nur wenn ich den Block übernehmen klicke (also er bleibt offen) hollt er nicht die Werte aus dem rexname Array, zwar speichert er sie in Datenbank, aber in der Modul Ansicht legt er sie nicht in input.
Beim nochmalen Block speichern geht alles

danke für eure Anworten, im vorraus.
skinnychubaka
 
Beiträge: 24
Registriert: 25. Jun 2010, 10:19

Beitragvon skinnychubaka » 22. Jul 2010, 14:04

Hallo,

wenn es da rüber schon einen eintrag gibt sagt mir bitte bescheid, dann hab ich es über sehen oder ich das problem schlecht beschrieben hab. ansonsten weis ich nicht weiter.
skinnychubaka
 
Beiträge: 24
Registriert: 25. Jun 2010, 10:19

Beitragvon Cheffchen » 22. Jul 2010, 15:16

Ich habe mich an dein Beitrag schon ran gehangen denn mir ist das auch vor kurzen aufgefallen bei ein Modul das Rexname braucht das da was nicht stimmt, hatte bloss noch keine Zeit genau zu testen wann das passiert und wann nicht.

Ein anderen Beitrag gab es wohl noch nicht, ist mir nicht aufgefallen.

Cheffchen
Benutzeravatar
Cheffchen
 
Beiträge: 1056
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

Beitragvon skinnychubaka » 22. Jul 2010, 20:44

danke sehr für dein interesse, vielleicht beteiligen sich noch mehr leute am thema.
skinnychubaka
 
Beiträge: 24
Registriert: 25. Jun 2010, 10:19

Checkboxen nicht gesetzt

Beitragvon ThomasKühne » 23. Aug 2010, 13:13

Hallo Leute,

bei mir tritt bei redaxo 4.3.1 das gleiche Problem auf. Es scheint, dass bei Übernehmen die Pre-View-Action nicht ausgeführt wird.



Vielen Dank für Tipps/Hilfe.
ThomasKühne
 
Beiträge: 56
Registriert: 8. Dez 2006, 18:58

Beitragvon cruuzer » 31. Aug 2010, 10:35

Das Problem betrifft mich auch.

Die Daten liegen jedoch im Array $REX['ACTION']['VALUE'] vor.

Wenn Ihr die Daten z.B. in den REX_VALUE[9] speichern wollt, hilft dieser Workaround, dass die Daten nicht beim Klicken des "Block Übernehmen" Buttons verloren gehen.

Code: Alles auswählen
<?php

$RV9 = 'REX_VALUE[9]';

if ($RV9 == '' && isset($REX['ACTION']['VALUE'][9]))
  $RV9 = $REX['ACTION']['VALUE'][9];

?>


Für andere REX_VALUE[] sind die Daten entsprechend anzupassen.

Die Ausgabe erfolgt dann wie bei einer normalen PHP Variable..
cruuzer
 
Beiträge: 6
Registriert: 31. Aug 2010, 10:20

Beitragvon iceman-fx » 19. Okt 2010, 11:33

Kann ich auch bestätigen.
Habe jetzt 2h hin und her gesucht, aber keine andere Lösung als die hier beschriebene gefunden.

Es scheint, als ob die betreffende Rex-Variable einfach nach dem Ausführen der Action geleert wird und zwar nachdem diese aus der DB geholt wurde.

Alle anderen Rex-Values fnktionieren, sofern diese nicht über die Action laufen.
iceman-fx
 
Beiträge: 373
Registriert: 13. Feb 2007, 15:16
Wohnort: Sachsen ;-)

Beitragvon Xong » 19. Okt 2010, 11:54

Ich habe hier eine Rexname-Action, die unter 4.2 läuft. Die ist selbst programmiert. Einfach mal probieren, ob die auch mit 4.3 geht:
Code: Alles auswählen
<?php
$rexname = rex_request("rexname","array");
if ( is_array($rexname) ) {
  $REX_ACTION['VALUE'][20] = serialize($rexname);
} else {
  $rexname = unserialize($REX_ACTION['VALUE'][20]);
}
?>
Einzutragen als Presave und Postsave jeweils mit den Events ADD und EDIT.

Durch diese Aktion wird die Redaxo-Variable REX_VALUE[20] belegt und darf in Modulen nicht genutzt werden.
Ansonsten sind die Variablen wie gewohnt über $rexname['INDEX'] abrufbar.
Es funktionieren auch Strings als Arrayindex.

Beispiel:
Code: Alles auswählen
<input type="text" name="rexname[name]" value="<?php echo $rexname['name']; ?>" />


Außerdem können auch Arrays genutzt werden:
Code: Alles auswählen
<input type="text" name="rexname[kategorie][0]" value="<?php echo $rexname['kategorie'][0]; ?>" />
<input type="text" name="rexname[kategorie][1]" value="<?php echo $rexname['kategorie'][1]; ?>" />
<input type="text" name="rexname[kategorie][2]" value="<?php echo $rexname['kategorie'][2]; ?>" />


Ich habe jetzt keine Zeit alles zu überprüfen. Wenn´s Probleme gibt, einfach nochmal melden.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1555
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Thomas.Blum » 19. Okt 2010, 15:10

Hej,

als kleiner Hinweis. Es gibt momentan REX_VALUE[1] bis REX_VALUE[20].

Wenn ihr mehr als 20 Felder braucht, solltet ihr eventuell das Modul einmal überdenken.

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4649
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon Ledaro » 31. Aug 2011, 13:54

Ich habe das Problem mit dem Block Übernehmen - Bug für mich lösen können, vllt hilft es euch auch weiter! (Redaxo 4.3.2)

Einfach in der Datei class.rex_var_value.inc.php in /redaxo/include/functions Die Funktion ab zeile 20 mit den folgenden 3 Zeilen Code erweitern:

Code: Alles auswählen
   if(is_array(rex_request('rexname', 'array'))) {
     $values[20] = serialize(rex_request('rexname', 'array'));
   }


Die Funktion sieht dann wie folgt aus:

Code: Alles auswählen
  /*public*/ function getACRequestValues($REX_ACTION)
  {
    $values = rex_request('VALUE', 'array');
   if(is_array(rex_request('rexname', 'array'))) {
     $values[20] = serialize(rex_request('rexname', 'array'));
   }

    for ($i = 1; $i < 21; $i++)
    {
      $value = isset($values[$i]) ? stripslashes($values[$i]) : '';

      $REX_ACTION['VALUE'][$i] = $value;
    }
    $REX_ACTION['PHP'] = stripslashes(rex_request('INPUT_PHP', 'string'));
    $REX_ACTION['HTML'] = $this->stripPHP(stripslashes(rex_request('INPUT_HTML', 'string')));

    return $REX_ACTION;
  }
Ledaro
 
Beiträge: 1
Registriert: 31. Aug 2011, 13:36

Re: REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon darwin » 13. Jan 2012, 09:38

Hi@all,
ich hab jetzt auch mal 'n Problem mit den rexnames.
- Testumgebung Lokal (Mampp, PHP 5.3.6)
- Redaxo CMS 432 (download version)

Die ACTION von XONG hab ich in Presave ADD/EDIT und Postsave ADD/EDIT reingepackt.
Im Modul steht folgendes
Eingabe:
Code: Alles auswählen
<?php
global $rexname;
// $rexname = split("~~","REX_VALUE[20]");
// $rexname = unserialize('REX_VALUE[20]');
?>
<input type="text" name="rexname[name]" value="<?php echo $rexname['name']; ?>" />

Ausgabe:
Code: Alles auswählen
<?php
global $rexname;
// $rexname = split("~~","REX_VALUE[20]");
$rexname = unserialize('REX_VALUE[20]');
print_r($rexname);?>


Den Bugfix von Ledaro hab ich testweise auch in der class.rex_var_value.inc.php (/classes/values/)
mit reingepackt. Leider ohne Wirkung.
Die Eingabe wird beim SPEICHERN des Moduls übernommen. Wenn man jedoch "ÜBERNEHMEN" bzw. das Module EDITIEREN möchte sind die Eingaben weg => Array(=leer) :cry: .

Hat evtl jemand schon eine Lösung dafür?
Wäre klasse wenn mir hier jemand bitte helfen könnte.

Danke schonmal.
grz. Chris
Benutzeravatar
darwin
 
Beiträge: 1232
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Re: REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon Satyr » 13. Jan 2012, 12:03

Hallo,
im Redaxo 4.2.x ist alles OK!
Im Redaxo 4.3.x dagegen muß ich immer ein Trick anwenden, wahrscheinlich wird es auch euch helfen
Workaround:
<?php
/* fuer Moduleingabe */
$vs = rex_sql::factory();
$vs->setQuery('select value20 from '.$REX['TABLE_PREFIX'].'article_slice where id=REX_SLICE_ID');
if ($vs->getRows()>0)
$vsr= $vs->getRow();
$rexname = unserialize($vsr['value20']);
?>

gruß
Adam
Benutzeravatar
Satyr
 
Beiträge: 44
Registriert: 4. Jul 2010, 16:02
Wohnort: Wiesbaden

Re: REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon darwin » 13. Jan 2012, 12:47

Perfekt. Danke.
grz. Chris
Benutzeravatar
darwin
 
Beiträge: 1232
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Re: REX_VALUE erweitern Problem bei Block übernehmen

Beitragvon Satyr » 14. Jan 2012, 22:23

Hallo an Moderatoren,
wie werden wir die Spammer los?
Lassen sich Benutzerkonten von Mitglieder, die sich an Forum Regel nicht halten blokiert oder gelöscht werden?

gruß
Adam
Benutzeravatar
Satyr
 
Beiträge: 44
Registriert: 4. Jul 2010, 16:02
Wohnort: Wiesbaden


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste