diff --git a/gulliver/system/class.templatePower.php b/gulliver/system/class.templatePower.php index 02fb39928..55af10faf 100644 --- a/gulliver/system/class.templatePower.php +++ b/gulliver/system/class.templatePower.php @@ -25,35 +25,35 @@ * */ /* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | TemplatePower: | -// | offers you the ability to separate your PHP code and your HTML | -// +----------------------------------------------------------------------+ -// | | -// | Copyright (C) 2001,2002 R.P.J. Velzeboer, The Netherlands | -// | | -// | This program is free software; you can redistribute it and/or | -// | modify it under the terms of the GNU General Public License | -// | as published by the Free Software Foundation; either version 2 | -// | of the License, or (at your option) any later version. | -// | | -// | 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, write to the Free Software | -// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | -// | 02111-1307, USA. | -// | | -// | Author: R.P.J. Velzeboer, rovel@codocad.nl The Netherlands | -// | | -// +----------------------------------------------------------------------+ -// | http://templatepower.codocad.com | -// +----------------------------------------------------------------------+ -// -// $Id: Version 3.0.2$ +// +----------------------------------------------------------------------+ +// | TemplatePower: | +// | offers you the ability to separate your PHP code and your HTML | +// +----------------------------------------------------------------------+ +// | | +// | Copyright (C) 2001,2002 R.P.J. Velzeboer, The Netherlands | +// | | +// | This program is free software; you can redistribute it and/or | +// | modify it under the terms of the GNU General Public License | +// | as published by the Free Software Foundation; either version 2 | +// | of the License, or (at your option) any later version. | +// | | +// | 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, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | +// | 02111-1307, USA. | +// | | +// | Author: R.P.J. Velzeboer, rovel@codocad.nl The Netherlands | +// | | +// +----------------------------------------------------------------------+ +// | http://templatepower.codocad.com | +// +----------------------------------------------------------------------+ +// +// $Id: Version 3.0.2$ /** @@ -62,10 +62,10 @@ * */ -define( "T_BYFILE", 0 ); -define( "T_BYVAR", 1 ); +define("T_BYFILE", 0); +define("T_BYVAR", 1); -define( "TP_ROOTBLOCK", '_ROOT' ); +define("TP_ROOTBLOCK", '_ROOT'); /** * class TemplatePowerParser @@ -76,13 +76,13 @@ define( "TP_ROOTBLOCK", '_ROOT' ); class TemplatePowerParser { public $tpl_base; - //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) + //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) public $tpl_include; - //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) + //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) public $tpl_count; - public $parent = Array (); - // $parent[{blockname}] = {parentblockname} - public $defBlock = Array (); + public $parent = []; + // $parent[{blockname}] = {parentblockname} + public $defBlock = []; public $rootBlockName; public $ignore_stack; public $version; @@ -95,116 +95,117 @@ class TemplatePowerParser * @param string $type * @access private */ - public function TemplatePowerParser ($tpl_file, $type) + public function __construct($tpl_file, $type) { $this->version = '3.0.2'; - $this->tpl_base = Array ($tpl_file,$type); + $this->tpl_base = [$tpl_file, $type]; $this->tpl_count = 0; - $this->ignore_stack = Array (false); + $this->ignore_stack = [false]; } /** - * TemplatePowerParser::__errorAlert() + * TemplatePowerParser::errorAlert() * * @param string $message * * @access private */ - public function __errorAlert ($message) + public function errorAlert($message) { - print ('
' . $message . '
' . "\r\n") ; + print ('
' . $message . '
' . "\r\n"); } /** - * TemplatePowerParser::__prepare() + * TemplatePowerParser::prepare() * * @access private * @return void */ - public function __prepare () + public function prepare() { - $this->defBlock[TP_ROOTBLOCK] = Array (); - $tplvar = $this->__prepareTemplate( $this->tpl_base[0], $this->tpl_base[1] ); + $this->defBlock[TP_ROOTBLOCK] = []; + $tplvar = $this->prepareTemplate($this->tpl_base[0], $this->tpl_base[1]); $initdev["varrow"] = 0; $initdev["coderow"] = 0; $initdev["index"] = 0; $initdev["ignore"] = false; - $this->__parseTemplate( $tplvar, TP_ROOTBLOCK, $initdev ); - $this->__cleanUp(); + $this->parseTemplate($tplvar, TP_ROOTBLOCK, $initdev); + $this->cleanUp(); } /** - * TemplatePowerParser::__cleanUp() + * TemplatePowerParser::cleanUp() * * @return void * * @access private */ - public function __cleanUp () + public function cleanUp() { - for ($i = 0; $i <= $this->tpl_count; $i ++) { + for ($i = 0; $i <= $this->tpl_count; $i++) { $tplvar = 'tpl_rawContent' . $i; - unset( $this->{$tplvar} ); + unset($this->{$tplvar}); } } /** - * TemplatePowerParser::__prepareTemplate() + * TemplatePowerParser::prepareTemplate() * * @param string $tpl_file * @param string $type * @access private */ - public function __prepareTemplate ($tpl_file, $type) + public function prepareTemplate($tpl_file, $type) { $tplvar = 'tpl_rawContent' . $this->tpl_count; if ($type == T_BYVAR) { - $this->{$tplvar}["content"] = preg_split( "/\n/", $tpl_file, - 1, PREG_SPLIT_DELIM_CAPTURE ); + $this->{$tplvar}["content"] = preg_split("/\r\n/", $tpl_file, -1, PREG_SPLIT_DELIM_CAPTURE); } else { //Trigger the error in the local scope of the function //trigger_error ("Some error", E_USER_WARNING); - $this->{$tplvar}["content"] = @file( $tpl_file ) or die( $this->__errorAlert( 'TemplatePower Error: Couldn\'t open [ ' . $tpl_file . ' ]!' ) ); + $this->{$tplvar}["content"] = @file($tpl_file) or die($this->errorAlert('TemplatePower Error: Couldn\'t open [ ' . $tpl_file . ' ]!')); } - $this->{$tplvar}["size"] = sizeof( $this->{$tplvar}["content"] ); - $this->tpl_count ++; + $this->{$tplvar}["size"] = sizeof($this->{$tplvar}["content"]); + $this->tpl_count++; return $tplvar; } /** - * TemplatePowerParser::__parseTemplate() + * TemplatePowerParser::parseTemplate() * * @param string $tplvar * @param string $blockname * @param string $initdev * @access private */ - public function __parseTemplate ($tplvar, $blockname, $initdev) + public function parseTemplate($tplvar, $blockname, $initdev) { $coderow = $initdev["coderow"]; $varrow = $initdev["varrow"]; $index = $initdev["index"]; $ignore = $initdev["ignore"]; while ($index < $this->{$tplvar}["size"]) { - if (preg_match( '//', $this->{$tplvar}["content"][$index], $ignreg )) { + if (preg_match('//', $this->{$tplvar}["content"][$index], $ignreg)) { if ($ignreg[1] == 'START') { - //$ignore = true; - array_push( $this->ignore_stack, true ); + //$ignore = true; + array_push($this->ignore_stack, true); } else { - //$ignore = false; - array_pop( $this->ignore_stack ); + //$ignore = false; + array_pop($this->ignore_stack); } } else { - if (! end( $this->ignore_stack )) { - if (preg_match( '//', $this->{$tplvar}["content"][$index], $regs )) { - //remove trailing and leading spaces - $regs[2] = trim( $regs[2] ); + if (!end($this->ignore_stack)) { + if (preg_match('//', + $this->{$tplvar}["content"][$index], $regs)) { + //remove trailing and leading spaces + $regs[2] = trim($regs[2]); if ($regs[1] == 'INCLUDE') { $include_defined = true; //check if the include file is assigned - if (isset( $this->tpl_include[$regs[2]] )) { + if (isset($this->tpl_include[$regs[2]])) { $tpl_file = $this->tpl_include[$regs[2]][0]; $type = $this->tpl_include[$regs[2]][1]; - } elseif (file_exists( $regs[2] )) { + } elseif (file_exists($regs[2])) { //check if defined as constant in template $tpl_file = $regs[2]; $type = T_BYFILE; @@ -213,24 +214,24 @@ class TemplatePowerParser } if ($include_defined) { - //initialize startvalues for recursive call + //initialize startvalues for recursive call $initdev["varrow"] = $varrow; $initdev["coderow"] = $coderow; $initdev["index"] = 0; $initdev["ignore"] = false; - $tplvar2 = $this->__prepareTemplate( $tpl_file, $type ); - $initdev = $this->__parseTemplate( $tplvar2, $blockname, $initdev ); + $tplvar2 = $this->prepareTemplate($tpl_file, $type); + $initdev = $this->parseTemplate($tplvar2, $blockname, $initdev); $coderow = $initdev["coderow"]; $varrow = $initdev["varrow"]; } } elseif ($regs[1] == 'INCLUDESCRIPT') { $include_defined = true; - //check if the includescript file is assigned by the assignInclude function - if (isset( $this->tpl_include[$regs[2]] )) { + //check if the includescript file is assigned by the assignInclude function + if (isset($this->tpl_include[$regs[2]])) { $include_file = $this->tpl_include[$regs[2]][0]; $type = $this->tpl_include[$regs[2]][1]; - } elseif (file_exists( $regs[2] )) { - //check if defined as constant in template + } elseif (file_exists($regs[2])) { + //check if defined as constant in template $include_file = $regs[2]; $type = T_BYFILE; } else { @@ -239,111 +240,112 @@ class TemplatePowerParser if ($include_defined) { ob_start(); if ($type == T_BYFILE) { - if (! @include_once ($include_file)) { - $this->__errorAlert( 'TemplatePower Error: Couldn\'t include script [ ' . $include_file . ' ]!' ); + if (!@include_once($include_file)) { + $this->errorAlert('TemplatePower Error: Couldn\'t include script [ ' . $include_file . ' ]!'); exit(); } } else { - eval( "?>" . $include_file ); + eval("?>" . $include_file); } $this->defBlock[$blockname]["_C:$coderow"] = ob_get_contents(); - $coderow ++; + $coderow++; ob_end_clean(); } } elseif ($regs[1] == 'REUSE') { - //do match for 'AS' - if (preg_match( '/(.+) AS (.+)/', $regs[2], $reuse_regs )) { - $originalbname = trim( $reuse_regs[1] ); - $copybname = trim( $reuse_regs[2] ); - //test if original block exist - if (isset( $this->defBlock[$originalbname] )) { - //copy block + //do match for 'AS' + if (preg_match('/(.+) AS (.+)/', $regs[2], $reuse_regs)) { + $originalbname = trim($reuse_regs[1]); + $copybname = trim($reuse_regs[2]); + //test if original block exist + if (isset($this->defBlock[$originalbname])) { + //copy block $this->defBlock[$copybname] = $this->defBlock[$originalbname]; - //tell the parent that he has a child block + //tell the parent that he has a child block $this->defBlock[$blockname]["_B:" . $copybname] = ''; - //create index and parent info + //create index and parent info $this->index[$copybname] = 0; $this->parent[$copybname] = $blockname; } else { - $this->__errorAlert( 'TemplatePower Error: Can\'t find block \'' . $originalbname . '\' to REUSE as \'' . $copybname . '\'' ); + $this->errorAlert('TemplatePower Error: Can\'t find block \'' . $originalbname . '\' to REUSE as \'' . $copybname . '\''); } } else { - //so it isn't a correct REUSE tag, save as code + //so it isn't a correct REUSE tag, save as code $this->defBlock[$blockname]["_C:$coderow"] = $this->{$tplvar}["content"][$index]; - $coderow ++; + $coderow++; } } else { if ($regs[2] == $blockname) { - //is it the end of a block + //is it the end of a block break; } else { - //its the start of a block - //make a child block and tell the parent that he has a child - $this->defBlock[$regs[2]] = Array (); + //its the start of a block + //make a child block and tell the parent that he has a child + $this->defBlock[$regs[2]] = []; $this->defBlock[$blockname]["_B:" . $regs[2]] = ''; - //set some vars that we need for the assign functions etc. + //set some vars that we need for the assign functions etc. $this->index[$regs[2]] = 0; $this->parent[$regs[2]] = $blockname; - //prepare for the recursive call - $index ++; + //prepare for the recursive call + $index++; $initdev["varrow"] = 0; $initdev["coderow"] = 0; $initdev["index"] = $index; $initdev["ignore"] = false; - $initdev = $this->__parseTemplate( $tplvar, $regs[2], $initdev ); + $initdev = $this->parseTemplate($tplvar, $regs[2], $initdev); $index = $initdev["index"]; } } } else { //is it code and/or var(s) //explode current template line on the curly bracket '{' - $sstr = explode( '{', $this->{$tplvar}["content"][$index] ); - reset( $sstr ); - if (current( $sstr ) != '') { + $sstr = explode('{', $this->{$tplvar}["content"][$index]); + reset($sstr); + if (current($sstr) != '') { //the template didn't start with a '{', //so the first element of the array $sstr is just code - $this->defBlock[$blockname]["_C:$coderow"] = current( $sstr ); - $coderow ++; + $this->defBlock[$blockname]["_C:$coderow"] = current($sstr); + $coderow++; } - while (next( $sstr )) { + while (next($sstr)) { //find the position of the end curly bracket '}' - $pos = strpos( current( $sstr ), "}" ); + $pos = strpos(current($sstr), "}"); if (($pos !== false) && ($pos > 0)) { //a curly bracket '}' is found //and at least on position 1, to eliminate '{}' //note: position 1 taken without '{', because we did explode on '{' - $strlength = strlen( current( $sstr ) ); - $varname = substr( current( $sstr ), 0, $pos ); - if (strstr( $varname, ' ' )) { + $strlength = strlen(current($sstr)); + $varname = substr(current($sstr), 0, $pos); + if (strstr($varname, ' ')) { //the varname contains one or more spaces //so, it isn't a variable, save as code - $this->defBlock[$blockname]["_C:$coderow"] = '{' . current( $sstr ); - $coderow ++; + $this->defBlock[$blockname]["_C:$coderow"] = '{' . current($sstr); + $coderow++; } else { //save the variable $this->defBlock[$blockname]["_V:$varrow"] = $varname; - $varrow ++; + $varrow++; //is there some code after the varname left? if (($pos + 1) != $strlength) { //yes, save that code - $this->defBlock[$blockname]["_C:$coderow"] = substr( current( $sstr ), ($pos + 1), ($strlength - ($pos + 1)) ); - $coderow ++; + $this->defBlock[$blockname]["_C:$coderow"] = substr(current($sstr), ($pos + 1), + ($strlength - ($pos + 1))); + $coderow++; } } } else { - //no end curly bracket '}' found - //so, the curly bracket is part of the text. Save as code, with the '{' - $this->defBlock[$blockname]["_C:$coderow"] = '{' . current( $sstr ); - $coderow ++; + //no end curly bracket '}' found + //so, the curly bracket is part of the text. Save as code, with the '{' + $this->defBlock[$blockname]["_C:$coderow"] = '{' . current($sstr); + $coderow++; } } } } else { $this->defBlock[$blockname]["_C:$coderow"] = $this->{$tplvar}["content"][$index]; - $coderow ++; + $coderow++; } } - $index ++; + $index++; } $initdev["varrow"] = $varrow; $initdev["coderow"] = $coderow; @@ -354,10 +356,10 @@ class TemplatePowerParser /** * TemplatePowerParser::version() * - * @return void + * @return string * @access public */ - public function version () + public function version() { return $this->version; } @@ -371,9 +373,9 @@ class TemplatePowerParser * @return void * @access public */ - public function assignInclude ($iblockname, $value, $type = T_BYFILE) + public function assignInclude($iblockname, $value, $type = T_BYFILE) { - $this->tpl_include["$iblockname"] = Array ($value,$type); + $this->tpl_include["$iblockname"] = [$value, $type]; } } @@ -384,67 +386,67 @@ class TemplatePowerParser */ class TemplatePower extends TemplatePowerParser { - public $index = Array (); + public $index = []; // $index[{blockname}] = {indexnumber} - public $content = Array (); + public $content = []; public $currentBlock; public $showUnAssigned; public $serialized; - public $globalvars = Array (); + public $globalvars = []; public $prepared; /** - * TemplatePower::TemplatePower() + * TemplatePower::__construct() * * @param string $tpl_file * @param string $type * @return void * @access public */ - public function TemplatePower ($tpl_file = '', $type = T_BYFILE) + public function __construct($tpl_file = '', $type = T_BYFILE) { - TemplatePowerParser::TemplatePowerParser( $tpl_file, $type ); + TemplatePowerParser::__construct($tpl_file, $type); $this->prepared = false; $this->showUnAssigned = false; $this->serialized = false; - //added: 26 April 2002 + //added: 26 April 2002 } /** - * TemplatePower::__deSerializeTPL() + * TemplatePower::deSerializeTPL() * * @param string $stpl_file * @param string $tplvar * @return void * @access private */ - public function __deSerializeTPL ($stpl_file, $type) + public function deSerializeTPL($stpl_file, $type) { if ($type == T_BYFILE) { - $serializedTPL = @file( $stpl_file ) or die( $this->__errorAlert( 'TemplatePower Error: Can\'t open [ ' . $stpl_file . ' ]!' ) ); + $serializedTPL = @file($stpl_file) or die($this->errorAlert('TemplatePower Error: Can\'t open [ ' . $stpl_file . ' ]!')); } else { $serializedTPL = $stpl_file; } - $serializedStuff = unserialize( join( '', $serializedTPL ) ); + $serializedStuff = unserialize(join('', $serializedTPL)); $this->defBlock = $serializedStuff["defBlock"]; $this->index = $serializedStuff["index"]; $this->parent = $serializedStuff["parent"]; } /** - * TemplatePower::__makeContentRoot() + * TemplatePower::makeContentRoot() * * @return void * @access private */ - public function __makeContentRoot () + public function makeContentRoot() { - $this->content[TP_ROOTBLOCK . "_0"][0] = Array (TP_ROOTBLOCK); + $this->content[TP_ROOTBLOCK . "_0"][0] = [TP_ROOTBLOCK]; $this->currentBlock = &$this->content[TP_ROOTBLOCK . "_0"][0]; } /** - * TemplatePower::__assign() + * TemplatePower::assignPrivate() * * @param string $varname * @param string $value @@ -452,13 +454,13 @@ class TemplatePower extends TemplatePowerParser * * @access private */ - public function __assign ($varname, $value) + public function assignPrivate($varname, $value) { - if (sizeof( $regs = explode( '.', $varname ) ) == 2) { + if (sizeof($regs = explode('.', $varname)) == 2) { //this is faster then preg_match $ind_blockname = $regs[0] . '_' . $this->index[$regs[0]]; - $lastitem = sizeof( $this->content[$ind_blockname] ); - $lastitem > 1 ? $lastitem -- : $lastitem = 0; + $lastitem = sizeof($this->content[$ind_blockname]); + $lastitem > 1 ? $lastitem-- : $lastitem = 0; $block = &$this->content[$ind_blockname][$lastitem]; $varname = $regs[1]; } else { @@ -468,48 +470,49 @@ class TemplatePower extends TemplatePowerParser } /** - * TemplatePower::__assignGlobal() + * TemplatePower::assignGlobalPrivate() * * @param string $varname * @param string $value * @return void * @access private */ - public function __assignGlobal ($varname, $value) + public function assignGlobalPrivate($varname, $value) { $this->globalvars[$varname] = $value; } /** - * TemplatePower::__outputContent() + * TemplatePower::outputContent() * * @param string $blockname * @return void * @access private */ - public function __outputContent ($blockname) + public function outputContent($blockname) { - $numrows = sizeof( $this->content[$blockname] ); - for ($i = 0; $i < $numrows; $i ++) { + $numrows = sizeof($this->content[$blockname]); + for ($i = 0; $i < $numrows; $i++) { $defblockname = $this->content[$blockname][$i][0]; - for (reset( $this->defBlock[$defblockname] ); $k = key( $this->defBlock[$defblockname] ); next( $this->defBlock[$defblockname] )) { + for (reset($this->defBlock[$defblockname]); $k = key($this->defBlock[$defblockname]); next($this->defBlock[$defblockname])) { if ($k[1] == 'C') { - print ($this->defBlock[$defblockname][$k]) ; + print ($this->defBlock[$defblockname][$k]); } elseif ($k[1] == 'V') { $defValue = $this->defBlock[$defblockname][$k]; - if (! isset( $this->content[$blockname][$i]["_V:" . $defValue] )) { - if (isset( $this->globalvars[$defValue] )) { + if (!isset($this->content[$blockname][$i]["_V:" . $defValue])) { + if (isset($this->globalvars[$defValue])) { $value = $this->globalvars[$defValue]; } else { - //Verify if $defValue is like - // "xmlfile:ID_LABEL" - //if it is load an xml label. - //if not continues with non assigned value. - if (preg_match( "/(.+):(.+)/", $defValue, $xmlreg )) { - $value = G::LoadTranslation(/*$xmlreg[1],*/$xmlreg[2] ); + //Verify if $defValue is like + // "xmlfile:ID_LABEL" + //if it is load an xml label. + //if not continues with non assigned value. + if (preg_match("/(.+):(.+)/", $defValue, $xmlreg)) { + $value = G::LoadTranslation(/*$xmlreg[1],*/ + $xmlreg[2]); } else { if ($this->showUnAssigned) { - //$value = '{'. $this->defBlock[ $defblockname ][$k] .'}'; + //$value = '{'. $this->defBlock[ $defblockname ][$k] .'}'; $value = '{' . $defValue . '}'; } else { $value = ''; @@ -519,12 +522,13 @@ class TemplatePower extends TemplatePowerParser } else { $value = $this->content[$blockname][$i]["_V:" . $defValue]; } - if ($this->unhtmlentities) - $value = G::unhtmlentities( $value ); - print ($value) ; + if ($this->unhtmlentities) { + $value = G::unhtmlentities($value); + } + print ($value); } elseif ($k[1] == 'B') { - if (isset( $this->content[$blockname][$i][$k] )) { - $this->__outputContent( $this->content[$blockname][$i][$k] ); + if (isset($this->content[$blockname][$i][$k])) { + $this->outputContent($this->content[$blockname][$i][$k]); } } } @@ -532,16 +536,16 @@ class TemplatePower extends TemplatePowerParser } /** - * function __printVars + * function printVars * * @return void * @access public */ - public function __printVars () + public function printVars() { - var_dump( $this->defBlock ); - print ("
--------------------
") ; - var_dump( $this->content ); + var_dump($this->defBlock); + print ("
--------------------
"); + var_dump($this->content); } /** @@ -557,10 +561,10 @@ class TemplatePower extends TemplatePowerParser * * @access public */ - public function serializedBase () + public function serializedBase() { $this->serialized = true; - $this->__deSerializeTPL( $this->tpl_base[0], $this->tpl_base[1] ); + $this->deSerializeTPL($this->tpl_base[0], $this->tpl_base[1]); } /** @@ -570,7 +574,7 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function showUnAssigned ($state = true) + public function showUnAssigned($state = true) { $this->showUnAssigned = $state; } @@ -581,14 +585,14 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function prepare () + public function prepare() { - if (! $this->serialized) { - TemplatePowerParser::__prepare(); + if (!$this->serialized) { + TemplatePowerParser::prepare(); } $this->prepared = true; $this->index[TP_ROOTBLOCK] = 0; - $this->__makeContentRoot(); + $this->makeContentRoot(); } /** @@ -598,28 +602,29 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function newBlock ($blockname) + public function newBlock($blockname) { $parent = &$this->content[$this->parent[$blockname] . '_' . $this->index[$this->parent[$blockname]]]; - $lastitem = sizeof( $parent ); - $lastitem > 1 ? $lastitem -- : $lastitem = 0; + $lastitem = sizeof($parent); + $lastitem > 1 ? $lastitem-- : $lastitem = 0; $ind_blockname = $blockname . '_' . $this->index[$blockname]; - if (! isset( $parent[$lastitem]["_B:$blockname"] )) { - //ok, there is no block found in the parentblock with the name of {$blockname} - //so, increase the index counter and create a new {$blockname} block + if (!isset($parent[$lastitem]["_B:$blockname"])) { + //ok, there is no block found in the parentblock with the name of {$blockname} + //so, increase the index counter and create a new {$blockname} block $this->index[$blockname] += 1; $ind_blockname = $blockname . '_' . $this->index[$blockname]; - if (! isset( $this->content[$ind_blockname] )) { - $this->content[$ind_blockname] = Array (); + if (!isset($this->content[$ind_blockname])) { + $this->content[$ind_blockname] = []; } - //tell the parent where his (possible) children are located + //tell the parent where his (possible) children are located $parent[$lastitem]["_B:$blockname"] = $ind_blockname; } - //now, make a copy of the block defenition - $blocksize = sizeof( $this->content[$ind_blockname] ); - $this->content[$ind_blockname][$blocksize] = Array ($blockname - ); - //link the current block to the block we just created + //now, make a copy of the block defenition + $blocksize = sizeof($this->content[$ind_blockname]); + $this->content[$ind_blockname][$blocksize] = [ + $blockname + ]; + //link the current block to the block we just created $this->currentBlock = &$this->content[$ind_blockname][$blocksize]; } @@ -632,14 +637,14 @@ class TemplatePower extends TemplatePowerParser * * @access public */ - public function assignGlobal ($varname, $value = '') + public function assignGlobal($varname, $value = '') { - if (is_array( $varname )) { + if (is_array($varname)) { foreach ($varname as $var => $value) { - $this->__assignGlobal( $var, $value ); + $this->assignGlobalPrivate($var, $value); } } else { - $this->__assignGlobal( $varname, $value ); + $this->assignGlobalPrivate($varname, $value); } } @@ -651,14 +656,14 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function assign ($varname, $value = '') + public function assign($varname, $value = '') { - if (is_array( $varname )) { + if (is_array($varname)) { foreach ($varname as $var => $value) { - $this->__assign( $var, $value ); + $this->assignPrivate($var, $value); } } else { - $this->__assign( $varname, $value ); + $this->assignPrivate($varname, $value); } } @@ -669,14 +674,14 @@ class TemplatePower extends TemplatePowerParser * @param string $blockname * @access public */ - public function gotoBlock ($blockname) + public function gotoBlock($blockname) { - if (isset( $this->defBlock[$blockname] )) { + if (isset($this->defBlock[$blockname])) { $ind_blockname = $blockname . '_' . $this->index[$blockname]; - //get lastitem indexnumber - $lastitem = sizeof( $this->content[$ind_blockname] ); - $lastitem > 1 ? $lastitem -- : $lastitem = 0; - //link the current block + //get lastitem indexnumber + $lastitem = sizeof($this->content[$ind_blockname]); + $lastitem > 1 ? $lastitem-- : $lastitem = 0; + //link the current block $this->currentBlock = &$this->content[$ind_blockname][$lastitem]; } } @@ -688,13 +693,13 @@ class TemplatePower extends TemplatePowerParser * @param string $varname * @access public */ - public function getVarValue ($varname) + public function getVarValue($varname) { - if (sizeof( $regs = explode( '.', $varname ) ) == 2) { - //this is faster then preg_match{ + if (sizeof($regs = explode('.', $varname)) == 2) { + //this is faster then preg_match{ $ind_blockname = $regs[0] . '_' . $this->index[$regs[0]]; - $lastitem = sizeof( $this->content[$ind_blockname] ); - $lastitem > 1 ? $lastitem -- : $lastitem = 0; + $lastitem = sizeof($this->content[$ind_blockname]); + $lastitem > 1 ? $lastitem-- : $lastitem = 0; $block = &$this->content[$ind_blockname][$lastitem]; $varname = $regs[1]; } else { @@ -709,12 +714,12 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function printToScreen () + public function printToScreen() { if ($this->prepared) { - $this->__outputContent( TP_ROOTBLOCK . '_0' ); + $this->outputContent(TP_ROOTBLOCK . '_0'); } else { - $this->__errorAlert( 'TemplatePower Error: Template isn\'t prepared!' ); + $this->errorAlert('TemplatePower Error: Template isn\'t prepared!'); } } @@ -724,7 +729,7 @@ class TemplatePower extends TemplatePowerParser * @return void * @access public */ - public function getOutputContent () + public function getOutputContent() { ob_start(); $this->printToScreen(); diff --git a/workflow/engine/bin/tasks/cliWorkspaces.php b/workflow/engine/bin/tasks/cliWorkspaces.php index d44c1c7d5..14daabc23 100644 --- a/workflow/engine/bin/tasks/cliWorkspaces.php +++ b/workflow/engine/bin/tasks/cliWorkspaces.php @@ -625,6 +625,7 @@ function database_upgrade($args) foreach ($workspaces as $workspace) { try { $workspace->upgradeDatabase(); + $workspace->close(); } catch (Exception $e) { G::outRes("> Error: " . CLI::error($e->getMessage()) . "\n"); } diff --git a/workflow/engine/classes/WorkspaceTools.php b/workflow/engine/classes/WorkspaceTools.php index 4400f8da9..c74663a92 100644 --- a/workflow/engine/classes/WorkspaceTools.php +++ b/workflow/engine/classes/WorkspaceTools.php @@ -1354,7 +1354,6 @@ class WorkspaceTools // Ending the schema update CLI::logging("-> Schema Updated\n"); - $this->closeDatabase(); return true; } @@ -2562,40 +2561,22 @@ class WorkspaceTools throw new Exception($errorMessage); } - // Clean the queries array - $listQueries = []; - // Canceled List - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListProId('LIST_CANCELED')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListUsrId('LIST_CANCELED')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListTasId('LIST_CANCELED')); - // Inbox List - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListProId('LIST_INBOX')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListUsrId('LIST_INBOX')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListTasId('LIST_INBOX')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListAppStatusId('LIST_INBOX')); - // Participated List - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListProId('LIST_PARTICIPATED_LAST')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListUsrId('LIST_PARTICIPATED_LAST')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListTasId('LIST_PARTICIPATED_LAST')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListAppStatusId('LIST_PARTICIPATED_LAST')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListParticipatedLastCurrentUser()); - // Unassigned List - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListProId('LIST_UNASSIGNED')); - $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->updateListTasId('LIST_UNASSIGNED')); + // Updating PRO_ID field + $this->runUpdateListField(['LIST_CANCELED', 'LIST_INBOX', 'LIST_PARTICIPATED_LAST', 'LIST_UNASSIGNED'], 'updateListProId'); - // Run queries in multiple threads for update the list tables - $processesManager = new ProcessesManager($listQueries); - $processesManager->run(); + // Updating TAS_ID field + $this->runUpdateListField(['LIST_CANCELED', 'LIST_INBOX', 'LIST_PARTICIPATED_LAST', 'LIST_UNASSIGNED'], 'updateListTasId'); - // If exists an error throw an exception - if (!empty($processesManager->getErrors())) { - $errorMessage = ''; - foreach ($processesManager->getErrors() as $error) { - $errorMessage .= $error['rawAnswer'] . PHP_EOL; - } - throw new Exception($errorMessage); - } + // Updating USR_ID field + $this->runUpdateListField(['LIST_CANCELED', 'LIST_INBOX', 'LIST_PARTICIPATED_LAST'], 'updateListUsrId'); + // Updating APP_STATUS_ID field + $this->runUpdateListField(['LIST_INBOX', 'LIST_PARTICIPATED_LAST'], 'updateListAppStatusId'); + + // Updating Last Current User Information + $this->runUpdateListField(['LIST_PARTICIPATED_LAST'], 'updateListParticipatedLastCurrentUser'); + + // Updating flags for the list population $this->listFirstExecution('insert'); $this->listFirstExecution('insert', 'unassigned'); } @@ -2986,6 +2967,37 @@ class WorkspaceTools $stmt->executeQuery($this->updateListTasId('LIST_UNASSIGNED')); } + /** + * Run the update queries for the specified tables + * + * @param array $listTables + * @param string $methodName + * + * @throws Exception + */ + public function runUpdateListField(array $listTables, $methodName) { + // Clean the queries array + $listQueries = []; + + // Get the queries + foreach ($listTables as $listTable) { + $listQueries[] = new RunProcessUpgradeQuery($this->name, $this->$methodName($listTable)); + } + + // Run queries in multiple threads for update the list tables + $processesManager = new ProcessesManager($listQueries); + $processesManager->run(); + + // If exists an error throw an exception + if (!empty($processesManager->getErrors())) { + $errorMessage = ''; + foreach ($processesManager->getErrors() as $error) { + $errorMessage .= $error['rawAnswer'] . PHP_EOL; + } + throw new Exception($errorMessage); + } + } + /** * Return query to update PRO_ID in list table *