Files
luos/workflow/engine/classes/class.toolBar.php

192 lines
7.8 KiB
PHP
Raw Normal View History

2010-12-02 23:34:41 +00:00
<?php
2012-10-09 13:25:46 -04:00
2010-12-02 23:34:41 +00:00
/**
* class.toolBar.php
2012-10-09 13:25:46 -04:00
*
2011-02-01 12:49:40 +00:00
* @package workflow.engine.ProcessMaker
2010-12-02 23:34:41 +00:00
*
* ProcessMaker Open Source Edition
2011-02-01 12:49:40 +00:00
* Copyright (C) 2004 - 2011 Colosa Inc.
2010-12-02 23:34:41 +00:00
*
* 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
2012-10-09 13:25:46 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2010-12-02 23:34:41 +00:00
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
2012-10-09 13:25:46 -04:00
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2010-12-02 23:34:41 +00:00
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
2012-10-09 13:25:46 -04:00
2010-12-02 23:34:41 +00:00
/**
* ToolBar - ToolBar class
2012-10-09 13:25:46 -04:00
*
2011-02-01 12:49:40 +00:00
* @package workflow.engine.ProcessMaker
2010-12-02 23:34:41 +00:00
*/
2012-10-09 13:25:46 -04:00
class ToolBar extends form
2010-12-02 23:34:41 +00:00
{
2012-10-09 13:25:46 -04:00
var $type = 'toolbar';
var $align = 'left';
2010-12-02 23:34:41 +00:00
}
2012-10-09 13:25:46 -04:00
/**
2010-12-02 23:34:41 +00:00
* XmlForm_Field_ToolBar - XmlForm_Field_ToolBar class
2012-10-09 13:25:46 -04:00
*
2011-02-01 12:49:40 +00:00
* @package workflow.engine.ProcessMaker
2010-12-02 23:34:41 +00:00
*/
2012-10-09 13:25:46 -04:00
class XmlForm_Field_ToolBar extends XmlForm_Field
2010-12-02 23:34:41 +00:00
{
2012-10-09 13:25:46 -04:00
var $xmlfile = '';
var $type = 'toolbar';
var $toolBar;
var $home = '';
var $withoutLabel = true;
/**
* Constructor of the class XmlForm_Field_ToolBar
*
* @param string $xmlNode
* @param string $lang
* @param string $home
* @param string $owner
* @return void
*/
function XmlForm_Field_ToolBar ($xmlNode, $lang = 'en', $home = '', $owner)
{
parent::XmlForm_Field( $xmlNode, $lang, $home, $owner );
$this->home = $home;
}
/**
* Prints the ToolBar
*
* @param string $value
* @return string
*/
function render ($value)
{
$this->toolBar = new toolBar( $this->xmlfile, $this->home );
$template = PATH_CORE . 'templates/' . $this->type . '.html';
$out = $this->toolBar->render( $template, $scriptCode );
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptFile( $this->toolBar->scriptURL );
$oHeadPublisher->addScriptCode( $scriptCode );
return $out;
}
2010-12-02 23:34:41 +00:00
}
/**
* XmlForm_Field_toolButton - XmlForm_Field_toolButton class
2012-10-09 13:25:46 -04:00
*
2011-02-01 12:49:40 +00:00
* @package workflow.engine.ProcessMaker
2010-12-02 23:34:41 +00:00
*/
class XmlForm_Field_toolButton extends XmlForm_Field
{
2012-10-09 13:25:46 -04:00
var $file = '';
var $fileAlt = '';
var $url = '';
var $urlAlt = '';
var $home = 'public_html';
/* types of buttons:
2010-12-02 23:34:41 +00:00
* image
* text
* image/text
* text/image
*/
2012-10-09 13:25:46 -04:00
var $buttonType = 'image';
var $withoutLabel = false;
var $buttonStyle = '';
2010-12-02 23:34:41 +00:00
/*$hoverMethod : back | switch*/
2012-10-09 13:25:46 -04:00
var $hoverMethod = 'back';
var $class;
/**
* Prints the components of the toolBar
*
* @param string $value
* @return string
*/
function render ($value)
{
$url = $this->file;
if ($this->home === "methods")
$url = G::encryptlink( SYS_URI . $url );
if ($this->home === "public_html")
$url = '/' . $url;
$urlAlt = $this->fileAlt;
if ($this->fileAlt !== '') {
if ($this->home === "methods")
$urlAlt = G::encryptlink( SYS_URI . $urlAlt );
if ($this->home === "public_html")
$urlAlt = '/' . $urlAlt;
2010-12-02 23:34:41 +00:00
}
2012-10-09 13:25:46 -04:00
$this->url = $url;
$this->urlAlt = $urlAlt;
switch ($this->buttonType) {
case 'image':
$html = '';
if ($this->hoverMethod === 'back') {
$html = '<img src="' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '"' . (($this->style) ? ' style="' . $this->style . '"' : '') . ' onmouseover=\'backImage(this,"url(' . htmlentities( $urlAlt, ENT_QUOTES, 'utf-8' ) . ') no-repeat")\' onmouseout=\'backImage(this,"")\' title=\'' . addslashes( $this->label ) . '\' />';
} elseif ($this->hoverMethod === 'switch') {
$html = '<img src="' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '"' . (($this->style) ? ' style="' . $this->style . '"' : '') . ' onmouseover=\'switchImage(this,"' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '","' . htmlentities( $urlAlt, ENT_QUOTES, 'utf-8' ) . '")\' onmouseout=\'switchImage(this,"' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '","' . htmlentities( $urlAlt, ENT_QUOTES, 'utf-8' ) . '")\'/>';
} else {
$html = '<img src="' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '"' . (($this->style) ? ' style="' . $this->style . '"' : '') . '/>';
}
break;
case 'text':
$html = $this->htmlentities( $this->label, ENT_QUOTES, 'utf-8' );
break;
case 'html':
$html = '<div ' . ' onmouseover=\'backImage(this,"url(' . htmlentities( $urlAlt, ENT_QUOTES, 'utf-8' ) . ') no-repeat")\' onmouseout=\'backImage(this,"")\' style="width:25px;height:25px;margin-bottom:3px">' . $this->label . '</div>';
//$html=$this->label;
break;
case 'image/text':
$html = '<img src="' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '"' . (($this->style) ? ' style="' . $this->style . '"' : '') . '/><br/>' . $this->htmlentities( $this->label, ENT_QUOTES, 'utf-8' );
break;
case 'text/image':
$html = $this->htmlentities( $this->label, ENT_QUOTES, 'utf-8' ) . '<br/><img src="' . htmlentities( $url, ENT_QUOTES, 'utf-8' ) . '"' . (($this->style) ? ' style="' . $this->style . '"' : '') . '/>';
break;
case 'dropdown':
$html = '';
if (isset($this->owner->values['PRO_UID'])) {
G::LoadClass('processMap');
$criteria = processMap::getDynaformsCriteria($this->owner->values['PRO_UID']);
$dataset = DynaformPeer::doSelectRS($criteria);
if ($dataset->getRecordCount() > 0) {
$html .= '<span style="font-size: 8pt;margin-left: 20px;">' . G::LoadTranslation('ID_EDITING_DYNAFORM');
$html .= ': <select onchange="window.location = \'dynaforms_Editor?PRO_UID=' . $this->owner->values['PRO_UID'];
$html .= '&DYN_UID=\' + this.value;" class="module_app_input___gray">';
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
while ($row = $dataset->getRow()) {
$html .= '<option value="' . $row['DYN_UID'] . '"';
$html .= ($this->owner->values['DYN_UID'] == $row['DYN_UID'] ? ' selected="selected"' : '') . '>';
$html .= htmlentities($row['DYN_TITLE'], ENT_QUOTES, 'utf-8') . '</option>';
$dataset->next();
}
$html .= '</select></span>';
}
}
return $html;
break;
2012-10-09 13:25:46 -04:00
case 'class':
$html = '<a href="#" onclick="' . $this->onclick . '" onmouseover="backImage(this, \'url(/images/dynamicForm/hover.gif) no-repeat\')" onmouseout="backImage(this, \'\')" style="width:25px;height:25px;margin-bottom:3px">
<div class="' . $this->class . '" title="' . strip_tags( $this->label ) . '" style="width:25px;height:25px;margin-bottom:3px"></div>
</a>';
2012-10-09 13:25:46 -04:00
return $html;
}
return '<a class="toolButton" ' . (($this->buttonStyle) ? ' style="' . $this->buttonStyle . '"' : '') . (($this->onclick) ? ' onclick="' . htmlentities( $this->onclick, ENT_QUOTES, 'utf-8' ) . '"' : '') . '>' . $html . '</a>';
2010-12-02 23:34:41 +00:00
}
}
?>