(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * */ /** * 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 = \Froxlor\Settings::Get('panel.pathedit'); if ($fieldType == 'Manual') { $field = array( 'type' => 'text', 'value' => htmlspecialchars($value) ); } elseif ($fieldType == 'Dropdown') { $dirList = \Froxlor\FileDir::findDirs($path, $uid, $gid); natcasesort($dirList); if (sizeof($dirList) > 0) { if (sizeof($dirList) <= 100) { $_field = ''; foreach ($dirList as $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 = \Froxlor\FileDir::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 = ''; $field = array( 'type' => 'hidden', 'value' => '/', 'note' => $lng['panel']['dirsmissing'] ); } } return $field; }