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();
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
?>
 |