Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,249 @@
|
||||
<?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
|
||||
?>
|
||||
Reference in New Issue
Block a user