<?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_kopfdaten_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_kopfdaten_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_kopfdaten.php' and pos = '".$maske_pos."'";
			
			xdb( $STATEMENT );
			
			
			
			
			/*
			{"mandant_name":"Gaia",
			"workflow_name":"Testworkflow",
			"workflow_id":"5",
			"maske_name":"Pr\u00fcfen",
			"maske_id":"24",
			"maske_pos":"02",
			"cmd":"konfig",
			"aufgerufen":"aufgerufen",
			"benutze_tab_reiter":"ja",
			"alpha_01":{"sichtbar":"ja","aenderbar":"ja","pflicht":"ja","fettdruck":"ja","reihenfolge":"6","tab_reiter":"eins","name":"Kategorie","db_feld":"alpha_01","wertemenge":"dok_kategorien"},
			"num_01":{"sichtbar":"ja","aenderbar":"ja","pflicht":"ja","fettdruck":"ja","reihenfolge":"1","tab_reiter":"eins","name":"Dateigr\u00f6\u00dfe","db_feld":"num_01","wertemenge":""},
			"datum_01":{"sichtbar":"ja","aenderbar":"ja","fettdruck":"ja","reihenfolge":"1","tab_reiter":"zwei","name":"Datum","db_feld":"datum_01","wertemenge":""},
			"alpha_03":{"sichtbar":"ja","reihenfolge":"2","tab_reiter":"zwei","name":"Monat","db_feld":"alpha_03","wertemenge":"monate"},"alpha_05":{"sichtbar":"ja",
			"reihenfolge":"1","tab_reiter":"Adresse","name":"Adresse 1","db_feld":"alpha_05","wertemenge":""},"alpha_06":{"sichtbar":"ja","reihenfolge":"7","tab_reiter":"Adresse","name":"Ort","db_feld":"alpha_06","wertemenge":""},
			"alpha_07":{"sichtbar":"ja","reihenfolge":"6","tab_reiter":"Adresse","name":"PLZ","db_feld":"alpha_07","wertemenge":""},
			"alpha_08":{"sichtbar":"ja","reihenfolge":"2","tab_reiter":"Adresse","name":"Adresse 2","db_feld":"alpha_08","wertemenge":""},
			"alpha_02":{"reihenfolge":"1","tab_reiter":"","name":"Betreff","db_feld":"alpha_02","wertemenge":""}
			}
			
			*/
			
			$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" ];
			$layout_spalten				= $POST[ "layout_spalten" ];
			$layout_zeilen				= $POST[ "layout_zeilen" ];
			$layout_feldanordnung		= $POST[ "layout_feldanordnung" ];
			$div_hoehe					= $POST[ "div_hoehe" ];
			$wertemengen_darstellung	= $POST[ "wertemengen_darstellung" ];
			
			
			
			
			if ( $POST[ "benutze_tab_reiter" ] == "ja" )
			{
				$benutze_tab_reiter			= "ja";
			}
			else
			{
				$benutze_tab_reiter			= "nein";
			}
			
			if ( $POST[ "titel_anzeigen" ] == "ja" )
			{
				$titel_anzeigen			= "ja";
			}
			else
			{
				$titel_anzeigen			= "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 ) values ( ".$workflow_id.", ".$maske_id.", '".$maske_pos."', 'wfl_plugin_kopfdaten.php', 'base', '".$benutze_tab_reiter."', '".$layout_spalten."', '".$layout_feldanordnung."', '".$layout_zeilen."', '".$div_hoehe."', '".$wertemengen_darstellung."', '".$titel_anzeigen."' )";
			
			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";
					}
					
					if ( $attrib_konfig[ "fettdruck" ] == "ja" )
					{
						$fettdruck = "ja";
					}
					else
					{
						$fettdruck = "nein";
					}
					
					$name			= $attrib_konfig[ "name" ];
					$db_feld		= $attrib_konfig[ "db_feld" ];
					$reihenfolge	= $attrib_konfig[ "reihenfolge" ];
					$wertemenge		= $attrib_konfig[ "wertemenge" ];
					
					if ( $benutze_tab_reiter == "ja" )
					{
						$tab_reiter		= $attrib_konfig[ "tab_reiter" ];
					}
					else
					{
						$tab_reiter		= "";
					}
					
					
					$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_kopfdaten.php', 'attrib', '".$name."', '".$db_feld."', '".$sichtbar."', '".$aenderbar."', '".$pflicht."', '".$reihenfolge."', '".$tab_reiter."', '".$fettdruck."', '".$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_kopfdaten.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":
							
							$benutze_tab_reiter = $konfig_option[ "e_02" ];
							$layout_spalten				= $konfig_option[ "e_03" ];
							$layout_zeilen				= $konfig_option[ "e_05" ];
							$layout_feldanordnung		= $konfig_option[ "e_04" ];
							$div_hoehe					= $konfig_option[ "e_06" ];
							$wertemengen_darstellung	= $konfig_option[ "e_07" ];
							$titel_anzeigen				= $konfig_option[ "e_08" ];
							
							if ( $titel_anzeigen == "ja" )
							{
								$titel_anzeigen_checked = " checked ";
							}
							else
							{
								$titel_anzeigen_checked = "";
							}
							
							if ( $benutze_tab_reiter == "ja" )
							{
								$benutze_tab_reiter_checked = " checked ";
							}
							else
							{
								$benutze_tab_reiter_checked = "";
							}
							switch( $layout_feldanordnung )
							{
								case "top_down":
									$rdlr_1 = " selected ";
									$rdlr_2 = "";
									break;
								case "left_right":
									$rdlr_1 = "";
									$rdlr_2 = " selected ";
									break;
								
							}
							switch( $wertemengen_darstellung )
							{
								case "chosen":
									$wd_1 = " selected ";
									$wd_2 = "";
									break;
								case "standard":
									$wd_1 = "";
									$wd_2 = " selected ";
									break;
								
							}
							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" ],
																		"fettdruck"=>$konfig_option[ "e_09" ],
																		"tab_reiter"=>$konfig_option[ "e_08" ] );
							break;
					}
				}
			}
			
			//xlog( 4, json_encode( $attribute ) );
			
			$html_output = "<h4>Konfiguration des Plugins wfl_plugin_kopfdaten auf Position ".$maske_pos."</h4>";
			
			
			
			for ( $i = 1; $i <= 10; $i++ )
			{
				if ( strlen( $layout_zeilen ) > 0 )
				{
					if ( $layout_zeilen == $i )
					{
						$sel = " selected ";
					}
					else
					{
						$sel = "";
					}
				}
				else
				{
					if ( $i == 5 )
					{
						$sel = " selected ";
					}
					else
					{
						$sel = "";
					}
				}
				$lz_options = $lz_options."<option ".$sel." >".$i."</option>";
			}
			
			for ( $i = 1; $i <= 3; $i++ )
			{
				if ( strlen( $layout_spalten ) > 0 )
				{
					if ( $layout_spalten == $i )
					{
						$sel = " selected ";
					}
					else
					{
						$sel = "";
					}
				}
				else
				{
					if ( $i == 2 )
					{
						$sel = " selected ";
					}
					else
					{
						$sel = "";
					}
				}
				$ls_options = $ls_options."<option ".$sel." >".$i."</option>";
			}
			
			
			
			$html_output = $html_output.
					"<form name='wfl_plugin_name_konfig' action='wfl_plugins/wfl_plugin_kopfdaten.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 style='width: 190px;' >Tab-Reiter verwenden</td>
							<td><input type='checkbox'  name='benutze_tab_reiter' value='ja' ".$benutze_tab_reiter_checked." ></td>
						</tr>
						<tr>
							<td>Layout Zeilenzahl</td>
							<td><select name='layout_zeilen' style='width:180px;' >".$lz_options."</select></td>
						</tr>
						<tr>
							<td>Layout Spaltenzahl</td>
							<td><select name='layout_spalten' style='width:180px;' >".$ls_options."</select></td>
						</tr>
						<tr>
							<td>Layout Feldanordnung</td>
							<td><select name='layout_feldanordnung' style='width:180px;' ><option value='top_down' ".$rdlr_1." >von oben nach unten</option><option value='left_right' ".$rdlr_2." >von links nach rechts</option></select></td>
						</tr>
						<tr>
							<td>Wertemengen-Darstellung</td>
							<td><select name='wertemengen_darstellung' style='width:180px;' ><option value='standard' ".$wd_2." >standard</option><option value='chosen' ".$wd_1." >chosen</option></select></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;' >Fettdruck</th>
						<th style='min-width:80px; text-align: left;'>Reihenfolge</th>
						<th style='min-width:120px; text-align: left;'>Tab-Reiter</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 Kopfattribute
						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 = "";
								}
								
								if ( $attribute[ $db_feld ][ "fettdruck" ] == "ja" )
								{
									$fettdruck = " checked ";
								}
								else
								{
									$fettdruck = "";
								}
								
								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>";
								}
								
								
								
								
								
								if ( strlen( $attribute[ $db_feld ][ "tab_reiter" ] ) > 0 )
								{
									$tab_reiter = $attribute[ $db_feld ][ "tab_reiter" ];
								}
								else
								{
									$tab_reiter = "";
								}
							}
							else
							{
								$sichtbar		= "";
								$aenderbar		= "";
								$pflicht		= "";
								$tab_reiter		= "";
								$fettdruck		= "";
								for ( $i = 1; $i <= 50; $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><input type='checkbox'  name='".$db_feld."[fettdruck]' value='ja' ".$fettdruck." ></td>
									<td><select  name='".$db_feld."[reihenfolge]' style='width:80px;' >".$options."</select></td>
									<td><input type='text'  name='".$db_feld."[tab_reiter]' value='".$tab_reiter."' ></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 = "";
						}
					}
					
					
					$systemfelder = array( "zzz_dokid"=>"Dokument-ID", "zzz_kennung"=>"Kennung", "zzz_groesse"=>"Dateigröße (in Bytes)", "zzz_mimetype"=>"MIME-Type", "zzz_impdatum"=>"Import-Datum", "zzz_dokuart"=>"Dokumentart-Kürzel", "zzz_dokuartlang"=>"Dokumentart-Name" );
					
					
					$html_output = $html_output."<tr><td colspan='11'><hr /></td></tr>";
					
					foreach( $systemfelder as $db_feld=>$name )
					{
						
						/*
						
						$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" ],
																		"fettdruck"=>$konfig_option[ "e_09" ],
																		"tab_reiter"=>$konfig_option[ "e_08" ] );
						*/
						
						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 = "";
							}
							
							if ( $attribute[ $db_feld ][ "fettdruck" ] == "ja" )
							{
								$fettdruck = " checked ";
							}
							else
							{
								$fettdruck = "";
							}
							
							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>";
							}
							
							
							
							
							
							if ( strlen( $attribute[ $db_feld ][ "tab_reiter" ] ) > 0 )
							{
								$tab_reiter = $attribute[ $db_feld ][ "tab_reiter" ];
							}
							else
							{
								$tab_reiter = "";
							}
						}
						else
						{
							$sichtbar		= "";
							$aenderbar		= "";
							$pflicht		= "";
							$tab_reiter		= "";
							$fettdruck		= "";
							for ( $i = 1; $i <= 50; $i++ )
							{
								if ( strlen( (string)$i ) == 1 )
								{
									$fertig = "0".$i;
								}
								else
								{
									$fertig = (string)$i;
								}
								$options = $options."<option>".$fertig."</option>";
							}
					
						}
						
						$html_output = $html_output."
						<tr>
							<td>".$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' disabled ></td>
							<td><input type='checkbox'  name='".$db_feld."[pflicht]' value='ja' disabled ></td>
							<td><input type='checkbox'  name='".$db_feld."[fettdruck]' value='ja' ".$fettdruck." ></td>
							<td><select  name='".$db_feld."[reihenfolge]' style='width:80px;' >".$options."</select></td>
							<td><input type='text'  name='".$db_feld."[tab_reiter]' value='".$tab_reiter."' ></td>
							<td></td>
							<td><input type='text' name='".$db_feld."[name]' style='visibility:hidden;' value='".$name."' /></td>
							<td><input type='text' name='".$db_feld."[db_feld]' style='visibility:hidden;' value='".$db_feld."' /></td>
							
						</tr>";
						$options = "";
					}
					
					$html_output = $html_output."</table>
					<input type='submit' value='OK' />
					</form>";
			
		}
		
		
		
		return $html_output;
		
	}
	
	
	
	
	//////////////////////
	// Workflow-Arbeitsfunktion
	//////////////////////
	
	
	function wfl_plugin_kopfdaten( $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_kopfdaten.php' and pos = '".$maske_pos."' order by e_08, e_07";
		
		$ergebnis = xdb( $STATEMENT );
		
		//$html_output = json_encode( $ergebnis );
		
		/*
				Einträge:
				e_01		e_02					e_03			e_04				e_05				e_06					e_07			e_08		e_09			e_10
				base		benutze_tab_reiter		ja
				attrib		<Attribut-Name>			<DB-Feld>		sichtbar ja/nein	änderbar ja/nein	Pflichtfeld ja/nein		Reihenfolge		Tab-Reiter	Fettdruck		Wertemenge
		*/
		
		
		
		
		if ( $ergebnis[ 0 ] > 0)
		{
			$attribute	= array();
			$tab		= array();
			
			foreach( $ergebnis[ 1 ] as $treffer )
			{
				//xlog( 4, json_encode( $treffer ) );
				if ( $treffer[ "e_01" ] == "base" )
				{
					$benutze_tab_reiter 		= $treffer[ "e_02" ];
					$layout_spalten				= $treffer[ "e_03" ];
					$layout_zeilen				= $treffer[ "e_05" ];
					$layout_feldanordnung		= $treffer[ "e_04" ];
					$div_hoehe					= $treffer[ "e_06" ];
					$wertemengen_darstellung	= $treffer[ "e_07" ];
					$titel_anzeigen				= $treffer[ "e_08" ];
				}
				
				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" ], "tab_reiter"=>$treffer[ "e_08" ], "fettdruck"=>$treffer[ "e_09" ] );
						
					}
					
					
				}
				
			}
			
			if ( count( $attribute ) > 0 )
			{
				foreach ( $attribute as $attr )
				{
					
					$width = "200px";
					
					
					$dokart_attribut = $dokument[ 2 ][ "attribute" ][ $attr[ "db_feld" ] ];
					
					//xlog( 4, json_encode( $dokart_attribut ) );
					
					if ( strlen( $dokart_attribut[ "attrib_wertemenge" ] ) > 0 )
					{
						//$eingabe = "hallo";
						
						if ( $attr[ "pflicht" ] == "ja" )
						{
							$class						= " pflichtfeld ";
							$pflichtfelder				= $pflichtfelder.$attr[ "db_feld" ]."|";
							$wertemenge_leerelement		= "";
						}
						else
						{
							$class						= " kein_pflichtfeld ";
							$wertemenge_leerelement		= "<option />";
						}
						
						if ( $attr[ "aenderbar" ] == "ja" )
						{
							$aenderbar				= "  ";
							//$aenderbar_css			= "  ";
							$input					= "";
						}
						else
						{
							$aenderbar				= " DISABLED ";
							//$aenderbar_css			= " color:red; ";
							$input					= "<input type='hidden' name='a[".$attr[ "db_feld" ]."]' value='".$dokument[ 2 ][ $attr[ "db_feld" ] ]."' />";
						}
						
						$eingabe = "<select  ".$aenderbar." id='".$attr[ "db_feld" ]."'  class='".$class."' size='1' name='a[".$attr[ "db_feld" ]."]' style=' height:100%; width:205px; ' >".$wertemenge_leerelement;
						
						$ergebnis = liefere_wertemenge_elemente( $mandant_name, $dokart_attribut[ "attrib_wertemenge" ] );
						
						foreach ( $ergebnis[ 2 ] as $e )
						{
							if ( $e[ "alpha_01" ] == $dokument[ 2 ][ $attr[ "db_feld" ] ] )
							{
								$selected_option = "selected";
							}
							else
							{
								$selected_option = "";
							}
							$eingabe = $eingabe."<option ".$selected_option."  value='".$e[ "alpha_01" ]."'>".$e[ "alpha_01" ]."</option>";
						}
						
						
						
						$eingabe = $eingabe."</select>".$input;
						
						if ( $wertemengen_darstellung == "chosen" )
						{
							$skript = $skript."$( \"#".$attr[ "db_feld" ]."\" ).chosen();";
						}
						
						
						
						
					}
					else
					{
						
						$typ = explode( "_", $attr[ "db_feld" ] );
						
						switch( $typ[ 0 ] )
						{
							case "datum":
								$class = " datepicker ";
								if ( $attr[ "aenderbar" ] == "nein" )
								{
									$dis = " , beforeShow: function (input, inst) { inst.dpDiv = $('<div style=\"display: none;\"></div>'); } ";
								}
								else
								{
									$dis = "";
								}
								$width = "184px";
								$skript = $skript."$( \"#".$attr[ "db_feld" ]."\" ).datepicker({  showAnim: 'clip', buttonImageOnly: true,  showOn: 'both', buttonImage: 'img/kalender.png', showWeek: true, changeMonth: true, changeYear: true ".$dis." });";
								break;
							case "alpha":
								$class = "  ";
								break;
							case "num":
								$class = "  ";
								break;
							case "geld":
								$class = "  ";
								break;
						}
						
						
						if ( $attr[ "pflicht" ] == "ja" )
						{
							$class			= $class." pflichtfeld ";
							$pflichtfelder	= $pflichtfelder.$attr[ "db_feld" ]."|";
						}
						else
						{
							$class		= $class." kein_pflichtfeld ";
						}
						
						if ( $attr[ "aenderbar" ] == "ja" )
						{
							$aenderbar				= "  ";
							$aenderbar_css			= "  ";
							
						}
						else
						{
							$aenderbar				= " READONLY='READONLY' ";
							$aenderbar_css			= " color:grey; ";
							
						}
						
						
						if ( $typ[ 0 ] == "zzz" )
						{
							
							// Systemfelder
							
							/* $systemfelder = array( 
									"zzz_dokid"=>"Dokument-ID",
									"zzz_kennung"=>"Kennung",
									"zzz_groesse"=>"Dateigröße (in Bytes)",
									"zzz_mimetype"=>"MIME-Type",
									"zzz_impdatum"=>"Import-Datum",
									"zzz_dokuart"=>"Dokumentart-Kürzel",
									"zzz_dokuartlang"=>"Dokumentart-Name"
									);
									
							*/
							switch( $typ[ 1 ] )
							{
								case "dokid":
									$wert = $dokument[ 2 ][ "dok_id" ];
									break;
								case "kennung":
									$wert = $dokument[ 2 ][ "kennung" ];
									break;
								case "groesse":
									$wert = $dokument[ 2 ][ "groesse" ];
									break;
								case "mimetype":
									$wert = $dokument[ 2 ][ "mime_type" ];
									break;
								case "impdatum":
									$wert = date( "d.m.Y H:i", $dokument[ 2 ][ "archivierungsdatum" ] )." Uhr";
									break;
								case "dokuart":
									$wert = $dokument[ 2 ][ "dokart" ][ "dokart_kuerzel" ];
									break;
								case "dokuartlang":
									$wert = $dokument[ 2 ][ "dokart" ][ "dokart_name" ];
									break;
								
							}
							
							
							$eingabe = "<span style='width:".$width."; ' >".$wert."</span>";
						}
						else
						{				
							$eingabe = "<input type='text' name='a[".$attr[ "db_feld" ]."]' ".$aenderbar." id='".$attr[ "db_feld" ]."' class=' ".$class." ' style='width:".$width."; ".$aenderbar_css." ' value='".$dokument[ 2 ][ $attr[ "db_feld" ] ]."' />";
						}
						
					}
					
					if ( $attr[ "fettdruck" ] == "ja" )
					{
						$bold		= "<b>";
						$unbold		= "</b>";
					}
					else
					{
						$bold		= "";
						$unbold		= "";
					}
					
					
					
					$element[ $attr[ "tab_reiter" ] ][] = "<td style='padding-bottom: 4px; padding-top: 4px; padding-left:12px;width:140px;'>".$bold.$attr[ "name" ].$unbold."</td><td>".$eingabe."</td>";
					
				}
				
				
				
				
				
				
				
				
				
				
				if ( $titel_anzeigen == "ja" )
				{
					$html_output = "<h3 style='margin-left:15px;'>".$maske[ 2 ][ "maske_plugin_".$maske_pos."_bezeichnung" ]."</h3>";
				}
				else
				{
					$html_output = "";
				}
				
				
				
				
				
				if ( $benutze_tab_reiter == "ja" )
				{
					$tab_id = liefere_zufaelligen_string();
					
					$skript = $skript."$( '#tabs_".$tab_id."' ).tabs({ heightStyle:'auto' });";
					
					$html_output = $html_output."<div id='tabs_".$tab_id."' ><ul>";
					
					foreach( $element as $tabname => $elemente )
					{
						
						if ( strlen( str_replace( " ", "", $tabname ) ) > 0 )
						{
							$tabname_tech		= str_replace( " ", "_", $tabname );
							
							$html_output		= $html_output."<li><a href='#".$maske_pos.$tabname_tech."'>".$tabname."</a></li>";
							
							
							
							$k = 1; // Anzahl Zeilen
							$j = 1; // Anzahl Spalten
							$table = array();
							foreach( $elemente as $element_td )
							{
								//$layout_spalten
								//$layout_zeilen
								
								
								
								
								if ( $layout_feldanordnung == "top_down" )
								{
									$table[ "zeile_".$k ] = $table[ "zeile_".$k ].$element_td;
									
									if ( $k == $layout_zeilen )
									{
										$k = 0;
										$j++;
										
										if ( $j > $layout_spalten )
										{
											break;
										}
									}
									
									$k++;
									
								}
								else
								{
									$table[ "zeile_".$k ] = $table[ "zeile_".$k ].$element_td;
									
									if ( $j == $layout_spalten )
									{
										$j = 0;
										$k++;
										
										if ( $k > $layout_zeilen )
										{
											break;
										}
									}
									
									$j++;
									
								}
								
							}
							
							$div_inhalt = $div_inhalt."<table>";
							
							foreach ( $table as $zeile )
							{
								$div_inhalt = $div_inhalt."<tr>".$zeile."</tr>";
							}
							$div_inhalt = $div_inhalt."</table>";
							
							
							
							
							
							$divs			= $divs."<div id='".$maske_pos.$tabname_tech."' >".$div_inhalt."</div>";
							$div_inhalt		= "";
						}
					}
					
					
					$html_output = $html_output."</ul>".$divs."</div>";
					
					
					
					
					
					
					
					
					
					$html_output = $html_output."<script>".$skript."</script>";
				}
				else
				{
					// keine Tab-Reiter
					
					$k = 1; // Anzahl Zeilen
					$j = 1; // Anzahl Spalten
					
					$table = array();
					
					$element = $element[ "" ];
					
					
					foreach( $element as $element_td )
					{
						//$layout_spalten
						//$layout_zeilen
						
						
						
						if ( $layout_feldanordnung == "top_down" )
						{
							$table[ "zeile_".$k ] = $table[ "zeile_".$k ].$element_td;
							
							if ( $k == $layout_zeilen )
							{
								$k = 0;
								$j++;
								
								if ( $j > $layout_spalten )
								{
									break;
								}
							}
							
							$k++;
							
						}
						else
						{
							$table[ "zeile_".$k ] = $table[ "zeile_".$k ].$element_td;
							
							if ( $j == $layout_spalten )
							{
								$j = 0;
								$k++;
								
								if ( $k > $layout_zeilen )
								{
									break;
								}
							}
							
							$j++;
							
						}
						
					}
					
					$div_inhalt = $div_inhalt."<table>";
					
					foreach ( $table as $zeile )
					{
						$div_inhalt = $div_inhalt."<tr>".$zeile."</tr>";
					}
					$div_inhalt = $div_inhalt."</table>";
					
					
					
					
					
					
					
					$html_output = $html_output."<div id='".$maske_pos."'>".$div_inhalt."<script>".$skript."</script></div>";
					
					
					
					
				}
			}
			else
			{
				$html_output = $html_output."<p>Es ist kein Attribut konfiguriert.</p><input type='button' value='zum Schreibtisch' onclick='window.location.href = \"us_schreibtisch.php\"' />";
			}
			
		}
		else
		{
			$html_output = $html_output."<p>Für dieses Modul (wfl_plugin_kopfdaten) 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 = "";
		}
		
		return "<div ".$s." >".$html_output."</div>";
		
	}





















?>