<?php
class Report_Filter
{
public $And_Or;
public $Report_Field_ID;
public $Comparison;
public $Value;
}
class Report_Order_By
{
public $Report_Field_ID;
public $Direction;
}
class Text_Export_Formatting
{
public $Field_Delimiter = ",";
public $Text_Qualifier = "\"";
public $Include_Headers = true;
public $Apply_Delimiter_To_Headers = true;
public $Apply_Qualifier_To_Headers = true;
public $Fixed_Width = false;
public $Fixed_Widths = array(); // array with Fixed_Width_Info objects
}
class Fixed_Width_Info
{
public $Report_Field_ID;
public $Column_Width;
}
class Column_Formatting
{
public $Report_Field_ID;
public $Bold;
public $Italic;
public $Underline;
public $Alignment;
public $Data_Type; // Data_Type type
public $Summary_Type; // Summary_Type type
public $Total;
public $Pivot_Table_Field;
}
class Header_Formatting
{
public $Report_Field_ID;
public $Bold;
public $Italic;
public $Underline;
public $Alignment;
}
class Excel_Export_Formatting
{
public $Type;
public $Include_Headers;
public $Include_Data_Tab;
public $Header_Format = array(); // array of Header_Formatting objects
public $Column_Format = array(); // array of Column_Formatting objects
public $Table_Theming;
}
class Delivery_Method
{
public $Type;
public $Share_Drive_Info;
public $EMail_Info;
public $FTP_Info;
}
class FTP_Information
{
public $Secure;
public $Address;
public $Port;
public $Path;
public $Username;
public $Password;
}
class EMail_Information
{
public $Recipient;
public $CC_Recipient;
public $BCC_Recipient;
public $Subject;
public $Body;
}
class Share_Drive_Information
{
public $Address;
public $Username;
public $Password;
}
class ReportSettings
{
public $Report_Platform_ID = null;
public $Report_Type_ID = null;
public $Zip_File = null;
public $Encrypt_File = null;
public $AES_Encrypt = null;
public $Encrypt_Password = "RANDOM PASSWORD";
public $Export_Filename = null;
public $Export_Type = "Text";
public $Report_Field_IDs = array(); // array with native type
/* Requires setter methods */
// Setter method: setReportFilters()
public $Report_Filters = array(); // array with Report_Filter objects
// Setter method: setReportOrderBy()
public $Report_Order_Bys = array(); // array with Report_Order_By objects
// Setter method: setTextExport()
public $Text_Export;
// Setter method: setExcelExport()
public $Excel_Export;
// Setter method: setDeliveryMethod()
public $Delivery_Methods;
public function setReportFilters($data)
{
foreach($data as $d)
{
$o = new Report_Filter();
$o->Report_Field_ID = $d['Report_Field_ID'];
$o->Comparison = $d['Comparison'];
$o->Value = $d['Value'];
$o->And_Or = $d['And_Or'];
$this->Report_Filters[] = $o;
}
}
public function setReportOrderBy($data)
{
foreach($data as $d)
{
$o = new Report_Order_By();
$o->Report_Field_ID = $d['Report_Field_ID'];
$o->Direction = $d['Direction'];
$this->Report_Order_Bys[] = $o;
}
}
public function setTextExport($data)
{
$o = new Text_Export_Formatting();
$o->Field_Delimiter = $data['Field_Delimiter'];
$o->Text_Qualifier = $data['Text_Qualifier'];
$o->Apply_Delimiter_To_Headers = $data['Apply_Delimiter_To_Headers'];
$o->Apply_Qualifier_To_Headers = $data['Apply_Qualifier_To_Headers'];
$o->Include_Headers = $data['Include_Headers'];
$o->Fixed_Width = $data['Fixed_Width'];
if($data['Fixed_Width'])
{
foreach ($data['Fixed_Widths'] as $w)
{
$fw = new Fixed_Width_Info();
$fw->Column_Width = $w['Column_Width'];
$fw->Report_Field_ID = $w['Report_Field_ID'];
$o->Fixed_Widths[] = $fw;
}
}
}
public function setExcelExport($data)
{
$o = new Excel_Export_Formatting();
$o->Type = $data['Type'];
$o->Include_Headers = $data['Include_Headers'];
$o->Include_Data_Tab = $data['Include_Data_Tab'];
if($data['Header_Format'])
{
foreach ($data['Header_Format'] as $d)
{
$hf = new Header_Formatting();
$hf->Report_Field_ID = $d['Report_Field_ID'];
$hf->Alignment = $d['Alignment'];
$hf->Bold = $d['Bold'];
$hf->Italic = $d['Italic'];
$hf->Underline = $d['Underline'];
$o->Column_Format[] = $hf;
}
}
if($data['Column_Format'])
{
foreach ($data['Column_Format'] as $d)
{
$cf = new Column_Formatting();
$cf->Report_Field_ID = $d['Report_Field_ID'];
$cf->Alignment = $d['Alignment'];
$cf->Bold = $d['Bold'];
$cf->Italic = $d['Italic'];
$cf->Data_Type = $d['Data_Type'];
$cf->Underline = $d['Underline'];
$cf->Summary_Type = $d['Summary_Type'];
$cf->Total = $d['Total'];
$o->Column_Format[] = $cf;
}
}
}
public function setDeliveryMethod($data)
{
$o = new Delivery_Method();
$o->Type = $data['Type'];
switch ($data['Type'])
{
case 'ftp' :
$f = new FTP_Information();
$f->Address = $data['Address'];
$f->Path = $data['Path'];
$f->Port = $data['Port'];
$f->Username = $data['Username'];
$f->Password = $data['Password'];
$f->Secure = $data['Secure'];
$o->FTP_Info = $f;
break;
case 'email' :
$e = new EMail_Information();
$e->Subject = $data['Subject'];
$e->Recipient = $data['Recipient'];
$e->CC_Recipient = $data['CC_Recipient'];
$e->BCC_Recipient = $data['BCC_Recipient'];
$e->Body = $data['Body'];
$o->EMail_Info = $e;
break;
case 'shared':
$s = new Share_Drive_Information();
$s->Username = $data['Username'];
$s->Password = $data['Password'];
$s->Address = $data['Address'];
$o->Share_Drive_Info = $s;
break;
default:
}
$this->Delivery_Methods = $o;
}
}
// TEST
$test = new ReportSettings();
$test->Report_Platform_ID = 11;
$test->Report_Type_ID = 7;
$test->Zip_File = 'myzipfile.zip';
$test->Encrypt_File = true;
$test->AES_Encrypt = true;
$test->Encrypt_Password = 'p455w0rd';
$test->Export_Filename = 'myexportfile.txt';
$test->Export_Type = 'Text';
$test->Report_Field_IDs = array(32,12,66,1,13);
$test->setReportFilters(
array(
array(
'Report_Field_ID' => '32',
'Comparison' => '=',
'Value' => 'thisvalue',
'And_Or' => null
),
array(
'Report_Field_ID' => '12',
'Comparison' => '>',
'Value' => '100',
'And_Or' => 'or'
)
)
);
$test->setReportOrderBy(
array(
array(
'Report_Field_ID' => '32',
'Direction' => 'ASC'
)
)
);
$test->setTextExport(
array(
'Field_Delimiter' => '\,',
'Text_Qualifier' => '\"',
'Apply_Delimiter_To_Headers' => true,
'Apply_Qualifier_To_Headers' => true,
'Include_Headers' => true,
'Fixed_Width' => false
)
);
$test->setDeliveryMethod(
array(
'Type' => 'ftp',
'Address' => '12.33.44.44',
'Path' => '/home/htdocs/files',
'Port' => '21',
'Username' => 'myuser',
'Password' => 'mypassword',
'Secure' => false
)
);
var_dump($test);
- Output for git.master, git.master_jit, rfc.property-hooks
- object(ReportSettings)#1 (14) {
["Report_Platform_ID"]=>
int(11)
["Report_Type_ID"]=>
int(7)
["Zip_File"]=>
string(13) "myzipfile.zip"
["Encrypt_File"]=>
bool(true)
["AES_Encrypt"]=>
bool(true)
["Encrypt_Password"]=>
string(8) "p455w0rd"
["Export_Filename"]=>
string(16) "myexportfile.txt"
["Export_Type"]=>
string(4) "Text"
["Report_Field_IDs"]=>
array(5) {
[0]=>
int(32)
[1]=>
int(12)
[2]=>
int(66)
[3]=>
int(1)
[4]=>
int(13)
}
["Report_Filters"]=>
array(2) {
[0]=>
object(Report_Filter)#2 (4) {
["And_Or"]=>
NULL
["Report_Field_ID"]=>
string(2) "32"
["Comparison"]=>
string(1) "="
["Value"]=>
string(9) "thisvalue"
}
[1]=>
object(Report_Filter)#3 (4) {
["And_Or"]=>
string(2) "or"
["Report_Field_ID"]=>
string(2) "12"
["Comparison"]=>
string(1) ">"
["Value"]=>
string(3) "100"
}
}
["Report_Order_Bys"]=>
array(1) {
[0]=>
object(Report_Order_By)#4 (2) {
["Report_Field_ID"]=>
string(2) "32"
["Direction"]=>
string(3) "ASC"
}
}
["Text_Export"]=>
NULL
["Excel_Export"]=>
NULL
["Delivery_Methods"]=>
object(Delivery_Method)#5 (4) {
["Type"]=>
string(3) "ftp"
["Share_Drive_Info"]=>
NULL
["EMail_Info"]=>
NULL
["FTP_Info"]=>
object(FTP_Information)#6 (6) {
["Secure"]=>
bool(false)
["Address"]=>
string(11) "12.33.44.44"
["Port"]=>
string(2) "21"
["Path"]=>
string(18) "/home/htdocs/files"
["Username"]=>
string(6) "myuser"
["Password"]=>
string(10) "mypassword"
}
}
}
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
36.96 ms | 405 KiB | 8 Q