예제 #1
0
 /**
  * Initialise and Render the TemplateRender
  */
 public function accept($norender = false)
 {
     if (DEBUG_ENABLED && (($fargs = func_get_args()) || ($fargs = 'NOARGS'))) {
         debug_log('Entered (%%)', 129, 0, __FILE__, __LINE__, __METHOD__, $fargs);
     }
     if (DEBUGTMP) {
         printf('<font size=-2>%s:%s</font><br />', time(), __METHOD__);
     }
     if (DEBUGTMP || DEBUGTMPSUB) {
         printf('<font size=-2>* %s [Visit-Start:%s]</font><br />', __METHOD__, get_class($this));
     }
     $tree = get_cached_item($this->server_id, 'tree');
     if (!$tree) {
         $tree = Tree::getInstance($this->server_id);
     }
     $treeitem = $tree->getEntry($this->dn);
     # If we have a DN, and no template_id, see if the tree has one from last time
     if ($this->dn && is_null($this->template_id) && $treeitem && $treeitem->getTemplate()) {
         $this->template_id = $treeitem->getTemplate();
     }
     # Check that we have a valid template, or present a selection
     # @todo change this so that the modification templates rendered are the ones for the objectclass of the dn.
     if (!$this->template_id) {
         $this->template_id = $this->getTemplateChoice();
     }
     if ($treeitem) {
         $treeitem->setTemplate($this->template_id);
     }
     $this->page = get_request('page', 'REQUEST', false, 1);
     if ($this->template_id and $this->template_id != 'invalid') {
         if (!$this->template) {
             parent::accept();
         }
         $this->url_base = sprintf('server_id=%s&dn=%s', $this->getServerID(), $this->template->getDNEncode());
         $this->layout['hint'] = sprintf('<td class="icon"><img src="%s/light.png" alt="%s" /></td><td colspan="3"><span class="hint">%%s</span></td>', IMGDIR, _('Hint'));
         $this->layout['action'] = '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s">%s</a></td>';
         $this->layout['actionajax'] = '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a></td>';
         # If we dont want to render this template automatically, we'll return here.
         if ($norender) {
             return;
         }
         $this->visitStart();
         foreach ($this->template->getAttributes(true) as $attribute) {
             # Evaluate our defaults
             if ($attribute->getAutoValue()) {
                 $this->get('Default', $attribute, $this->template->getContainer() ? $this->template->getContainer() : $this->getServer()->getContainerPath($this->template->getDN()), 'autovalue');
             }
             # If this is the default template, we should mark all our attributes to show().
             if ($this->template->getID() == 'none' && !$attribute->isInternal() && ($this->template->getContext() == 'edit' && $this->template->getID() == 'none' || $this->template->getContext() == 'create' && $attribute->getName() != 'objectclass')) {
                 $attribute->show();
             }
         }
         if (DEBUGTMP || DEBUGTMPSUB) {
             printf('<font size=-2>* %s [Visit-End:%s]</font><br />', __METHOD__, get_class($this));
         }
         $this->visitEnd();
     }
 }
예제 #2
0
 public function findFrontNav()
 {
     $_where = array("id='{$this->_R['navid']}'");
     if (!$this->_check->oneCheck($this, $_where)) {
         $this->_check->error('./');
     }
     $_allNav = parent::select(array('id', 'name', 'sid'));
     return Tree::getInstance()->getTree($_allNav, $this->_R['navid']);
 }
예제 #3
0
 public function getFrontNav()
 {
     $where = array("id='{$this->R['navid']}'");
     $allFrontNavs = array();
     if (!$this->check->checkOne($this, $where)) {
         $this->check->showError('./');
     }
     $allFrontNavs = parent::select(array('id', 'name', 'sid'), array('order' => 'sort ASC'));
     $oneFrontNav = Tree::getInstance()->getTree($allFrontNavs, $this->R['navid']);
     if (isset($oneFrontNav[0]->child)) {
         $this->tables = array(DB_FREFIX . 'goods');
         foreach ($oneFrontNav[0]->child as $key => $value) {
             $result = parent::select(array('COUNT(*) as count'), array('where' => array("nav='{$value->id}'")));
             $oneFrontNav[0]->child[$key]->count = $result[0]->count;
         }
         $this->tables = array(DB_FREFIX . 'nav');
     }
     return $oneFrontNav;
 }
