<?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>";
		
	}





















?>