280 Zeilen
Kein EOL
6,7 KiB
PHP
280 Zeilen
Kein EOL
6,7 KiB
PHP
<?php
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Backend classes
|
|
* @version 1.1
|
|
* @author Unknown
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
*
|
|
* {@internal
|
|
* created unknown
|
|
* modified 2011-03-15, Murat Purc, adapted to new GenericDB, partly ported to PHP 5, formatting
|
|
*
|
|
* $Id: class.widgets.actionbutton.php 312 2014-06-18 11:01:08Z oldperl $:
|
|
* }}
|
|
*
|
|
*/
|
|
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
|
|
define("QUESTIONACTION_PROMPT", "prompt");
|
|
define("QUESTIONACTION_YESNO" , "yesno");
|
|
|
|
/**
|
|
* class cApiClickableAction
|
|
* cApiClickableAction is a subclass of cApiAction. It provides an image for visual
|
|
* representation. Inherited classes should call the "setNamedAction" operation in
|
|
* their constructors; on-the-fly-implementations should call it directly after
|
|
* creating an object instance.
|
|
*/
|
|
class cApiClickableAction extends cApiAction
|
|
{
|
|
|
|
/*** Attributes: ***/
|
|
|
|
/**
|
|
* Help text
|
|
* @access private
|
|
*/
|
|
private $_helpText;
|
|
|
|
/**
|
|
* cHTMLLink for rendering the icon
|
|
* @access private
|
|
*/
|
|
private $_link;
|
|
|
|
/**
|
|
* cHTMLImage for rendering the icon
|
|
* @access private
|
|
*/
|
|
private $_img;
|
|
|
|
|
|
public function __construct()
|
|
{
|
|
global $area;
|
|
|
|
parent::__construct();
|
|
|
|
$this->_area = $area;
|
|
$this->_frame = 4;
|
|
$this->_target = "right_bottom";
|
|
|
|
$this->_link = new cHTMLLink;
|
|
$this->_img = new cHTMLImage;
|
|
$this->_img->setBorder(0);
|
|
$this->_img->setStyle("padding-left: 1px; padding-right: 1px;");
|
|
|
|
$this->_parameters = array();
|
|
|
|
$this->setEnabled();
|
|
}
|
|
|
|
/** @deprecated [2011-03-15] Old constructor function for downwards compatibility */
|
|
public function cApiClickableAction()
|
|
{
|
|
cWarning(__FILE__, __LINE__, "Deprecated method call, use __construct()");
|
|
$this->__construct();
|
|
}
|
|
|
|
/**
|
|
* Sets the action icon for this action.
|
|
*
|
|
* @param string icon Path to the icon. Relative to the backend, if not passed as absolute path.
|
|
* @return void
|
|
*/
|
|
public function setIcon($icon)
|
|
{
|
|
$this->_img->setSrc($icon);
|
|
}
|
|
|
|
public function getIcon()
|
|
{
|
|
return $this->_img;
|
|
}
|
|
|
|
/**
|
|
* Sets this class to use a specific action, example "con_makestart".
|
|
*
|
|
* @param string actionName Name of the action to use. This action must exist in the actions table before
|
|
* using it, otherwise, this method will fail.
|
|
* @return void
|
|
*/
|
|
public function setNamedAction($actionName)
|
|
{
|
|
if ($this->loadBy("name", $actionName) !== false)
|
|
{
|
|
$a = new cApiArea;
|
|
$a->loadByPrimaryKey($this->get("idarea"));
|
|
|
|
$this->_namedAction = $actionName;
|
|
$this->_area = $a->get("name");
|
|
|
|
$this->_parameters = array();
|
|
$this->_wantParameters = array();
|
|
}
|
|
}
|
|
|
|
public function setDisabled()
|
|
{
|
|
$this->_enabled = false;
|
|
$this->_onDisable();
|
|
}
|
|
|
|
public function setEnabled()
|
|
{
|
|
$this->_enabled = true;
|
|
$this->_onEnable();
|
|
}
|
|
|
|
protected function _onDisable()
|
|
{
|
|
}
|
|
|
|
protected function _onEnable()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Change linked area
|
|
*/
|
|
public function changeArea($sArea)
|
|
{
|
|
$this->_area = $sArea;
|
|
}
|
|
|
|
public function wantParameter($parameter)
|
|
{
|
|
$this->_wantParameters[] = $parameter;
|
|
|
|
$this->_wantParameters = array_unique($this->_wantParameters);
|
|
}
|
|
|
|
/**
|
|
* sets the help text for this action.
|
|
*
|
|
* @param string helptext The helptext to apply
|
|
* @return void
|
|
*/
|
|
public function setHelpText($helptext)
|
|
{
|
|
$this->_helpText = $helptext;
|
|
}
|
|
|
|
public function getHelpText()
|
|
{
|
|
return $this->_helpText;
|
|
}
|
|
|
|
public function setParameter($name, $value)
|
|
{
|
|
$this->_parameters[$name] = $value;
|
|
}
|
|
|
|
public function process($parameters)
|
|
{
|
|
echo "Process should be overridden";
|
|
return false;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
$this->_img->setAlt($this->_helpText);
|
|
|
|
foreach ($this->_parameters as $name => $value) {
|
|
$this->_link->setCustom($name, $value);
|
|
}
|
|
|
|
$this->_link->setAlt($this->_helpText);
|
|
$this->_link->setCLink($this->_area, $this->_frame, $this->_namedAction);
|
|
$this->_link->setTargetFrame($this->_target);
|
|
$this->_link->setContent($this->_img);
|
|
|
|
if ($this->_enabled == true) {
|
|
return ($this->_link->render());
|
|
} else {
|
|
return ($this->_img->render());
|
|
}
|
|
}
|
|
|
|
public function renderText() {
|
|
foreach ($this->_parameters as $name => $value) {
|
|
$this->_link->setCustom($name, $value);
|
|
}
|
|
|
|
$this->_link->setAlt($this->_helpText);
|
|
$this->_link->setCLink($this->_area, $this->_frame, $this->_namedAction);
|
|
$this->_link->setTargetFrame($this->_target);
|
|
$this->_link->setContent($this->_helpText);
|
|
|
|
if ($this->_enabled == true) {
|
|
return ($this->_link->render());
|
|
} else {
|
|
return ($this->_helpText);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
class cApiClickableQuestionAction extends cApiClickableAction
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
/** @deprecated [2011-03-15] Old constructor function for downwards compatibility */
|
|
public function cApiClickableQuestionAction()
|
|
{
|
|
$this->__construct();
|
|
}
|
|
|
|
public function setQuestionMode($mode)
|
|
{
|
|
$this->_mode = $mode;
|
|
}
|
|
|
|
public function setQuestion($question)
|
|
{
|
|
$this->_question = $question;
|
|
}
|
|
|
|
public function setResultVar($var)
|
|
{
|
|
$this->_resultVar = $var;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
switch ($this->_mode)
|
|
{
|
|
case QUESTIONACTION_PROMPT:
|
|
$this->_link->attachEventDefinition("_".get_class($this).rand(), "onclick", 'var answer = prompt("'.clHtmlSpecialChars($this->_question).'");if (answer == null) {return false;} else { this.href = this.href + "&'.$this->_resultVar.'="+answer; return true;}');
|
|
break;
|
|
case QUESTIONACTION_YESNO:
|
|
default:
|
|
$this->_link->attachEventDefinition("_".get_class($this).rand(), "onclick", 'var answer = confirm("'.clHtmlSpecialChars($this->_question).'");if (answer == false) {return false;} else { return true;}');
|
|
break;
|
|
}
|
|
|
|
return parent::render();
|
|
}
|
|
}
|
|
|
|
?>
|