예제 #4
0
 public function findFrontNav()
 {
     $_where = array("id='{$this->_R['navid']}'");
     if (!$this->_check->oneCheck($this, $_where)) {
         $this->_check->error('./');
     }
     $_allNav = parent::select(array('id', 'name', 'sid'), array('order' => 'sort ASC'));
     $_obj = Tree::getInstance()->getTree($_allNav, $this->_R['navid']);
     $this->_tables = array(DB_PREFIX . 'goods');
     if (isset($_obj[0]->child)) {
         foreach ($_obj[0]->child as $_key => $_value) {
             $_count = parent::select(array('COUNT(*) AS count'), array('where' => array("nav='{$_value->id}' AND is_up=1")));
             $_value->count = $_count[0]->count;
         }
     }
     $this->_tables = array(DB_PREFIX . 'nav');
     return $_obj;
 }
예제 #5
0
/**
 * Draw a portion of the LDAP tree.
 *
 * @package phpLDAPadmin
 * @subpackage Tree
 */
/**
 */
$request = array();
$request['dn'] = get_request('dn', 'REQUEST');
$request['server_id'] = get_request('server_id', 'REQUEST');
$request['code'] = get_request('code', 'REQUEST');
$request['action'] = get_request('action', 'REQUEST');
$request['noheader'] = get_request('noheader', 'REQUEST', false, 0);
$tree = Tree::getInstance($request['server_id']);
if (!$tree) {
    die;
}
$treesave = false;
if ($request['dn']) {
    $dnentry = $tree->getEntry($request['dn']);
    if (!$dnentry) {
        $tree->addEntry($request['dn']);
        $dnentry = $tree->getEntry($request['dn']);
        $treesave = true;
    }
    switch ($request['action']) {
        case 0:
            $dnentry->close();
            break;
예제 #6
0
 *
 * @package phpLDAPadmin
 * @subpackage Page
 */
/**
 */
require './common.php';
if (get_request('purge', 'REQUEST')) {
    $tree = get_cached_item($app['server']->getIndex(), 'tree');
    del_cached_item($app['server']->getIndex(), 'tree');
    if ($tree) {
        $openDNs = $tree->listOpenItems();
    } else {
        $openDNs = array();
    }
    $tree = Tree::getInstance($app['server']->getIndex());
    foreach ($openDNs as $value) {
        $entry = $tree->getEntry($value);
        if (!$entry) {
            $tree->addEntry($value);
            $entry = $tree->getEntry($value);
        }
        $tree->readChildren($value, true);
        $entry->open();
    }
    set_cached_item($app['server']->getIndex(), 'tree', 'null', $tree);
}
if (get_request('meth', 'REQUEST') == 'ajax') {
    header(sprintf('Location: cmd.php?cmd=draw_tree_node&noheader=%s&server_id=%s&meth=ajax&frame=TREE', get_request('noheader', 'REQUEST', false, 0), $app['server']->getIndex()));
} else {
    header(sprintf('Location: cmd.php?server_id=%s', $app['server']->getIndex()));
예제 #7
0
 public function findFrontNav()
 {
     $_allNav = $this->db->select('id,name,sid')->get('nav')->result_array();
     return Tree::getInstance()->getTree($_allNav, $this->input->get('id'));
 }
예제 #8
0
 protected function tree()
 {
     if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs = func_get_args()) || ($fargs = 'NOARGS'))) {
         debug_log('Entered (%%)', 129, 0, __FILE__, __LINE__, __METHOD__, $fargs);
     }
     if (!isset($_SESSION[APPCONFIG])) {
         return;
     }
     if (is_null($this->index)) {
         $this->index = min(array_keys($_SESSION[APPCONFIG]->getServerList()));
     }
     if (count($_SESSION[APPCONFIG]->getServerList()) > 1) {
         echo '<form name="server_select" action="cmd.php" method="post">';
         echo '<table class="server_select"><tr><td>';
         printf('%s:<br />%s', _('Server Select'), server_select_list($this->index, false, 'index', true, sprintf("onchange=\"tree_unhide('index',%s)\"", $this->index)));
         echo '</td></tr></table>';
         echo '</form>';
         echo "\n\n";
     }
     foreach ($_SESSION[APPCONFIG]->getServerList() as $index => $server) {
         printf('<div id="ajSID_%s" style="display: %s">', $server->getIndex(), $server->getIndex() == $this->index ? 'block' : 'none');
         $tree = Tree::getInstance($server->getIndex());
         $tree->draw();
         echo '</div>';
         echo "\n\n";
     }
 }