ich habe ein Modul geschrieben, das dem User eine Tabelle in einer bestimmten Form vorgibt. Dabei kann er einzelne Zeilen auch zu Überschriften abändern. Aufgrund meiner sehr rudimentären Programmierkenntnisse ist das Ganze zwar noch unelegant gelöst, aber funktionsfähig. Es hat nur den Nachteil, dass Redaxo nicht mitmacht, wenn ich das Modul mehr als einmal im selben Artikel verwende. Hat jemand einen Idee woran das liegen kann?
Hier der Code:
Moduleingabe:
- Code: Alles auswählen
<?php
$RV1 = 'REX_VALUE[1]';
if ($RV1 == '' && isset($REX['ACTION']['VALUE'][1]))
$RV1 = $REX['ACTION']['VALUE'][1];
$RV2 = 'REX_VALUE[2]';
if ($RV2 == '' && isset($REX['ACTION']['VALUE'][2]))
$RV2 = $REX['ACTION']['VALUE'][2];
$RV3 = 'REX_VALUE[3]';
if ($RV3 == '' && isset($REX['ACTION']['VALUE'][3]))
$RV3 = $REX['ACTION']['VALUE'][3];
$RV4 = 'REX_VALUE[4]';
if ($RV4 == '' && isset($REX['ACTION']['VALUE'][4]))
$RV4 = $REX['ACTION']['VALUE'][4];
$RV5 = 'REX_VALUE[5]';
if ($RV5 == '' && isset($REX['ACTION']['VALUE'][5]))
$RV5 = $REX['ACTION']['VALUE'][5];
$RV6 = 'REX_VALUE[6]';
if ($RV6 == '' && isset($REX['ACTION']['VALUE'][6]))
$RV6 = $REX['ACTION']['VALUE'][6];
$RV7 = 'REX_VALUE[7]';
if ($RV7 == '' && isset($REX['ACTION']['VALUE'][7]))
$RV7 = $REX['ACTION']['VALUE'][7];
$RV8 = 'REX_VALUE[8]';
if ($RV8 == '' && isset($REX['ACTION']['VALUE'][8]))
$RV8 = $REX['ACTION']['VALUE'][8];
$rexname1 = split("~~",$RV1); $GLOBALS['rexname1'] = $rexname1;
$rexname2 = split("~~",$RV2); $GLOBALS['rexname2'] = $rexname2;
$rexname3 = split("~~",$RV3); $GLOBALS['rexname3'] = $rexname3;
$rexname4 = split("~~",$RV4); $GLOBALS['rexname4'] = $rexname4;
$rexname5 = split("~~",$RV5); $GLOBALS['rexname5'] = $rexname5;
$rexname6 = split("~~",$RV6); $GLOBALS['rexname6'] = $rexname6;
$rexname7 = split("~~",$RV7); $GLOBALS['rexname7'] = $rexname7;
$rexname8 = split("~~",$RV8); $GLOBALS['rexname8'] = $rexname8;
echo "<script type=\"text/javascript\">\n";
echo "<!--\n";
echo "var rexname6 = new Array();\n";
foreach ($rexname6 as $key => $wert)
{
echo "rexname6['$key'] = '$wert';\n";
}
echo "//-->\n";
echo "</script>\n";
for ($index = 0; $index < 99; $index++) {
if($rexname8[$index] == '') {
print '
<div class="zeile" id="'.$index.'"><div style="float:left;"><table class="zeile">
<tr>
<td><strong>Platz:</strong></td>
<td><strong>Vorname:</strong></td>
<td><strong>Name:</strong></td>
<td><strong>Vereinsname:</strong></td>
<td style="padding-right:5px;"><strong>Ringe:</strong></td>
<td style="padding-right:5px;"><strong>10er gesamt:</strong></td>
<td><strong>10er innen:</strong></td>
</tr>
<tr>
<td style="padding-right:5px;"><input type="text" class="platz" size="2" name="rexname1['. $index .']" value="'. $rexname1[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="vorname" size="15" name="rexname2['. $index .']" value="'. $rexname2[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="name" size="15" name="rexname3['. $index .']" value="'. $rexname3[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="vereinsname" size="30" name="rexname4['. $index .']" value="'. $rexname4[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="ringe" size="3" name="rexname5['. $index .']" value="'. $rexname5[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="10gesamt" size="3" name="rexname6['. $index .']" value="'. $rexname6[$index] .'" /></td>
<td style="padding-right:5px;"><input type="text" class="10innen" size="3" name="rexname7['. $index .']" value="'. $rexname7[$index] .'" /></td>
</tr>
</table></div><div style="float:left;padding-left:10px;padding-top:16px;" href="#" onclick="makeHeader('.$index.')";><img src="./media/file_view.gif" /></div></div>';
} else {
print '<div class="zeile" id="'.$index.'"><div style="float:left;"><strong>Überschrift: </strong><br /><input class="header" type="text" size="123" name="rexname8['. $index .']" value="'. $rexname8[$index] .'" /></div><div style="float:left;padding-left:24px;padding-top:16px;" href="#" onclick="makeRow('.$index.')";><img src="./media/file_view.gif" /></div></div>';
}
}
?>
<script language="javascript">
function makeHeader(index)
{
document.getElementById(index).innerHTML =
'<div class="zeile" id="'+index+'"><div style="float:left;"><strong>Überschrift: </strong><br /><input class="header" type="text" size="123" name="rexname8['+index+']" value="" /></div><div style="float:left;padding-left:24px;padding-top:16px;" href="#" onclick="makeRow('+index+')";><img src="./media/file_view.gif" /></div></div>';
}
function makeRow(index)
{
document.getElementById(index).innerHTML =
'<div class="zeile" id="'+index+'"><div style="float:left;"><table class="zeile"><tr><td><strong>Platz:</strong></td><td><strong>Vorname</strong></td><td><strong>Name:</strong></td><td><strong>Vereinsname:</strong></td><td style="padding-right:5px;"><strong>Ringe:</strong></td><td style="padding-right:5px;"><strong>10er gesamt:</strong></td><td><strong>10er innen:</strong></td></tr><tr><td style="padding-right:5px;"><input type="text" class="platz" size="2" name="rexname1['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="vorname" size="15" name="rexname2['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="name" size="15" name="rexname3['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="vereinsname" size="30" name="rexname4['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="ringe" size="3" name="rexname5['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="10gesamt" size="3" name="rexname6['+index+']" value="" /></td><td style="padding-right:5px;"><input type="text" class="10innen" size="3" name="rexname7['+index+']" value="" /></td></tr></table></div><div style="float:left;padding-left:10px;padding-top:16px;" href="#" onclick="makeHeader('+index+')";><img src="./media/file_view.gif" /></div></div>';
}
</script>
Modulausgabe:
- Code: Alles auswählen
<?php
function array_trim($arr) {
$empty = "1";
for ($i = count($arr); $i > 0; $i--) {
if ($arr[$i] != "") {
$arr2[$i] = $arr[$i];
$empty = "0";
}
if ($arr[$i] == "" && $empty == "0") {
$arr2[$i] = $arr[$i];
}
} return $arr2;
}
$rexname1 = split("~~","REX_VALUE[1]"); $GLOBALS['rexname1'] = $rexname1;$rexname1 = array_trim($rexname1);
$rexname2 = split("~~","REX_VALUE[2]"); $GLOBALS['rexname2'] = $rexname2;
$rexname3 = split("~~","REX_VALUE[3]"); $GLOBALS['rexname3'] = $rexname3;
$rexname4 = split("~~","REX_VALUE[4]"); $GLOBALS['rexname4'] = $rexname4;
$rexname5 = split("~~","REX_VALUE[5]"); $GLOBALS['rexname5'] = $rexname5;
$rexname6 = split("~~","REX_VALUE[6]"); $GLOBALS['rexname6'] = $rexname6;
$rexname7 = split("~~","REX_VALUE[7]"); $GLOBALS['rexname7'] = $rexname7;
$rexname8 = split("~~","REX_VALUE[8]"); $GLOBALS['rexname8'] = $rexname8;
$amount = count($rexname1) + 1;
for ($index = 0; $index < $amount; $index++) {
if($rexname8[$index] == "") {
print '<table id="zeile">
<tr>
<td width="100px">'.$rexname1[$index].'</td>
<td width="100px">'.$rexname2[$index].'</td>
<td width="250px">'.$rexname3[$index].'</td>
<td width="250px">'.$rexname4[$index].'</td>
<td width="250px">'.$rexname5[$index].'</td>
<td width="250px">'.$rexname6[$index].'</td>
<td width="250px">'.$rexname7[$index].'</td>
</tr>
</table>';
} else {
print '<h2>'.$rexname8[$index].'</h2>';
}
}
?>
Aktion (Presave[ADD/EDIT] / Postsave[ADD/EDIT]):
- Code: Alles auswählen
<?php
$rexname1 = rex_request("rexname1","array");
$newname1 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname1[$c])) { $newname1 .= $rexname1[$c] . '~~';
} else {
$newname1 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') { $rexname1 = split('~~', $REX_ACTION['VALUE'][1]);
} else {
$REX_ACTION['VALUE'][1] = $newname1; }
$rexname2 = rex_request("rexname2","array");
$newname2 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname2[$c])) { $newname2 .= $rexname2[$c] . '~~';
} else {
$newname2 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][2]) and $REX_ACTION['VALUE'][2] != '') { $rexname2 = split('~~', $REX_ACTION['VALUE'][2]);
} else {
$REX_ACTION['VALUE'][2] = $newname2; }
$rexname3 = rex_request("rexname3","array");
$newname3 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname3[$c])) { $newname3 .= $rexname3[$c] . '~~';
} else {
$newname3 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][3]) and $REX_ACTION['VALUE'][3] != '') { $rexname3 = split('~~', $REX_ACTION['VALUE'][3]);
} else {
$REX_ACTION['VALUE'][3] = $newname3; }
$rexname4 = rex_request("rexname4","array");
$newname4 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname4[$c])) { $newname4 .= $rexname4[$c] . '~~';
} else {
$newname4 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][4]) and $REX_ACTION['VALUE'][4] != '') { $rexname4 = split('~~', $REX_ACTION['VALUE'][4]);
} else {
$REX_ACTION['VALUE'][4] = $newname4; }
$rexname5 = rex_request("rexname5","array");
$newname5 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname5[$c])) { $newname5 .= $rexname5[$c] . '~~';
} else {
$newname5 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][5]) and $REX_ACTION['VALUE'][5] != '') { $rexname5 = split('~~', $REX_ACTION['VALUE'][5]);
} else {
$REX_ACTION['VALUE'][5] = $newname5; }
$rexname6 = rex_request("rexname6","array");
$newname6 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname6[$c])) { $newname6 .= $rexname6[$c] . '~~';
} else {
$newname6 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][6]) and $REX_ACTION['VALUE'][6] != '') { $rexname6 = split('~~', $REX_ACTION['VALUE'][6]);
} else {
$REX_ACTION['VALUE'][6] = $newname6; }
$rexname7 = rex_request("rexname7","array");
$newname7 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname7[$c])) { $newname7 .= $rexname7[$c] . '~~';
} else {
$newname7 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][7]) and $REX_ACTION['VALUE'][7] != '') { $rexname7 = split('~~', $REX_ACTION['VALUE'][7]);
} else {
$REX_ACTION['VALUE'][7] = $newname7; }
$rexname8 = rex_request("rexname8","array");
$newname8 = "";
for ( $c = 0; $c < 99; $c++ ) { if (isset($rexname8[$c])) { $newname8 .= $rexname8[$c] . '~~';
} else {
$newname8 .= '~~'; } } if ( isset($REX_ACTION['VALUE'][8]) and $REX_ACTION['VALUE'][8] != '') { $rexname8 = split('~~', $REX_ACTION['VALUE'][8]);
} else {
$REX_ACTION['VALUE'][8] = $newname8; }
?>

Määääääääääääääääääääääääh!