예제 #1
0
/**
 * Returns a valid html tag for the choosen $fieldType for pathes
 *
 * @param  string   path       The path to start searching in
 * @param  integer  uid        The uid which must match the found directories
 * @param  integer  gid        The gid which must match the found direcotries
 * @param  string   fieldType  Either "Manual" or "Dropdown"
 * @return string   The html tag for the choosen $fieldType
 *
 * @author Martin Burchert  <*****@*****.**>
 * @author Manuel Bernhardt <*****@*****.**>
 */
function makePathfield($path, $uid, $gid, $fieldType, $value = '')
{
    global $lng;
    $value = str_replace($path, '', $value);
    $field = '';
    if ($fieldType == 'Manual') {
        $field = '<input type="text" name="path" value="' . htmlspecialchars($value) . '" size="30" />';
    } elseif ($fieldType == 'Dropdown') {
        $dirList = findDirs($path, $uid, $gid);
        natcasesort($dirList);
        if (sizeof($dirList) > 0) {
            $field = '<select name="path">';
            foreach ($dirList as $key => $dir) {
                if (strpos($dir, $path) === 0) {
                    $dir = makeCorrectDir(substr($dir, strlen($path)));
                }
                $field .= makeoption($dir, $dir, $value);
            }
            $field .= '</select>';
        } else {
            $field = $lng['panel']['dirsmissing'];
            $field .= '<input type="hidden" name="path" value="/" />';
        }
    }
    return $field;
}
예제 #2
0
/**
 * Returns a valid html tag for the chosen $fieldType for paths
 *
 * @param string  path      The path to start searching in
 * @param integer uid       The uid which must match the found directories
 * @param integer gid       The gid which must match the found direcotries
 * @param string  value     the value for the input-field
 *
 * @return string   The html tag for the chosen $fieldType
 *
 * @author Martin Burchert  <*****@*****.**>
 * @author Manuel Bernhardt <*****@*****.**>
 */
function makePathfield($path, $uid, $gid, $value = '', $dom = false)
{
    global $lng;
    $value = str_replace($path, '', $value);
    $field = array();
    // path is given without starting slash
    // but dirList holds the paths with starting slash
    // so we just add one here to get the correct
    // default path selected, #225
    if (substr($value, 0, 1) != '/' && !$dom) {
        $value = '/' . $value;
    }
    $fieldType = Settings::Get('panel.pathedit');
    if ($fieldType == 'Manual') {
        $field = array('type' => 'text', 'value' => htmlspecialchars($value));
    } elseif ($fieldType == 'Dropdown') {
        $dirList = findDirs($path, $uid, $gid);
        natcasesort($dirList);
        if (sizeof($dirList) > 0) {
            if (sizeof($dirList) <= 100) {
                $_field = '';
                foreach ($dirList as $key => $dir) {
                    if (strpos($dir, $path) === 0) {
                        $dir = substr($dir, strlen($path));
                        // docroot cut off of current directory == empty -> directory is the docroot
                        if (empty($dir)) {
                            $dir = '/';
                        }
                        $dir = makeCorrectDir($dir);
                    }
                    $_field .= makeoption($dir, $dir, $value);
                }
                $field = array('type' => 'select', 'value' => $_field);
            } else {
                // remove starting slash we added
                // for the Dropdown, #225
                $value = substr($value, 1);
                //$field = $lng['panel']['toomanydirs'];
                $field = array('type' => 'text', 'value' => htmlspecialchars($value), 'note' => $lng['panel']['toomanydirs']);
            }
        } else {
            //$field = $lng['panel']['dirsmissing'];
            //$field = '<input type="hidden" name="path" value="/" />';
            $field = array('type' => 'hidden', 'value' => '/', 'note' => $lng['panel']['dirsmissing']);
        }
    }
    return $field;
}