* @category class
* @package core
* @subpackage business
* @copyright 2005-2017 Titan Framework
* @license http://www.titanframework.com/license/ BSD License (3 Clause)
* @see Instance, Business, Section
*/
class Action
{
private $label = '';
private $name = '';
private $engine = '';
private $path = '';
private $description = '';
private $warning = '';
private $doc = '';
private $indexTo = '';
private $xmlPath = FALSE;
private $menu = array ();
private $freeAccess = FALSE;
const TDEFAULT = '__DEFAULT_ACTION__';
const TREGISTER = '__REGISTER_ACTION__';
const TMODIFY = '__MODIFY_ACTION__';
const TRSS = '__RSS_ACTION__';
const TJOB = '__JOB_ACTION__';
const TCURRENT = '__CURRENT_ACTION__';
const TSCRIPT = '__SCRIPT_ACTION__';
const TLUCENE = '__LUCENE_ACTION__';
const TAPI = '__API_ACTION__';
const PREPARE = '.prepare.php';
const VIEW = '.php';
const COMMIT = '.commit.php';
public function __construct ($input, $defaultPath)
{
if (!is_array ($input))
throw new Exception ('Input to action mapping is not array!');
if (array_key_exists ('label', $input))
$this->setLabel ($input ['label']);
if (array_key_exists ('name', $input) && trim ($input ['name']) != '')
$this->setName ($input ['name']);
else
throw new Exception ('All actions (<action />) of configuration files [config.inc.xml] must be a property [name] with non-empty value!');
if (array_key_exists ('engine', $input))
$this->setEngine ($input ['engine']);
else
$this->setEngine ($input ['name']);
if (array_key_exists ('path', $input))
$this->setPath ($input ['path']);
else
$this->setPath ($defaultPath);
if (array_key_exists ('description', $input))
$this->setDescription ($input ['description']);
if (array_key_exists ('warning', $input))
$this->setWarning ($input ['warning']);
if (array_key_exists ('doc', $input))
$this->setDoc ($input ['doc']);
if (array_key_exists ('index-to', $input))
$this->setIndex ($input ['index-to']);
if (array_key_exists ('xml-path', $input))
$this->setXmlPath ($input ['xml-path']);
if (array_key_exists ('menu', $input))
{
if (!is_array ($input ['menu']))
$input ['menu'] = array ($input ['menu']);
$this->menu = $input ['menu'];
}
}
public function generateMenu ()
{
Menu::singleton ($this->menu);
}
public function getMenu ()
{
return $this->menu;
}
public function setLabel ($label)
{
$this->label = translate ($label);
}
public function getLabel ()
{
return $this->label;
}
public function setName ($name)
{
$this->name = $name;
}
public function getName ()
{
return $this->name;
}
public function setEngine ($engine)
{
$this->engine = $engine;
}
public function getEngine ()
{
return $this->engine;
}
public function setDescription ($description)
{
$this->description = translate ($description);
}
public function getDescription ()
{
return $this->description;
}
public function setWarning ($warning)
{
$this->warning = translate ($warning);
}
public function getWarning ()
{
return $this->warning;
}
public function setDoc ($doc)
{
$this->doc = translate ($doc);
}
public function getDoc ()
{
return $this->doc;
}
public function setXmlPath ($xml)
{
$this->xmlPath = $xml;
}
public function getXmlPath ()
{
return $this->xmlPath;
}
public function setPath ($path)
{
$this->path = $path;
}
public function getPath ()
{
return $this->path;
}
public function getFullPathTo ($suffix)
{
return $this->getPath () . $this->getEngine () . $suffix;
}
public function setIndex ($index)
{
$this->indexTo = $index;
}
public function getIndex ()
{
return $this->indexTo;
}
public function setFreeAccess ($free)
{
$this->freeAccess = $free;
}
public function freeAccess ()
{
return $this->freeAccess;
}
}