<?php
/*********************************************************************************
* TES is a Time and Expense Management program developed by
* Initechs, LLC. Copyright (C) 2009 - 2010 Initechs LLC.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY INITECHS, INITECHS DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact Initechs headquarters at 1841 Piedmont Road, Suite 301,
* Marietta, GA, USA. or at email address hide@address.com
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display od the "Initechs" logo.
* If the display of the logo is not reasonably feasible for technical reasons,
* the Appropriate Legal Notices must display the words "Powered by Initechs".
********************************************************************************/
$basedir = dirname(__FILE__) . '/..';
class DisplayControlStructure
{
public $layoutArray;
public $heading;
public $addlButtonArray;
public $buttonArray;
public $buttonPlace;
public $helptext;
public function __construct($folder, $layoutArrayName)
{
global $lookupArray; // Declared to avoid dev studio warining
global $basedir;
require("$basedir/$folder/config.php");
if ($layoutArrayName == '')
{
$this->layoutArray = null;
return;
}
$layoutArray = $$layoutArrayName;
$MetaData = $$layoutArray['fieldMetaData'];
foreach ($MetaData as $Field => $FieldMetaData)
$MetaData[$Field]['label'] = changeLiteral($FieldMetaData['label']);
foreach ($layoutArray as $field => $attrib)
{
if ((strtolower($field) == 'fieldmetadata')
or (strtolower($field) == 'heading')
or (strtolower($field) == 'buttons')
or (strtolower($field) == 'addl_buttons')
or (strtolower($field) == 'buttonplace')
or (strtolower($field) == 'helptext'))
continue;
$this->layoutArray[$field]= array_merge(array('displayType' => $attrib), $MetaData[$field]);
if (isset($MetaData[$field]['validValues'])
and ($MetaData[$field]['validValues']) <> '')
{
$tempary = $$MetaData[$field]['validValues'];
if (isset($tempary['table']))
{
$dataset = $this->loadfromtable($tempary);
$$MetaData[$field]['validValues']= $dataset;
}
$this->layoutArray[$field]['validValues'] = $$MetaData[$field]['validValues'];
}
if (isset($MetaData[$field]['functionParms'])
and ($MetaData[$field]['functionParms']) <> '')
$this->layoutArray[$field]['functionParms'] = $$MetaData[$field]['functionParms'];
if ((isset($lookupArray))
and (array_key_exists($field, $lookupArray)))
{
$this->layoutArray[$field]['lookup'] = $lookupArray[$field];
}
}
if (isset($layoutArray['addl_buttons']))
{
$this->addlButtonArray = $layoutArray['addl_buttons'];
foreach ($this->addlButtonArray as $index => $button_info_array)
{
if (isset($button_info_array['filter_keys']))
{
$key_array = explode(',', $button_info_array['filter_keys']);
for ($i = 0; $i < sizeof($key_array); $i++)
$key_array[$i] = trim($key_array[$i]);
$this->addlButtonArray[$index]['filter_keys'] = $key_array;
}
}
}
$this->heading = $layoutArray['heading'];
$this->buttonArray = $layoutArray['buttons'];
$this->buttonPlace = $layoutArray['buttonPlace'];
$this->helptext = $layoutArray['helptext'];
}
private function loadfromtable($tempary)
{
$table = $tempary['table'];
$columns = $tempary['columns'];
$where = $tempary['where'];
$sortby = $tempary['sortby'];
$Data = new dbObj();
$row = $Data->fetchRowColumnsbyWhereClause($table, $columns, $where, $sortby);
$rtnary = array();
foreach ($row as $int => $ary)
{
$cnt = 0;
foreach ($ary as $id => $desc)
{
If ($cnt == 0)
$wrk_desc = $desc;
If ($cnt == 1)
$rtnary[$wrk_desc]= $desc;
$cnt += 1;
}
}
return $rtnary;
}
}
?>