anfuehrungszeichen escapen und eine variable...

Wie verwendet man Module oder Aktion und passt diese an.

anfuehrungszeichen escapen und eine variable...

Beitragvon hannamosca » 1. Aug 2008, 16:31

Hej ihr alle... ich bin am verzweifeln, weil ich weiss, das es nicht so schwer sein kann, aber ich schaff es nciht, eine korrekte syntax zu bekommen...

ich hab mein modul, das html und javascript befehle enthaelllt.
funktioniert prima.

ich hab es mit den redaxo-variablen gefuettert.
funktioniert prima...

... bis auf die letzte...

die variablen fuer die java befehle machen mir probleme und uebersteigen mein autodidaktischen copy-paste-php-kenntnisse... ich krieg das ganze thema mit dem escapen von den vielen verschiedenen anfuehrungszeichen nciht hin... nomale anfuehrungszeichen aus dem html ist kein problem, aber jetzt kommen noch die einfachen (') von dne javascript variablen dazu...

ich stell mal einfach das modul so wie ichs hab hier hin... der inputpart:

Projekt-ID:
<input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" /><br /><br />


<!--// START VISIBLE CONTENT -->

<!--// TTITEL -->
Projekttitel:
<input type="text" size="50" name="VALUE[2]" value="REX_VALUE[2]" /><br /><br />

<!--// IMAGE -->
Imagen:<br />
REX_MEDIA_BUTTON[1]
<?
if ("REX_FILE[1]" != "") {
echo "Vorschau:";
echo "<img src=".$REX['HTDOCS_PATH']."/files/REX_FILE[1]><br />";
}
?><br />


<!--// ALTTEXT -->
Texto alternativo:<br />
<input type="text" name="VALUE[3]" value="REX_VALUE[3]" size="80" class="inp100" />
<br /><br />



<!--// START HIDDEN CONTENT -->

<!--// BESCHREIBUNG -->
Texto:<br/>
<textarea name="VALUE[4]" class="inp100" cols="80" rows="10">REX_VALUE[4]</textarea>


und der output-part:
<!--// START VISIBLE CONTENT -->

<!--// AUFKLAPPMECHANISMUS -->
<div class="zeile" id="XXX" onMouseOver="invertRow('XXX');" onMouseOut="normalizeRow('XXX');" onClick="blocking('XXX_large'); return true;">

<?php

if(OOAddon::isAvailable('textile'))
{
$file = "";
if ("REX_FILE[1]" != "") $file = '
<img src="'.$REX['HTDOCS_PATH'].'files/REX_FILE[1]" width="700px" height="200px" title="'."REX_VALUE[3]".'" alt="'."REX_VALUE[3]".'" />';

print $file;
}
else
{
echo rex_warning('Dieses Modul benoetigt das "textile" Addon!');
}
?>

<!--// TITEL -->
<h3>REX_VALUE[2]</h3>
</div>

<!--// END VISIBLE CONTENT -->


<!--// START HIDDEN CONTENT -->

<div class="dropdown" id="XXX_large"><p>
<?php
$text =<<< EOT
REX_HTML_VALUE[4]
EOT;

if (trim($text) != "")
{
$textile = new Textile;
$text = $textile->TextileThis($text);
}
echo $text;

?>
</p></div>

<!--// END HIDDEN CONTENT -->


problem ist nun: in dem out-put modul soll das XXX jeweils durch die Projekt-ID (also das REX_VALUE[1]) ersetzt werden....

waer fabuloes, wenn mir jemand helfen koennte :)

dankeschön!

hanna
hannamosca
 
Beiträge: 2
Registriert: 1. Aug 2008, 16:09

Beitragvon zehbaeh » 1. Aug 2008, 18:26

So wie ich das sehe kannst Du das direkt ersetzen/einsetzen.
Also alle Stellen an denen jetzt XXXX steht, durch REX_VALUE[1] ersetzen.
Beispiel für die Zeile mit den JS-Eventhandlern:
Code: Alles auswählen
<div class="zeile" id="REX_VALUE[1]"
onMouseOver="invertRow('REX_VALUE[1]');" onMouseOut="normalizeRow('REX_VALUE[1]');"
onClick="blocking('REX_VALUE[1]_large'); return true;">

Am besten erstellst Du dir noch eine "Action" die den Wert von REX_VALUE[1] respektive $REX_ACTION['VALUE']['1'] auf einen gültigen Bezeichner prüft. Ansonsten könnten durch Benutzereingaben bei diesem direkten Einsetzen Fehler in der Ausgabe entstehen.
Prüfen auf einen gültigen in einer Action/Aktion Bezeichner zb.:
Code: Alles auswählen
$valid = preg_match('~[_A-Za-z]+[_A-Za-z0-9\-]*~', $REX_ACTION['VALUE']['1']);
if(!$valid)
{
  $REX_ACTION['MSG'] .= 'Bitte einen gültigen Projekt Bezeichner angeben';
}
$REX_ACTION['SAVE'] = $valid;

ggf. weitere Werte ebenfalls prüfen zb. den Titel (REX_VALUE[2]).

PS: Die erlaubten Zeichnen eines Bezeichners wären noch zu prüfen. Da bin ich mir im Moment nicht ganz sicher. Siehe X/HTML-JS-Doku.

PS-2: Siehe auch die Informationen im Wiki zu "Actions"
zehbaeh
 
Beiträge: 563
Registriert: 17. Okt 2006, 10:52
Wohnort: Solingen

Beitragvon hannamosca » 4. Aug 2008, 11:52

schoen wenn man sich das leben selbst schwer macht... :lol: dankeschoen! funktioniert. ganz ohne um fuenf ecken zu denken!

tausend dank!
hannamosca
 
Beiträge: 2
Registriert: 1. Aug 2008, 16:09


Zurück zu Module/Aktionen [R4]

Wer ist online?

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