mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-29 08:00:28 +01:00
249 lines
7.6 KiB
PHP
249 lines
7.6 KiB
PHP
|
<?php
|
||
|
/*
|
||
|
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||
|
*
|
||
|
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
|
||
|
*
|
||
|
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
|
||
|
*
|
||
|
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
|
||
|
* to obtain the text of the corresponding license version.
|
||
|
*
|
||
|
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||
|
*/
|
||
|
?>
|
||
|
<?php
|
||
|
|
||
|
/**
|
||
|
* CHild Tabelle
|
||
|
* Stellt eine -Formatierte Child Tabelle mit optionalem Zeilenmenü zur Verfügung.
|
||
|
*
|
||
|
* @package
|
||
|
* @author Benedikt Sauter <sauter@ixbat.de>
|
||
|
* @author coma ag <info@coma.de>
|
||
|
* @author *105 - Multimediabüro <development@stern105.de>
|
||
|
* @version 1.0
|
||
|
* @since PHP 4.x
|
||
|
*/
|
||
|
class ChildTable {
|
||
|
|
||
|
/**
|
||
|
* Target template to wich the table will be parsed. [Default: PAGE]
|
||
|
* @type string
|
||
|
*/
|
||
|
var $parsetarget;
|
||
|
|
||
|
/**
|
||
|
* HTMLTable. Apply format changes to this object.
|
||
|
* @type Object
|
||
|
* @access public
|
||
|
*/
|
||
|
var $table;
|
||
|
|
||
|
var $editdate;
|
||
|
var $datasetssql;
|
||
|
|
||
|
|
||
|
var $arrayuse;
|
||
|
|
||
|
/**
|
||
|
* Constructor method
|
||
|
*
|
||
|
* @param $app Default application class
|
||
|
*
|
||
|
* @return Generated object ($this)
|
||
|
* @access public
|
||
|
*/
|
||
|
function __construct(&$app, $name, $parsetarget="PAGE",$editdate=false) {
|
||
|
$this->app = &$app;
|
||
|
$this->parsetarget=$parsetarget;
|
||
|
$this->name=$name;
|
||
|
$this->editdate = $editdate;
|
||
|
} // end of constructor
|
||
|
|
||
|
|
||
|
// defines all datasets
|
||
|
function DataSets($sql) {
|
||
|
$this->datasetssql = $sql;
|
||
|
} // end of function
|
||
|
|
||
|
function Register($pointer, $event, $function) {
|
||
|
$this->events[$event] = $function;
|
||
|
$this->pointer = $pointer;
|
||
|
} // end of function
|
||
|
|
||
|
function CatchEvents() {
|
||
|
$event=$this->app->Secure->GetPOST("{$this->name}_event");
|
||
|
|
||
|
if(is_array($event)){
|
||
|
$function = $this->events[key($event)];
|
||
|
$this->pointer->$function($event[key($event)]);
|
||
|
} // end of if
|
||
|
} // end of function
|
||
|
|
||
|
|
||
|
function MarkLineIfColHasValue($col,$value,$replace,$exclude)
|
||
|
{
|
||
|
$this->mark_col = $col;
|
||
|
$this->mark_value = $value;
|
||
|
$this->mark_replace = $replace;
|
||
|
$this->mark_exclude = $exclude;
|
||
|
|
||
|
$this->mark = true;
|
||
|
}
|
||
|
|
||
|
/* Diese Funktion dient fuer tabellen in denen die sipchildtables zeilen verschiedene bedeutungen haben
|
||
|
*/
|
||
|
|
||
|
function ShowMultiRow($contentArr){
|
||
|
$this->arrayuse = true;
|
||
|
|
||
|
//$this->app->Table->CreateTable($this->datasetssql, $this->parsetarget, 400);
|
||
|
//$contentArr = $this->app->DB->SelectArr( $this->datasetssql );
|
||
|
$this->app->Table->CreateTableFromArray($contentArr, $this->parsetarget, 450);
|
||
|
//$this->app->Table->FormatCondition(1, "", "<span style=\"color:red;\"class=\"inactive\">%value%</span>", array(5,6));
|
||
|
|
||
|
$this->Show();
|
||
|
}
|
||
|
|
||
|
function Show() {
|
||
|
$this->CatchEvents();
|
||
|
if(!$this->arrayuse)
|
||
|
$this->app->Table->CreateTable($this->datasetssql, $this->parsetarget, 400);
|
||
|
|
||
|
|
||
|
$numberofdatasets = count($this->app->DB->SelectArr($this->datasetssql));
|
||
|
$module = $this->app->Secure->GetGET("module");
|
||
|
$id = $this->app->Secure->GetGET("id");
|
||
|
|
||
|
$delbutton = "<input type=\"submit\" class=\"bu_delete\" title=\"Eintrag löschen\" name=\"{$this->name}_event[delete]\" value=\"%value%\">";
|
||
|
// $editbutton = "<input type=\"submit\" class=\"bu_edit\" title=\"Datum bearbeiten\" name=\"{$this->name}_event[editdate]\" value=\"%value%\">";
|
||
|
$editbutton = "<input type=\"button\"
|
||
|
onclick=\"window.location.href='index.php?module=$module&action=editdate&id=$id&value=%value%&childtable={$this->name}'\"
|
||
|
class=\"bu_edit\" title=\"Datum bearbeiten\">";
|
||
|
$downbutton = "<input type=\"submit\" class=\"bu_down\" title=\"Nach unten\" name=\"{$this->name}_event[down]\" value=\"%value%\">";
|
||
|
$upbutton = "<input type=\"submit\" class=\"bu_up\" title=\"Nach oben\" name=\"{$this->name}_event[up]\" value=\"%value%\">";
|
||
|
$addbutton = "<input type=\"button\"
|
||
|
onclick=\"window.location.href='index.php?module=$module&action=addafter&id=$id&value=%value%&childtable={$this->name}'\"
|
||
|
class=\"bu_add\" title=\"Nach diesem Eintrag einfügen\">";
|
||
|
$addfbutton = "<input type=\"button\"
|
||
|
onclick=\"window.location.href='index.php?module=$module&action=addfafter&hut=$id&value=%value%&childtable={$this->name}'\"
|
||
|
class=\"bu_addf\" title=\"Nach diesem Eintrag einfügen\">";
|
||
|
|
||
|
|
||
|
$menunew = $addbutton;
|
||
|
$menusingle = $delbutton.$addbutton.$addfbutton;
|
||
|
$menufirst = $delbutton.$addbutton.$addfbutton.$downbutton;
|
||
|
$menu = $delbutton.$addbutton.$addfbutton.$downbutton.$upbutton;
|
||
|
$menulast = $delbutton.$addbutton.$addfbutton.$upbutton;
|
||
|
|
||
|
// falls zeit relation berarbeitet werden soll
|
||
|
if($this->editdate)
|
||
|
{
|
||
|
$menulast .= $editbutton;
|
||
|
$menu .= $editbutton;
|
||
|
$menufirst .= $editbutton;
|
||
|
$menusingle .= $editbutton;
|
||
|
|
||
|
$header = '
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th class="divider">Nr.</th>
|
||
|
<th class="divider">Name</th>
|
||
|
<th class="divider">ID</th>
|
||
|
<th class="divider">Gültig von - bis</th>
|
||
|
';
|
||
|
}
|
||
|
else {
|
||
|
$header = '
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th class="divider">Nr.</th>
|
||
|
<th class="divider">Name</th>
|
||
|
<th class="divider">ID</th>
|
||
|
';
|
||
|
}
|
||
|
|
||
|
|
||
|
if(count($this->events)>0)
|
||
|
$header .= '<th class="divider">Aktion</th>';
|
||
|
|
||
|
$header .= '
|
||
|
</tr>
|
||
|
</thead>';
|
||
|
|
||
|
$this->app->Table->HeadingTop($header);
|
||
|
|
||
|
|
||
|
if($this->editdate){
|
||
|
$arr = array(1, 2, 3, 4,6);
|
||
|
}
|
||
|
else{
|
||
|
$arr = array(1, 2, 3, 5);
|
||
|
}
|
||
|
|
||
|
// erstellen der richtigen menues
|
||
|
for($i=1;$i<=$numberofdatasets;$i++) {
|
||
|
if($numberofdatasets==1)
|
||
|
$this->app->Table->FormatCondition(1, 1, $menusingle, $arr);
|
||
|
else if($i==1)
|
||
|
$this->app->Table->FormatCondition(1, 1, $menufirst, $arr);
|
||
|
else if($i == $numberofdatasets)
|
||
|
$this->app->Table->FormatCondition(1, $numberofdatasets, $menulast, $arr);
|
||
|
else
|
||
|
$this->app->Table->FormatCondition(1, $i, $menu, $arr);
|
||
|
} // end of for
|
||
|
|
||
|
|
||
|
if(count($this->events)==0) {
|
||
|
if($this->editdate){
|
||
|
$this->app->Table->FormatCondition(6, 0, "<span class=\"inactive\">%value%</span>", array(5,6));
|
||
|
$this->app->Table->HideCol(6);
|
||
|
}
|
||
|
else {
|
||
|
$this->app->Table->FormatCondition(5, 0, "<span class=\"inactive\">%value%</span>", array(4, 5));
|
||
|
$this->app->Table->HideCol(5);
|
||
|
$this->app->Table->HideCol(4); // menu ausblenden falls keine events registriert sind
|
||
|
}
|
||
|
} else {
|
||
|
// inaktiv zeile
|
||
|
if($this->editdate){
|
||
|
$this->app->Table->FormatCondition(6, 0, "<span class=\"inactive\">%value%</span>", array(5, 6));
|
||
|
$this->app->Table->HideCol(6);
|
||
|
}
|
||
|
else {
|
||
|
$this->app->Table->FormatCondition(5, 0, "<span class=\"inactive\">%value%</span>", array(4, 5));
|
||
|
$this->app->Table->HideCol(5);
|
||
|
}
|
||
|
} // end of if/else
|
||
|
|
||
|
|
||
|
|
||
|
if($this->mark && count($this->events)!=0) {
|
||
|
$this->app->Table->FormatCondition($this->mark_col, $this->mark_value, $this->mark_replace,$this->mark_exclude);
|
||
|
$this->app->Table->HideCol(6);
|
||
|
}
|
||
|
|
||
|
|
||
|
if ($numberofdatasets > 0)
|
||
|
$this->app->Table->Show();
|
||
|
else {
|
||
|
$table = '
|
||
|
<table width=400 cellpadding="0" cellspacing="0">
|
||
|
[TABLEHEADER]
|
||
|
<tr>
|
||
|
<td></td>
|
||
|
<td>keine Elemente vorhanden</td>
|
||
|
<td></td>';
|
||
|
|
||
|
if(count($this->events)!=0)
|
||
|
$table .= '<td>'.$menunew.'</td>';
|
||
|
|
||
|
$table .= '</tr></table>';
|
||
|
//$this->app->Tpl->Set(TABLEHEADER,$header);
|
||
|
$this->app->Tpl->Set($this->parsetarget,$table, array('TABLEHEADER'));
|
||
|
} // end of if
|
||
|
} // end of function
|
||
|
|
||
|
} // end of class
|
||
|
?>
|