- These fields are ommited when the list is generated - An optional parameter was added, which if it is on "1" includes multiple selection fieds: such as listbox, checkgroup and grid - File field can't be included becuase it's necessary to define first how files will be copied if we decide to include it later
470 lines
21 KiB
PHP
Executable File
470 lines
21 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* class.xmlfield_InputPM.php
|
|
* @package workflow.engine.classes
|
|
*
|
|
* ProcessMaker Open Source Edition
|
|
* Copyright (C) 2004 - 2011 Colosa Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
|
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
|
*
|
|
* @package workflow.engine.classes
|
|
*/
|
|
|
|
class XmlForm_Field_TextPM extends XmlForm_Field_SimpleText
|
|
{
|
|
var $size=15;
|
|
var $maxLength=64;
|
|
var $validate='Any';
|
|
var $mask = '';
|
|
var $defaultValue='';
|
|
var $required=false;
|
|
var $dependentFields='';
|
|
var $linkField='';
|
|
//Possible values:(-|UPPER|LOWER|CAPITALIZE)
|
|
var $strTo='';
|
|
var $readOnly=false;
|
|
var $sqlConnection=0;
|
|
var $sql='';
|
|
var $sqlOption=array();
|
|
//Atributes only for grids
|
|
var $formula = '';
|
|
var $function = '';
|
|
var $replaceTags = 0;
|
|
var $showVars = 0;
|
|
var $process = '';
|
|
var $symbol = '@@';
|
|
|
|
/**
|
|
* Function render
|
|
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter string value
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function render( $value = NULL , $owner = NULL )
|
|
{
|
|
//$this->executeSQL();
|
|
//if (isset($this->sqlOption)) {
|
|
// reset($this->sqlOption);
|
|
// $firstElement=key($this->sqlOption);
|
|
// if (isset($firstElement)) $value = $firstElement;
|
|
//}
|
|
//NOTE: string functions must be in G class
|
|
if ($this->strTo==='UPPER')
|
|
$value = strtoupper($value);
|
|
if ($this->strTo==='LOWER')
|
|
$value = strtolower($value);
|
|
//if ($this->strTo==='CAPITALIZE') $value = strtocapitalize($value);
|
|
$onkeypress = G::replaceDataField( $this->onkeypress, $owner->values );
|
|
if ($this->replaceTags == 1) {
|
|
$value = G::replaceDataField( $value, $owner->values );
|
|
}
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
//$sShowVars = ' <a href="#" onclick="showDynaformsFormVars(\'form['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;">' . $this->symbol . '</a>';
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' readOnly="readOnly" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
else
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' style="display:none;'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' .
|
|
$this->htmlentities( $value , ENT_COMPAT, 'utf-8');
|
|
} else {
|
|
return $this->htmlentities( $value , ENT_COMPAT, 'utf-8');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function renderGrid
|
|
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter array values
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function renderGrid( $values=array() , $owner )
|
|
{
|
|
$result=array();
|
|
$r=1;
|
|
foreach($values as $v) {
|
|
if ($this->replaceTags == 1) {
|
|
$v = G::replaceDataField( $v, $owner->values );
|
|
}
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
//$sShowVars = ' <a href="#" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;">' . $this->symbol . '</a>';
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value="'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'" readOnly="readOnly" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
else
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value="'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
$result[] = $this->htmlentities( $v , ENT_COMPAT, 'utf-8');
|
|
} else {
|
|
$result[] = $this->htmlentities( $v , ENT_COMPAT, 'utf-8');
|
|
}
|
|
$r++;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Function attachEvents
|
|
* @access public
|
|
* @parameter string $element
|
|
* @return string
|
|
*/
|
|
function attachEvents($element)
|
|
{
|
|
return "myForm.aElements[i] = new G_Text(myForm, $element,'{$this->name}');
|
|
myForm.aElements[i].setAttributes(" . $this->getAttributes() . ");";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class XmlForm_Field_TextareaPM
|
|
*/
|
|
class XmlForm_Field_TextareaPM extends XmlForm_Field
|
|
{
|
|
var $rows = 12;
|
|
var $cols = 40;
|
|
var $required = false;
|
|
var $readOnly = false;
|
|
var $wrap = 'OFF';
|
|
var $showVars = 0;
|
|
var $process = '';
|
|
var $symbol = '@@';
|
|
|
|
/**
|
|
* Function render
|
|
* @author Julio Cesar Laura Avendao <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter string value
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function render( $value = NULL, $owner )
|
|
{
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
return '<textarea id="form['.$this->name.']" name="form['.$this->name.']" cols="'.$this->cols.'" rows="'.$this->rows.'" style="'.$this->style.'" wrap="'.htmlentities($this->wrap,ENT_QUOTES,'UTF-8').'" class="FormTextPM" readOnly>'.$this->htmlentities( $value ,ENT_COMPAT,'utf-8').'</textarea>' . $sShowVars;
|
|
else
|
|
return '<textarea id="form['.$this->name.']" name="form['.$this->name.']" cols="'.$this->cols.'" rows="'.$this->rows.'" style="'.$this->style.'" wrap="'.htmlentities($this->wrap,ENT_QUOTES,'UTF-8').'" class="FormTextPM" >'.$this->htmlentities( $value ,ENT_COMPAT,'utf-8').'</textarea>' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
return '<textarea id="form['.$this->name.']" name="form['.$this->name.']" cols="'.$this->cols.'" rows="'.$this->rows.'" readOnly style="border:0px;backgroud-color:inherit;'.$this->style.'" wrap="'.htmlentities($this->wrap,ENT_QUOTES,'UTF-8').'" class="FormTextPM" >'.$this->htmlentities( $value ,ENT_COMPAT,'utf-8').'</textarea>';
|
|
} else {
|
|
return '<textarea id="form['.$this->name.']" name="form['.$this->name.']" cols="'.$this->cols.'" rows="'.$this->rows.'" style="'.$this->style.'" wrap="'.htmlentities($this->wrap,ENT_QUOTES,'UTF-8').'" class="FormTextArea" >'.$this->htmlentities( $value ,ENT_COMPAT,'utf-8').'</textarea>';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function renderGrid
|
|
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter string values
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function renderGrid( $values = NULL , $owner )
|
|
{
|
|
$result=array();
|
|
$r=1;
|
|
foreach($values as $v) {
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
//$sShowVars = ' <a href="#" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;">' . $this->symbol . '</a>';
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'\' readOnly="readOnly"/>' . $sShowVars;
|
|
else
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'\' />' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
if(stristr($_SERVER['HTTP_USER_AGENT'], 'iPhone')){
|
|
//$result[] = '<div style="overflow:hidden;height:25px;padding:0px;margin:0px;">'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'</div>';
|
|
$result[] = $this->htmlentities( $v , ENT_COMPAT, 'utf-8');
|
|
}
|
|
else{
|
|
//$result[] = '<div style="overflow:hidden;width:inherit;height:2em;padding:0px;margin:0px;">'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'</div>';
|
|
$result[] = $this->htmlentities( $v , ENT_COMPAT, 'utf-8');
|
|
}
|
|
} else{
|
|
$result[] = $this->htmlentities( $v , ENT_COMPAT, 'utf-8');
|
|
}
|
|
$r++;
|
|
}
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class XmlForm_Field_hours
|
|
*/
|
|
class XmlForm_Field_hours extends XmlForm_Field_SimpleText
|
|
{
|
|
var $size = 15;
|
|
var $maxLength = 64;
|
|
var $validate = 'Any';
|
|
var $mask = '';
|
|
var $defaultValue = '';
|
|
var $required = false;
|
|
var $dependentFields= '';
|
|
var $linkField = '';
|
|
//Possible values:(-|UPPER|LOWER|CAPITALIZE)
|
|
var $strTo = '';
|
|
var $readOnly = false;
|
|
var $sqlConnection = 0;
|
|
var $sql = '';
|
|
var $sqlOption = array();
|
|
//Atributes only for grids
|
|
var $formula = '';
|
|
var $function = '';
|
|
var $replaceTags = 0;
|
|
var $showVars = 0;
|
|
var $process = '';
|
|
var $symbol = '@@';
|
|
|
|
/**
|
|
* Function render
|
|
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter string value
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function render( $value = NULL , $owner = NULL )
|
|
{
|
|
if ($this->strTo==='UPPER')
|
|
$value = strtoupper($value);
|
|
if ($this->strTo==='LOWER')
|
|
$value = strtolower($value);
|
|
//if ($this->strTo==='CAPITALIZE') $value = strtocapitalize($value);
|
|
$onkeypress = G::replaceDataField( $this->onkeypress, $owner->values );
|
|
if ($this->replaceTags == 1) {
|
|
$value = G::replaceDataField( $value, $owner->values );
|
|
}
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
//$sShowVars = ' <a href="#" onclick="showDynaformsFormVars(\'form['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;">' . $this->symbol . '</a>';
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' readOnly="readOnly" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
else
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
return '<input class="module_app_input___gray" id="form['.$this->name.']" name="form['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value=\''.$this->htmlentities( $value , ENT_COMPAT, 'utf-8').'\' style="display:none;'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'" onkeypress="'.htmlentities( $onkeypress , ENT_COMPAT, 'utf-8').'"/>' .
|
|
$this->htmlentities( $value , ENT_COMPAT, 'utf-8');
|
|
} else {
|
|
return $this->htmlentities( $value , ENT_COMPAT, 'utf-8');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function renderGrid
|
|
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com>
|
|
* @access public
|
|
* @parameter array values
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function renderGrid( $values=array() , $owner )
|
|
{
|
|
$result=array();
|
|
$r=1;
|
|
foreach($values as $v) {
|
|
if ($this->replaceTags == 1) {
|
|
$v = G::replaceDataField( $v, $owner->values );
|
|
}
|
|
if ($this->showVars == 1) {
|
|
$this->process = G::replaceDataField($this->process, $owner->values );
|
|
//$sShowVars = ' <a href="#" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;">' . $this->symbol . '</a>';
|
|
$sShowVars = ' <input type="button" value="' . $this->symbol . '" onclick="showDynaformsFormVars(\'form['.$owner->name .']['.$r.']['.$this->name.']\', \'../controls/varsAjax\', \'' . $this->process . '\', \'' . $this->symbol . '\');return false;"/>';
|
|
}
|
|
else {
|
|
$sShowVars = '';
|
|
}
|
|
if ($this->mode==='edit') {
|
|
if ($this->readOnly)
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value="'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'" readOnly="readOnly" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
else
|
|
$result[] = '<input class="module_app_input___gray" id="form['. $owner->name .']['.$r.']['.$this->name.']" name="form['. $owner->name .']['.$r.']['.$this->name.']" type ="text" size="'.$this->size.'" maxlength="'.$this->maxLength.'" value="'.$this->htmlentities( $v , ENT_COMPAT, 'utf-8').'" style="'.htmlentities( $this->style , ENT_COMPAT, 'utf-8').'"/>' . $sShowVars;
|
|
} elseif ($this->mode==='view') {
|
|
$result[] = '<p align="'.$this->align.'">'.$this->htmlentities( number_format($v, 2), ENT_COMPAT, 'utf-8').'</p>';
|
|
} else {
|
|
$result[] = '<p align="'.$this->align.'">'.$this->htmlentities( number_format($v, 2), ENT_COMPAT, 'utf-8').'</p>';
|
|
}
|
|
$r++;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Function attachEvents
|
|
* @access public
|
|
* @parameter string $element
|
|
* @return string
|
|
*/
|
|
function attachEvents($element)
|
|
{
|
|
return "myForm.aElements[i] = new G_Text(myForm, $element,'{$this->name}');
|
|
myForm.aElements[i].setAttributes(" . $this->getAttributes() . ");";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function getDynaformsVars
|
|
* @access public
|
|
* @parameter string $sProcessUID
|
|
* @parameter boolean $bSystemVars
|
|
* @return array
|
|
*/
|
|
function getDynaformsVars($sProcessUID, $bSystemVars = true, $bIncMulSelFields = false)
|
|
{
|
|
$aFields = array();
|
|
$aFieldsNames = array();
|
|
if ($bSystemVars) {
|
|
$aAux = G::getSystemConstants();
|
|
foreach ($aAux as $sName => $sValue) {
|
|
$aFields[] = array('sName' => $sName, 'sType' => 'system', 'sLabel'=> 'System variable');
|
|
}
|
|
//we're adding the ping variable to the system list
|
|
$aFields[] = array('sName' => 'PIN', 'sType' => 'system', 'sLabel' => 'System variable');
|
|
}
|
|
$aInvalidTypes = array('title', 'subtitle', 'link', 'file', 'button', 'reset', 'submit', 'javascript');
|
|
$aMultipleSelectionFields = array('listbox', 'checkgroup', 'grid');
|
|
if (!$bIncMulSelFields) {
|
|
$aInvalidTypes = array_merge($aInvalidTypes, $aMultipleSelectionFields);
|
|
}
|
|
require_once 'classes/model/Dynaform.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME);
|
|
$oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
|
|
$oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform');
|
|
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
while ($aRow = $oDataset->getRow()) {
|
|
if (file_exists(PATH_DYNAFORM . PATH_SEP . $aRow['DYN_FILENAME'] . '.xml')) {
|
|
$G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG);
|
|
if (($G_FORM->type == 'xmlform') || ($G_FORM->type == '')) {
|
|
foreach($G_FORM->fields as $k => $v) {
|
|
if (!in_array($v->type, $aInvalidTypes)) {
|
|
if (!in_array($k, $aFieldsNames)) {
|
|
$aFields[] = array('sName' => $k,
|
|
'sType' => $v->type,
|
|
'sLabel'=> $v->label
|
|
);
|
|
$aFieldsNames[] = $k;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$oDataset->next();
|
|
}
|
|
return $aFields;
|
|
}
|
|
|
|
/**
|
|
* Function getGridsVars
|
|
* @access public
|
|
* @parameter string $sProcessUID
|
|
* @return array
|
|
*/
|
|
function getGridsVars($sProcessUID)
|
|
{
|
|
$aFields = array();
|
|
$aFieldsNames = array();
|
|
require_once 'classes/model/Dynaform.php';
|
|
$oCriteria = new Criteria('workflow');
|
|
$oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME);
|
|
$oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID);
|
|
$oDataset = DynaformPeer::doSelectRS($oCriteria);
|
|
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
$oDataset->next();
|
|
while ($aRow = $oDataset->getRow()) {
|
|
$G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG);
|
|
if ($G_FORM->type == 'xmlform') {
|
|
foreach($G_FORM->fields as $k => $v) {
|
|
if ($v->type == 'grid') {
|
|
if (!in_array($k, $aFieldsNames)) {
|
|
$aFields[] = array('sName' => $k, 'sXmlForm' => str_replace($sProcessUID . '/', '', $v->xmlGrid));
|
|
$aFieldsNames[] = $k;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$oDataset->next();
|
|
}
|
|
return $aFields;
|
|
}
|
|
|
|
/**
|
|
* Class XmlForm_Field_CheckBoxTable
|
|
*/
|
|
class XmlForm_Field_CheckBoxTable extends XmlForm_Field_Checkbox
|
|
{
|
|
/**
|
|
* Function render
|
|
* @author The Answer
|
|
* @access public
|
|
* @parameter string value
|
|
* @parameter string owner
|
|
* @return string
|
|
*/
|
|
function render( $value = NULL , $owner = NULL )
|
|
{
|
|
//$optionName = $owner->values['USR_UID'];
|
|
$optionName = $value;
|
|
$onclick = (($this->onclick)? ' onclick="' . G::replaceDataField( $this->onclick, $owner->values ) . '" ' : '');
|
|
$html ='<input class="FormCheck" id="form['.$this->name.']['.$optionName.']" name="form['.$this->name.
|
|
']['.$optionName.']" type=\'checkbox\' value="'. $value . '"' . $onclick .
|
|
'> <span class="FormCheck"></span></input>';
|
|
return $html;
|
|
}
|
|
}
|
|
?>
|