Files
4G/wfl_plugins/wfl_plugin_positionsdaten.php

1278 lines
36 KiB
PHP
Executable File

<?php
@session_start();
if ( isset( $_GET[ "mandant_name" ] ) )
{
$mandant_name = $_GET[ "mandant_name" ];
}
if ( isset( $_GET[ "workflow_name" ] ) )
{
$workflow_name = $_GET[ "workflow_name" ];
}
if ( isset( $_GET[ "maske_name" ] ) )
{
$maske_name = $_GET[ "maske_name" ];
}
if ( isset( $_GET[ "maske_pos" ] ) )
{
$maske_pos = $_GET[ "maske_pos" ];
}
if ( isset( $_GET[ "cmd" ] ) )
{
$cmd = $_GET[ "cmd" ];
}
if ( isset( $_GET[ "aufgerufen" ] ) )
{
$aufgerufen = $_GET[ "aufgerufen" ];
}
if ( isset( $_POST[ "mandant_name" ] ) )
{
$mandant_name = $_POST[ "mandant_name" ];
}
if ( isset( $_POST[ "workflow_name" ] ) )
{
$workflow_name = $_POST[ "workflow_name" ];
}
if ( isset( $_POST[ "maske_name" ] ) )
{
$maske_name = $_POST[ "maske_name" ];
}
if ( isset( $_POST[ "maske_pos" ] ) )
{
$maske_pos = $_POST[ "maske_pos" ];
}
if ( isset( $_POST[ "cmd" ] ) )
{
$cmd = $_POST[ "cmd" ];
}
if ( isset( $_POST[ "aufgerufen" ] ) )
{
$aufgerufen = $_POST[ "aufgerufen" ];
}
// Die Workflow-Plugins sollen Maskenteile der fertigen Maske bereitstellen.
/*
Der Rahmen eines Plugins sieht so aus, dass sie auf das cmd=konfig mit einer Ausgabe ihrer Konfigurationsmaske reagieren müssen. Wird das Plugin also folgendermaßen aufgerufen:
$( "#ergebnis" ).load( "wfl_plugin_name.php?mandant_name=XXX&workflow_name=YYY&maske_name=ZZZ&maske_pos=02&cmd=konfig" );
muss das Plugin mit einer Konfigurationsmaske (die ein Formular enthält) antworten, also beispielsweise:
<h2>Konfiguration des Plugins wfl_plugin_name</h2>
<form name='wfl_plugin_name_konfig' action='wfl_plugin_name.php' ... >
<input type='hidden' name='mandant_name' value='XXX' />
<input type='hidden' name='workflow_name' value='YYY' />
<input type='hidden' name='maske_name' value='ZZZ' />
<input type='hidden' name='maske_pos' value='02' />
<input type='hidden' name='cmd' value='save_konfig' />
<input type='hidden' name='aufgerufen' value='aufgerufen' />
<table>
<tr><td>Konfiguration 1</td><td><input type='text' name='alpha_01' /></td></tr>
...
<input type='submit' value='OK' />
</form>
Logischerweise muss es auch die Antwort, d.h. das Abschicken des Formulars angemessen bearbeiten können. Das bedeutet, dass es die Eingaben in der Tabelle ca_wfl_maske_einstellungen zur späteren Verwendung speichern soll und danach die Seite "Masken-Detailkonfiguration" aufrufen soll.
/////////////////////////
Die eigentliche Arbeit soll dann von einer Arbeitsfunktion erledigt werden. Diese muss zwingend so heißen wie das Plugin (ohne die Endung .php).
Ein Plugin wfl_plugin_name.php muss also eine Funktion
wfl_plugin_name( $mandant_name, $maske, $maske_pos, $dokument )
{
...
}
bereitstellen, welche als Rückgabewert dann die Ausgabe des Plugins (also fertiges HTML) generiert. Diese Funktion bekommt in den Parametern $maske und $dokument das Ergebnis der Funktionen liefere_maskeninformationen und liefere_dokumentinformationen bereitgestellt und muss diese zusammen mit seiner Konfiguration aus der Tabelle ca_wfl_maske_einstellungen zu einem HTML-Output zusammenführen.
*/
switch( $cmd )
{
case "konfig":
include_once( "../f_admin.php" );
include_once( "../f_wfl.php" );
include_once( "../w_fkt.php" );
include_once( "../su_web.php" );
$html_output = wfl_plugin_positionsdaten_konfig( $mandant_name, $workflow_name, $maske_name, $maske_pos, $aufgerufen, $_POST );
echo $html_output;
break;
default:
include_once( "f_admin.php" );
include_once( "f_wfl.php" );
include_once( "w_fkt.php" );
include_once( "su_web.php" );
break;
}
//////////////////////
// Konfigurationsfunktion
//////////////////////
function wfl_plugin_positionsdaten_konfig( $mandant_name, $workflow_name, $maske_name, $maske_pos, $aufgerufen, $POST )
{
$workflow = liefere_workflowinformationen( $mandant_name, $workflow_name );
$maske = liefere_maskeninformationen( $mandant_name, $workflow_name, $maske_name );
if ( $aufgerufen == "aufgerufen" )
{
// Verarbeitung der Konfigurationsmaske
//////////////////////////////////////////////////////////////
/*
Einträge:
e_01 e_02 e_03 e_04 e_05 e_06 e_07 e_08
base benutze_tab_reiter ja
attrib <Attribut-Name> <DB-Feld> sichtbar ja/nein änderbar ja/nein Pflichtfeld ja/nein Reihenfolge Tab-Reiter
*/
//xlog( 4, "POST ".json_encode( $POST ) );
$STATEMENT = "delete from ca_wfl_maske_einstellungen where workflow_id = ".$workflow[ 0 ]." and maske_id = ".$maske[ 0 ]." and plugin = 'wfl_plugin_positionsdaten.php' and pos = '".$maske_pos."'";
xdb( $STATEMENT );
/*
{
"mandant_name":"Gaia",
"workflow_name":"Checkup",
"workflow_id":"1",
"maske_name":"sachliche Pr\u00fcfung",
"maske_id":"1",
"maske_pos":"02",
"cmd":"konfig",
"aufgerufen":"aufgerufen",
"wertemengen_darstellung":"standard",
"div_hoehe":"",
"p_alpha_01":{"sichtbar":"ja","reihenfolge":"01","wertemenge":"","name":"Batman","db_feld":"p_alpha_01"},
"p_datum_01":{"sichtbar":"ja","reihenfolge":"02","wertemenge":"","name":"Super-D","db_feld":"p_datum_01"},
"p_geld_01":{"sichtbar":"ja","aenderbar":"ja","reihenfolge":"06","wertemenge":"","name":"Money-Man","db_feld":"p_geld_01"},
"p_num_01":{"aenderbar":"ja","pflicht":"ja","reihenfolge":"08","wertemenge":"","name":"Graf Zahl","db_feld":"p_num_01"},
"p_alpha_02":{"aenderbar":"ja","pflicht":"ja","reihenfolge":"10","wertemenge":"galerie_bildgroesse","name":"Alpha-Tier 2","db_feld":"p_alpha_02"},
"p_alpha_04":{"reihenfolge":"15","wertemenge":"","name":"Tiger","db_feld":"p_alpha_04"}
}
*/
$mandant_name = $POST[ "mandant_name" ];
$workflow_name = $POST[ "workflow_name" ];
$workflow_id = $POST[ "workflow_id" ];
$maske_name = $POST[ "maske_name" ];
$maske_id = $POST[ "maske_id" ];
$maske_pos = $POST[ "maske_pos" ];
$div_hoehe = $POST[ "div_hoehe" ];
$tab_hoehe = $POST[ "tab_hoehe" ];
$tab_suche = $POST[ "tab_suche" ];
//$wertemengen_darstellung = $POST[ "wertemengen_darstellung" ];
$wertemengen_darstellung = "standard";
if ( $POST[ "titel_anzeigen" ] == "ja" )
{
$titel_anzeigen = "ja";
}
else
{
$titel_anzeigen = "nein";
}
if ( $POST[ "zeilen_hinzufuegen" ] == "ja" )
{
$zeilen_hinzufuegen = "ja";
}
else
{
$zeilen_hinzufuegen = "nein";
}
if ( $POST[ "zeilen_loeschen" ] == "ja" )
{
$zeilen_loeschen = "ja";
}
else
{
$zeilen_loeschen = "nein";
}
if ( $POST[ "tab_suche" ] == "ja" )
{
$tab_suche = "ja";
}
else
{
$tab_suche = "nein";
}
if ( $POST[ "tab_erlaube_verkleinern" ] == "ja" )
{
$tab_erlaube_verkleinern = "ja";
}
else
{
$tab_erlaube_verkleinern = "nein";
}
$STATEMENT = "insert into ca_wfl_maske_einstellungen ( workflow_id, maske_id, pos, plugin, e_01, e_02, e_03, e_04, e_05, e_06, e_07, e_08, e_09 ) values ( ".$workflow_id.", ".$maske_id.", '".$maske_pos."', 'wfl_plugin_positionsdaten.php', 'base', '".$zeilen_hinzufuegen."', '".$zeilen_loeschen."', '".$tab_hoehe."', '".$tab_suche."', '".$div_hoehe."', '".$wertemengen_darstellung."', '".$titel_anzeigen."', '".$tab_erlaube_verkleinern."' )";
xdb( $STATEMENT );
foreach( $POST as $feld=>$attrib_konfig )
{
if ( is_array( $attrib_konfig ) )
{
//xlog( 4, $feld." attrib ".json_encode( $attrib_konfig ) );
//alpha_01 attrib {"sichtbar":"ja","reihenfolge":"1","tab_reiter":"sdgf"}
if ( $attrib_konfig[ "sichtbar" ] == "ja" )
{
$sichtbar = "ja";
}
else
{
$sichtbar = "nein";
}
if ( $attrib_konfig[ "aenderbar" ] == "ja" )
{
$aenderbar = "ja";
}
else
{
$aenderbar = "nein";
}
if ( $attrib_konfig[ "pflicht" ] == "ja" )
{
$pflicht = "ja";
}
else
{
$pflicht = "nein";
}
$name = $attrib_konfig[ "name" ];
$db_feld = $attrib_konfig[ "db_feld" ];
$reihenfolge = $attrib_konfig[ "reihenfolge" ];
$wertemenge = $attrib_konfig[ "wertemenge" ];
$td_breite = $attrib_konfig[ "td_breite" ];
$elem_breite = $attrib_konfig[ "elem_breite" ];
$STATEMENT = "insert into ca_wfl_maske_einstellungen ( workflow_id, maske_id, pos, plugin, e_01, e_02, e_03, e_04, e_05, e_06, e_07, e_08, e_09, e_10 ) values ( ".$workflow_id.", ".$maske_id.", '".$maske_pos."', 'wfl_plugin_positionsdaten.php', 'attrib', '".$name."', '".$db_feld."', '".$sichtbar."', '".$aenderbar."', '".$pflicht."', '".$reihenfolge."', '".$td_breite."', '".$elem_breite."', '".$wertemenge."' )";
//xlog( 4, $STATEMENT );
xdb( $STATEMENT );
}
}
/*
$STATEMENT = "insert into ca_wfl_maske_einstellungen ( workflow_id, maske_id, plugin, pos, e_1 ) values ( ".$workflow[ 0 ].", ".$maske[ 0 ].", 'wfl_plugin_debug.php', '".$maske_pos."', '".$alpha_01."' )";
xdb( $STATEMENT );
*/
//////////////////////////////////////////////////////////////
// gespeichert? Dann ist alles gut - es geht zurück zur rufenden Maske.
$_SESSION[ "wfl" ] = "detail_0";
$_SESSION[ "wfl_meld" ] = "Konfiguration gespeichert.";
header( "Location: /ca/w_wfl.php" );
exit;
}
else
{
$STATEMENT = "select workflow_id, maske_id, pos, plugin, e_01, e_02, e_03, e_04, e_05, e_06, e_07, e_08, e_09, e_10, e_11, e_12, e_13, e_14, e_15 from ca_wfl_maske_einstellungen where workflow_id = ".$workflow[ 0 ]." and maske_id = ".$maske[ 0 ]." and plugin = 'wfl_plugin_positionsdaten.php' and pos = '".$maske_pos."' order by e_07";
//xlog( 4, $STATEMENT );
/*
Einträge:
e_1 e_2 e_3 e_4 e_5 e_6 e_7 e_8
base benutze_tab_reiter ja
attrib <Attribut-Name> <DB-Feld> sichtbar ja/nein änderbar ja/nein Pflichtfeld ja/nein Reihenfolge Tab-Reiter
*/
$ergebnis = xdb( $STATEMENT );
//xlog( 4, json_encode( $ergebnis ) );
if ( $ergebnis[ 0 ] > 0 )
{
foreach ( $ergebnis[ 1 ] as $konfig_option )
{
// verarbeiten
switch ( $konfig_option[ "e_01" ] )
{
case "base":
$div_hoehe = $konfig_option[ "e_06" ];
$wertemengen_darstellung = $konfig_option[ "e_07" ];
$titel_anzeigen = $konfig_option[ "e_08" ];
$zeilen_hinzufuegen = $konfig_option[ "e_02" ];
$zeilen_loeschen = $konfig_option[ "e_03" ];
$tab_hoehe = $konfig_option[ "e_04" ];
$tab_suche = $konfig_option[ "e_05" ];
$tab_erlaube_verkleinern = $konfig_option[ "e_09" ];
switch( $wertemengen_darstellung )
{
case "chosen":
$wd_1 = " selected ";
$wd_2 = "";
break;
case "standard":
$wd_1 = "";
$wd_2 = " selected ";
break;
}
if ( strlen( $tab_hoehe ) == 0 )
{
$tab_hoehe = "200";
}
if ( $tab_suche == "ja" )
{
$tab_suche_checked = " checked ";
}
else
{
$tab_suche_checked = "";
}
if ( $tab_erlaube_verkleinern == "ja" )
{
$tab_erlaube_verkleinern_checked = " checked ";
}
else
{
$tab_erlaube_verkleinern_checked = "";
}
if ( $zeilen_hinzufuegen == "ja" )
{
$zeilen_hinzufuegen_checked = " checked ";
}
else
{
$zeilen_hinzufuegen_checked = "";
}
if ( $zeilen_loeschen == "ja" )
{
$zeilen_loeschen_checked = " checked ";
}
else
{
$zeilen_loeschen_checked = "";
}
if ( $titel_anzeigen == "ja" )
{
$titel_anzeigen_checked = " checked ";
}
else
{
$titel_anzeigen_checked = "";
}
break;
case "attrib":
$attribute[ $konfig_option[ "e_03" ] ] = array(
"name"=>$konfig_option[ "e_02" ],
"db_feld"=>$konfig_option[ "e_03" ],
"sichtbar"=>$konfig_option[ "e_04" ],
"aenderbar"=>$konfig_option[ "e_05" ],
"pflicht"=>$konfig_option[ "e_06" ],
"reihenfolge"=>$konfig_option[ "e_07" ],
"td_breite"=>$konfig_option[ "e_08" ],
"elem_breite"=>$konfig_option[ "e_09" ]
);
break;
}
}
}
//xlog( 4, json_encode( $attribute ) );
$html_output = "<h4>Konfiguration des Plugins wfl_plugin_positionsdaten auf Position ".$maske_pos."</h4>";
$html_output = $html_output.
"<form name='wfl_plugin_name_konfig' action='wfl_plugins/wfl_plugin_positionsdaten.php' method='post' >
<input type='hidden' name='mandant_name' value='".$mandant_name."' />
<input type='hidden' name='workflow_name' value='".$workflow_name."' />
<input type='hidden' name='workflow_id' value='".$workflow[ 0 ]."' />
<input type='hidden' name='maske_name' value='".$maske_name."' />
<input type='hidden' name='maske_id' value='".$maske[ 0 ]."' />
<input type='hidden' name='maske_pos' value='".$maske_pos."' />
<input type='hidden' name='cmd' value='konfig' />
<input type='hidden' name='aufgerufen' value='aufgerufen' />
<table>
<tr>
<td style='width: 300px;' >Überschrift anzeigen</td>
<td><input type='checkbox' name='titel_anzeigen' value='ja' ".$titel_anzeigen_checked." /></td>
</tr>
<tr>
<td>Wertemengen-Darstellung</td>
<td><select name='wertemengen_darstellung' disabled style='width:180px;' ><option value='standard' ".$wd_2." >standard</option><option value='chosen' ".$wd_1." >chosen</option></select></td>
</tr>
<tr>
<td>Zeilen können hinzugefügt werden</td>
<td><input type='checkbox' name='zeilen_hinzufuegen' value='ja' ".$zeilen_hinzufuegen_checked." /></td>
</tr>
<tr>
<td>Zeilen können gelöscht werden</td>
<td><input type='checkbox' name='zeilen_loeschen' value='ja' ".$zeilen_loeschen_checked." /></td>
</tr>
<tr>
<td>Suche in Tabelle erlauben<br />(Vorsicht: Sichtbarkeit der Felder beim Submit!)<!--https://datatables.net/examples/api/form.html--></td>
<td><input type='checkbox' name='tab_suche' value='ja' ".$tab_suche_checked." /></td>
</tr>
<tr>
<td>Max. Höhe der Tabelle (in Pixel)</td>
<td><input type='text' name='tab_hoehe' style='width:174px;' value='".$tab_hoehe."' /></td>
</tr>
<tr>
<td>automatische Tabellenhöhe</td>
<td><input type='checkbox' name='tab_erlaube_verkleinern' value='ja' ".$tab_erlaube_verkleinern_checked." /></td>
</tr>
<tr>
<td style='width: 300px;' >Element-Höhe (in Pixel, leer für automatisch)</td>
<td><input type='text' name='div_hoehe' style='width:174px;' value='".$div_hoehe."' /></td>
</tr>
</table>
<table>";
$dokart_kuerzel = $workflow[ 2 ][ "dokart_kuerzel" ];
$dokart_attribute = liefere_attribute_zu_dokumentart( $_SESSION[ "mandant_name" ], $dokart_kuerzel );
$html_output = $html_output."<tr>
<th style='min-width:120px; text-align: left;' >Attribut-Name</th>
<th style='min-width:80px; text-align: left;' >DB-Feld</th>
<th style='min-width:80px; text-align: left;' >sichtbar</th>
<th style='min-width:80px; text-align: left;' >änderbar</th>
<th style='min-width:80px; text-align: left;'>Pflichtfeld</th>
<th style='min-width:80px; text-align: left;'>Reihenfolge</th>
<th style='min-width:120px; text-align: left;'>Tabspalte-Breite<br />(in Pixel)</th>
<th style='min-width:120px; text-align: left;'>Element-Breite<br />(in Pixel)</th>
<th style='min-width:120px; text-align: left;'>Wertemenge</th>
<th style='min-width:120px; text-align: left;'></th>
<th style='min-width:120px; text-align: left;'></th>
</tr>";
$i = 1;
foreach( $dokart_attribute[ 2 ] as $db_feld => $attrib )
{
$p = explode( "_", $db_feld );
// nur positionsattribute
if ( $p[ 0 ] == "p" )
{
if ( isset( $attribute[ $db_feld ] ) )
{
if ( $attribute[ $db_feld ][ "sichtbar" ] == "ja" )
{
$sichtbar = " checked ";
}
else
{
$sichtbar = "";
}
if ( $attribute[ $db_feld ][ "aenderbar" ] == "ja" )
{
$aenderbar = " checked ";
}
else
{
$aenderbar = "";
}
if ( $attribute[ $db_feld ][ "pflicht" ] == "ja" )
{
$pflicht = " checked ";
}
else
{
$pflicht = "";
}
for ( $i = 1; $i <= 50; $i++ )
{
if ( strlen( (string)$i ) == 1 )
{
$fertig = "0".$i;
}
else
{
$fertig = (string)$i;
}
if ( $attribute[ $db_feld ][ "reihenfolge" ] == $fertig )
{
$sel = " selected ";
}
else
{
$sel = "";
}
$options = $options."<option ".$sel." >".$fertig."</option>";
}
}
else
{
$sichtbar = "";
$aenderbar = "";
$pflicht = "";
$tab_reiter = "";
$elem_breite = "90";
$td_breite = "80";
for ( $i = 1; $i <= 30; $i++ )
{
if ( strlen( (string)$i ) == 1 )
{
$fertig = "0".$i;
}
else
{
$fertig = (string)$i;
}
$options = $options."<option>".$fertig."</option>";
}
}
$html_output = $html_output."
<tr>
<td>".$attrib[ "attrib_name" ]."</td>
<td>".$db_feld."</td>
<td><input type='checkbox' name='".$db_feld."[sichtbar]' value='ja' ".$sichtbar." ></td>
<td><input type='checkbox' name='".$db_feld."[aenderbar]' value='ja' ".$aenderbar." ></td>
<td><input type='checkbox' name='".$db_feld."[pflicht]' value='ja' ".$pflicht." ></td>
<td><select name='".$db_feld."[reihenfolge]' style='width:80px;' >".$options."</select></td>
<td><input type='text' name='".$db_feld."[td_breite]' style='' value='".$attribute[ $db_feld ][ "td_breite" ]."' /></td>
<td><input type='text' name='".$db_feld."[elem_breite]' style='' value='".$attribute[ $db_feld ][ "elem_breite" ]."' /></td>
<td>".$attrib[ "attrib_wertemenge" ]."<input type='text' name='".$db_feld."[wertemenge]' style='visibility:hidden;' value='".$attrib[ "attrib_wertemenge" ]."' readonly /></td>
<td><input type='text' name='".$db_feld."[name]' style='visibility:hidden;' value='".$attrib[ "attrib_name" ]."' /></td>
<td><input type='text' name='".$db_feld."[db_feld]' style='visibility:hidden;' value='".$db_feld."' /></td>
</tr>";
$options = "";
}
}
//$html_output = $html_output.$dokart_kuerzel;
/*"
<tr>
<td>Soll eine Test-Ausgabe erfolgen?</td>
<td><select name='alpha_01' style='width:200px;' >
<option ".$ja.">ja</option>
<option ".$nein." >nein</option>
</select></td>
</tr>
*/
$html_output = $html_output."</table>
<input type='submit' value='OK' />
</form>";
}
return $html_output;
}
//////////////////////
// Workflow-Arbeitsfunktion
//////////////////////
function wfl_plugin_positionsdaten( $mandant_name, $workflow, $maske, $maske_pos, $dokument )
{
$STATEMENT = "select workflow_id, maske_id, pos, plugin, e_01, e_02, e_03, e_04, e_05, e_06, e_07, e_08, e_09 from ca_wfl_maske_einstellungen where workflow_id = ".$workflow[ 0 ]." and maske_id = ".$maske[ 0 ]." and plugin = 'wfl_plugin_positionsdaten.php' and pos = '".$maske_pos."' order by e_07";
$ergebnis = xdb( $STATEMENT );
//$html_output = json_encode( $ergebnis );
$html_output = "";
if ( $ergebnis[ 0 ] > 0)
{
$attribute = array();
$tab = array();
foreach( $ergebnis[ 1 ] as $treffer )
{
//xlog( 4, json_encode( $treffer ) );
if ( $treffer[ "e_01" ] == "base" )
{
$div_hoehe = $treffer[ "e_06" ];
$wertemengen_darstellung = $treffer[ "e_07" ];
$titel_anzeigen = $treffer[ "e_08" ];
$zeilen_hinzufuegen = $treffer[ "e_02" ];
$zeilen_loeschen = $treffer[ "e_03" ];
$tab_hoehe = $treffer[ "e_04" ];
$tab_suche = $treffer[ "e_05" ];
$tab_erlaube_verkleinern = $treffer[ "e_09" ];
}
if ( $tab_erlaube_verkleinern == "ja" )
{
$tab_erlaube_verkleinern = "true";
}
else
{
$tab_erlaube_verkleinern = "false";
}
if ( $tab_suche == "ja" )
{
$tab_suche = "true";
}
else
{
$tab_suche = "false";
}
if ( strlen( $tab_hoehe ) == 0 )
{
$tab_hoehe = "200";
}
if ( $treffer[ "e_01" ] == "attrib" )
{
if ( $treffer[ "e_04" ] == "ja" )
{
$attribute[] = array( "name"=>$treffer[ "e_02" ], "db_feld"=>$treffer[ "e_03" ], "sichtbar"=>$treffer[ "e_04" ], "aenderbar"=>$treffer[ "e_05" ], "pflicht"=>$treffer[ "e_06" ], "td_breite"=>$treffer[ "e_08" ], "elem_breite"=>$treffer[ "e_09" ] );
}
}
}
$multi = $dokument[ 2 ][ "mehrfachattribute" ];
$k = 1; // Anzahl Zeilen
$o = 0; // Anzahl Datumsfelder in einer Zeile
$neue_felder = "";
if ( count( $multi ) > 0 )
{
foreach ( $multi as $zeile )
{
foreach( $attribute as $a )
{
$wert = $zeile[ $a[ "db_feld" ] ];
$dokart_attribut = $dokument[ 2 ][ "attribute" ][ $a[ "db_feld" ] ];
if ( strlen( $dokart_attribut[ "attrib_wertemenge" ] ) > 0 )
{
if ( $wertemengen_darstellung == "chosen" )
{
$skript = $skript."$( \".chosen\" ).chosen();";
}
if ( $a[ "pflicht" ] == "ja" )
{
$class = " pflichtfeld ";
$pflichtfelder = $pflichtfelder.$a[ "db_feld" ]."|";
$wertemenge_leerelement = "";
}
else
{
$class = " kein_pflichtfeld ";
$wertemenge_leerelement = "<option />";
}
$name = "zeile".$k."[".$a[ "db_feld" ]."]";
if ( $a[ "aenderbar" ] == "ja" )
{
$aenderbar = " ";
$input = "";
}
else
{
$aenderbar = " DISABLED ";
$input = "<input type='hidden' name='".$name."' value='".$wert."' />";
$name = "";
}
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$width = "width:".$a[ "elem_breite" ]."px; ";
}
$eingabe = "<select ".$aenderbar." id='".$a[ "db_feld" ]."' class='".$class." chosen' size='1' name='".$name."' style=' height:100%; ".$width." ' >".$wertemenge_leerelement;
$nf = "<select ".$aenderbar." id='".$a[ "db_feld" ]."' class='".$class." chosen' size='1' name='zeileXXX[".$a[ "db_feld" ]."]' style=' height:100%; ".$width." ' >".$wertemenge_leerelement;
$ergebnis = liefere_wertemenge_elemente( $mandant_name, $dokart_attribut[ "attrib_wertemenge" ] );
foreach ( $ergebnis[ 2 ] as $e )
{
if ( $e[ "alpha_01" ] == $wert )
{
$selected_option = "selected";
}
else
{
$selected_option = "";
}
$eingabe = $eingabe."<option ".$selected_option." value='".$e[ "alpha_01" ]."'>".$e[ "alpha_01" ]."</option>";
$nf = $nf."<option value='".$e[ "alpha_01" ]."'>".$e[ "alpha_01" ]."</option>";
}
$eingabe = $eingabe."</select>".$input;
$nf = $nf."</select>".$input;
$nf = str_replace( "'", '"', $nf );
$nf = str_replace( "XXX", "'+counter+'", $nf );
$neue_felder = $neue_felder."'".$nf."', ";
//xlog( 4, $neue_felder );
}
else
{
$typ = explode( "_", $a[ "db_feld" ] );
switch( $typ[ 1 ] )
{
case "datum":
$o++;
$datepick[ $o ] = $a[ "db_feld" ];
$class = " datepicker ";
$id = "datepicker".$a[ "db_feld" ]."_".$o."_";
if ( $a[ "aenderbar" ] == "nein" )
{
$dis = "disabled:true,";
}
else
{
$dis = "";
}
$skript = $skript."$( \"#".$id.$k."\" ).datepicker({ ".$dis." showAnim: 'clip', buttonImageOnly: true, showOn: 'both', buttonImage: 'img/kalender.png', showWeek: true, changeMonth: true, changeYear: true });";
break;
case "alpha":
$class = " ";
break;
case "num":
$class = " ";
break;
case "geld":
$class = " ";
break;
}
if ( $a[ "pflicht" ] == "ja" )
{
$class = $class." pflichtfeld ";
$pflichtfelder = $pflichtfelder.$a[ "db_feld" ]."|";
}
else
{
$class = $class." kein_pflichtfeld ";
}
if ( $a[ "aenderbar" ] == "ja" )
{
$aenderbar = " ";
$aenderbar_css = " ";
}
else
{
$aenderbar = " READONLY ";
$aenderbar_css = " color:grey; ";
}
if ( strlen( $id ) == 0 )
{
$id = $a[ "db_feld" ];
}
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$width = "width:".$a[ "elem_breite" ]."px; ";
}
else
{
$width = "";
}
//xlog( 4, $a[ "db_feld" ]."width: ".$width );
$eingabe = "<input type='text' name='zeile".$k."[".$a[ "db_feld" ]."]' ".$aenderbar." id='".$id.$k."' class=' ".$class." ' style=' ".$aenderbar_css.$width." ' value='".$wert."' />";
$nf = "<input type='text' name='zeileXXX[".$a[ "db_feld" ]."]' ".$aenderbar." id='".$id."XXX' class=' ".$class." ' style=' ".$aenderbar_css.$width." ' value='' />";
$nf = str_replace( "'", '"', $nf );
$nf = str_replace( "XXX", "'+counter+'", $nf );
$id = "";
$neue_felder = $neue_felder."'".$nf."', ";
}
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$th_width = "width:".$a[ "td_breite" ]."px; ";
}
else
{
$th_width = "";
}
$table[ "zeile_".$k ] = $table[ "zeile_".$k ]."<td style='".$th_width."' >".$eingabe."</td>";
if ( $k == 1 )
{
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$th_width = "width:".$a[ "td_breite" ]."px; ";
}
else
{
$th_width = "";
}
$th = $th."<th style='".$th_width."'>".$a[ "name" ]."</th>";
}
}
$o = 0;
$k++;
}
}
else
{
foreach( $attribute as $a )
{
$wert = "";
$dokart_attribut = $dokument[ 2 ][ "attribute" ][ $a[ "db_feld" ] ];
if ( strlen( $dokart_attribut[ "attrib_wertemenge" ] ) > 0 )
{
if ( $wertemengen_darstellung == "chosen" )
{
$skript = $skript."$( \".chosen\" ).chosen();";
}
if ( $a[ "pflicht" ] == "ja" )
{
$class = " pflichtfeld ";
$pflichtfelder = $pflichtfelder.$a[ "db_feld" ]."|";
$wertemenge_leerelement = "";
}
else
{
$class = " kein_pflichtfeld ";
$wertemenge_leerelement = "<option />";
}
if ( $a[ "aenderbar" ] == "ja" )
{
$aenderbar = " ";
$input = "";
}
else
{
$aenderbar = " DISABLED ";
$input = "<input type='hidden' name='".$a[ "db_feld" ]."' value='".$wert."' />";
}
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$width = "width:".$a[ "elem_breite" ]."px; ";
}
//$eingabe = "<select ".$aenderbar." id='".$a[ "db_feld" ]."' class='".$class." chosen' size='1' name='zeile".$k."[".$a[ "db_feld" ]."]' style=' height:100%; ".$width." ' >".$wertemenge_leerelement;
$nf = "<select ".$aenderbar." id='".$a[ "db_feld" ]."' class='".$class." chosen' size='1' name='zeileXXX[".$a[ "db_feld" ]."]' style=' height:100%; ".$width." ' >".$wertemenge_leerelement;
$ergebnis = liefere_wertemenge_elemente( $mandant_name, $dokart_attribut[ "attrib_wertemenge" ] );
foreach ( $ergebnis[ 2 ] as $e )
{
if ( $e[ "alpha_01" ] == $wert )
{
$selected_option = "selected";
}
else
{
$selected_option = "";
}
$eingabe = $eingabe."<option ".$selected_option." value='".$e[ "alpha_01" ]."'>".$e[ "alpha_01" ]."</option>";
$nf = $nf."<option value='".$e[ "alpha_01" ]."'>".$e[ "alpha_01" ]."</option>";
}
$eingabe = $eingabe."</select>".$input;
$nf = $nf."</select>".$input;
$nf = str_replace( "'", '"', $nf );
$nf = str_replace( "XXX", "'+counter+'", $nf );
$neue_felder = $neue_felder."'".$nf."', ";
//xlog( 4, $neue_felder );
}
else
{
$typ = explode( "_", $a[ "db_feld" ] );
switch( $typ[ 1 ] )
{
case "datum":
$o++;
$datepick[ $o ] = $a[ "db_feld" ];
$class = " datepicker ";
$id = "datepicker".$a[ "db_feld" ]."_".$o."_";
if ( $a[ "aenderbar" ] == "nein" )
{
$dis = "disabled:true,";
}
else
{
$dis = "";
}
$skript = $skript."$( \"#".$id.$k."\" ).datepicker({ ".$dis." showAnim: 'clip', buttonImageOnly: true, showOn: 'both', buttonImage: 'img/kalender.png', showWeek: true, changeMonth: true, changeYear: true });";
break;
case "alpha":
$class = " ";
break;
case "num":
$class = " ";
break;
case "geld":
$class = " ";
break;
}
if ( $a[ "pflicht" ] == "ja" )
{
$class = $class." pflichtfeld ";
$pflichtfelder = $pflichtfelder.$a[ "db_feld" ]."|";
}
else
{
$class = $class." kein_pflichtfeld ";
}
if ( $a[ "aenderbar" ] == "ja" )
{
$aenderbar = " ";
$aenderbar_css = " ";
}
else
{
$aenderbar = " READONLY ";
$aenderbar_css = " color:grey; ";
}
if ( strlen( $id ) == 0 )
{
$id = $a[ "db_feld" ];
}
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$width = "width:".$a[ "elem_breite" ]."px; ";
}
else
{
$width = "";
}
//xlog( 4, $a[ "db_feld" ]."width: ".$width );
//$eingabe = "<input type='text' name='zeile".$k."[".$a[ "db_feld" ]."]' ".$aenderbar." id='".$id.$k."' class=' ".$class." ' style=' ".$aenderbar_css.$width." ' value='".$wert."' />";
$nf = "<input type='text' name='zeileXXX[".$a[ "db_feld" ]."]' ".$aenderbar." id='".$id."XXX' class=' ".$class." ' style=' ".$aenderbar_css.$width." ' value='' />";
$nf = str_replace( "'", '"', $nf );
$nf = str_replace( "XXX", "'+counter+'", $nf );
$id = "";
$neue_felder = $neue_felder."'".$nf."', ";
}
if ( $k == 1 )
{
if ( strlen( $a[ "elem_breite" ] ) > 0 )
{
$th_width = "width:".$a[ "td_breite" ]."px; ";
}
else
{
$th_width = "";
}
$th = $th."<th style='".$th_width."'>".$a[ "name" ]."</th>";
}
}
$o = 0;
$k++;
}
$th = "<thead><tr>".$th."</tr></thead>";
//xlog( 4, json_encode( $table ) );
if ( $zeilen_hinzufuegen == "ja" )
{
$button_zeilen_hinzufuegen = "<input type='button' id='button_hinzufuegen' value='Zeile hinzufügen' />";
}
if ( $zeilen_loeschen == "ja" )
{
$button_zeilen_loeschen = "<input type='button' id='button_loeschen' value='markierte Zeile löschen' />";
}
$html_output = $html_output.$button_zeilen_hinzufuegen.$button_zeilen_loeschen."<table id='posdaten' class='display compact '>".$th."<tbody>";
if ( count( $table ) > 0 )
{
foreach ( $table as $zeile )
{
$html_output = $html_output."<tr>".$zeile."</tr>";
}
}
$html_output = $html_output."</tbody></table>";
//xlog( 4, json_encode( $html_output ) );
//$skript = "$( \"#posdaten\" ).DataTable({ 'language': { 'url': 'js/dataTables.german.lang' }, 'bJQueryUI': true, 'searching': false, 'lengthchange':false, 'ordering':false, 'paging':false });";
if ( count( $datepick ) > 0 )
{
// $datepick[ $o ] = $a[ "db_feld" ];
foreach( $datepick as $o => $db_feld )
{
//$id = "datepicker".$a[ "db_feld" ]."_".$o."_".$k;
$datep = $datep."$( \"#datepicker".$db_feld."_".$o."_\"+counter ).datepicker({ ".$dis." showAnim: 'clip', buttonImageOnly: true, showOn: 'both', buttonImage: 'img/kalender.png', showWeek: true, changeMonth: true, changeYear: true });";
}
$datepick[ $o ] = $a[ "db_feld" ];
}
$skript = $skript."$(document).ready(function()
{
var table = $('#posdaten').DataTable({ 'language': { 'url': 'js/dataTables.german.lang' }, 'bJQueryUI': true, 'scrollX': true, 'searching': ".$tab_suche.", 'lengthchange':false, 'ordering':false, 'scrollCollapse': ".$tab_erlaube_verkleinern.", 'scrollY':'".$tab_hoehe."px', 'paging':false, 'lengthMenu':[[-1], [ \"Alle\" ]] });
var counter = ".bcadd( count( $multi ), 1, 0 ).";
$('#button_hinzufuegen').on( 'click', function () {
table.row.add( [
".substr( $neue_felder, 0, -2 )."
] ).draw();
".$datep."
counter++;
} );
$('#posdaten tbody').on( 'click', 'tr', function ()
{
if ( $(this).hasClass('selected') )
{
$(this).removeClass('selected');
}
else
{
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
} );
$('#button_loeschen').click( function ()
{
table.row('.selected').remove().draw( false );
} );
} );";
}
else
{
$html_output = $html_output."<p>Für dieses Modul (wfl_plugin_positionsdaten.php) liegt keine Konfiguration vor. Bitte kontaktieren Sie Ihren Systemadministrator.</p><input type='button' value='zum Schreibtisch' onclick='window.location.href = \"us_schreibtisch.php\"' />";
}
unset( $divs, $div_inhalt );
if ( strlen( $div_hoehe ) > 0 )
{
$s = "style='height:".$div_hoehe."px;'";
}
else
{
$s = "";
}
if ( $titel_anzeigen == "ja" )
{
$html_output = "<h3 style='margin-left:15px;'>".$maske[ 2 ][ "maske_plugin_".$maske_pos."_bezeichnung" ]."</h3>".$html_output;
}
return "<div ".$s." >".$html_output."</div><script>".$skript."</script>";
}
?>