Files
4G/wfl_plugins/wfl_plugin_kopfdaten.php

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