* @license http://www.contenido.org/license/LIZENZ.txt
* @link http://www.4fb.de
* @link http://www.contenido.org
* @since file available since contenido release <= 4.6
*
* {@internal
* created unknown
* modified 2008-06-26, Timo Trautmann, changed post var from treeItem to treeItemPost (security issue)
* modified 2008-07-02, Frederic Schneider, add security fix
*
* $Id: class.content_allocation_treeview.php 128 2019-07-03 11:58:28Z oldperl $:
* }}
*
*/
if (!defined('CON_FRAMEWORK')) {
die('Illegal call');
}
/**
* Todo
* - generalize this and papitree !!!!
* - Comments!
*/
class pApiContentAllocationTreeView extends pApiTree {
/**
*
*/
var $tpl = null;
/**
*
*/
var $template = '';
/**
*
*/
public function __construct($uuid) {
global $cfg;
parent::__construct($uuid);
$this->tpl = new Template;
$this->template = $cfg['pica']['treetemplate'];
}
/**
*
*/
function _buildRenderTree($tree) {
global $action, $frame, $area, $sess;
$result = array();
foreach ($tree as $item_tmp) {
$item = array();
// update item
if ($_GET['step'] == 'rename' && $item_tmp['idpica_alloc'] == $_GET['idpica_alloc']) {
$item = array();
$item['ITEMNAME'] = '
';
} else {
if ($item_tmp['children'] || $item_tmp['status'] == 'collapsed') {
$expandCollapseImg = 'images/close_all.gif';
if ($item_tmp['status'] == 'collapsed') {
$expandCollapseImg = 'images/open_all.gif';
}
$expandCollapse = '';
} else {
$expandCollapseImg = 'images/spacer.gif';
$expandCollapse = '';
}
$item['ITEMNAME'] = $expandCollapse . ' ' . $item_tmp['name'];
}
$item['ITEMINDENT'] = $item_tmp['level'] * 15 + 3;
$item['ACTION_CREATE'] = '';
$item['ACTION_RENAME'] = '';
$item['ACTION_MOVE_UP'] = (count($result) >= 1) ? '' : '';
$item['ACTION_MOVE_DOWN'] = (count($result) >= 1) ? '' : '';
$item['ACTION_MOVE_DOWN'] = '';
if ($item_tmp['online'] == 1) { // set offline
$item['ACTION_ONOFFLINE'] = '';
} else {
$item['ACTION_ONOFFLINE'] = '';
}
if ($item_tmp['children']) {
$item['ACTION_DELETE'] = '';
} else {
$item['ACTION_DELETE'] = '
' . str_replace("'", "\'", $item_tmp['name']) . '","deleteCategory(' . $item_tmp['idpica_alloc'] . ')");">';
}
array_push($result, $item);
if ($item_tmp['children']) {
$children = $this->_buildRenderTree($item_tmp['children']);
$result = array_merge($result, $children);
}
// add new item -> show formular
if ($_GET['step'] == 'add' && $item_tmp['idpica_alloc'] == $_GET['parentid']) {
$item = array();
$item['ITEMNAME'] = '
';
$item['ITEMINDENT'] = ($item_tmp['level'] + 1) * 15;
$item['ACTION_CREATE'] = '';
$item['ACTION_RENAME'] = '';
$item['ACTION_MOVE_UP'] = '';
$item['ACTION_MOVE_DOWN'] = '';
$item['ACTION_MOVE_DOWN'] = '';
$item['ACTION_DELETE'] = '';
$item['ACTION_ONOFFLINE'] = '';
array_push($result, $item);
}
}
return $result;
}
/**
*
*/
function renderTree($return = true) {
$this->tpl->reset();
$tree = $this->fetchTree(false, 0, true); # modified 27.10.2005
if ($tree === false) {
return false;
}
$tree = $this->_buildRenderTree($tree);
$even = true;
foreach ($tree as $item) {
$even = !$even;
$bgcolor = ($even) ? '#FFFFFF' : '#F1F1F1';
$this->tpl->set('d', 'BACKGROUND_COLOR', $bgcolor);
foreach ($item as $key => $value) {
$this->tpl->set('d', $key, $value);
}
$this->tpl->next();
}
$this->tpl->set('s', 'CATEGORY', i18n("Category", "cl-content-allocation"));
$this->tpl->set('s', 'ACTIONS', i18n("Actions", "cl-content-allocation"));
if ($return === true) {
return $this->tpl->generate($this->template, true);
} else {
$this->tpl->generate($this->template);
}
}
}
?>