An error occurred while loading the file. Please try again.
-
Côme Chilliet authored022a0b1a
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2016 FusionDirectory
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*!
* \file class_baseSelector.inc
* Source code for Class Base Selector
*/
/*!
* \brief Class Base Selector
*/
class baseSelector {
private $base;
protected $pid;
private $action;
private $height = 500;
private $submitButton = TRUE;
protected $tree;
protected $pathMapping;
protected $lastState;
/*!
* \brief baseSelector contructor
*
* \param Array $bases The Bases
*
* \param String $base Empty string
*/
function __construct($bases, $base = "")
{
// Initialize pid
$this->pid = preg_replace("/[^0-9]/", "", microtime(TRUE));
// Transfer data
$this->setBases($bases);
$this->setBase($base);
}
/*!
* \brief Returns id of the html field
*/
function getInputHtmlId()
{
return 'bs_input_'.$this->pid;
}
/*!
* \brief Set a new flag to the submit button
*
* \param Boolean $flag Flag for the submit button
*/
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
function setSubmitButton($flag)
{
$this->submitButton = $flag;
}
/*!
* \brief Set a new value of the member height
*
* \param Integer $value The new value of the height
*/
function setHeight($value)
{
$this->height = $value;
}
/*!
* \brief Set a new value of the member base
*
* \param String $base The new value of the base
*/
function setBase($base)
{
if (isset($this->pathMapping[$base])) {
$this->base = $base;
$this->lastState = TRUE;
return $this->update(TRUE);
} else {
$this->lastState = FALSE;
return FALSE;
}
}
/*!
* \brief Check the last base value updated
*
* \return Boolean the last state of the object
*/
function checkLastBaseUpdate()
{
return $this->lastState;
}
/*!
* \brief Set new bases
*
* \param Array $bases The new value of the bases
*/
function setBases($bases)
{
global $config;
$this->pathMapping = array();
foreach ($bases as $base => $dummy) {
// Build path style display
$elements = explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE'])));
$elements = array_reverse($elements, TRUE);
$this->pathMapping[$base] = (($base == $config->current['BASE']) ? '/' : ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '/', implode(',', $elements))));
}
// Save bases to session for autocompletion
session::global_set('pathMapping', $this->pathMapping);
}
/*!
* \brief Update the base
*
* \param Boolean $force FALSE
*/