Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JPath

Liste de tous les membres

Fonctions membres publiques statiques

static canChmod ($path)
static setPermissions ($path, $filemode= '0644', $foldermode= '0755')
static getPermissions ($path)
static check ($path)
static clean ($path, $ds=DIRECTORY_SEPARATOR)
static isOwner ($path)
static find ($paths, $file)

Description détaillée

Définition à la ligne 25 du fichier path.php.


Documentation des fonctions membres

static JPath::canChmod (   $path)
static

Checks if a path's permissions can be changed.

Paramètres:
string$pathPath to check.
Renvoie:
boolean True if path can have mode changed.
Depuis:
11.1

Définition à la ligne 36 du fichier path.php.

{
$perms = fileperms($path);
if ($perms !== false)
{
if (@chmod($path, $perms ^ 0001))
{
@chmod($path, $perms);
return true;
}
}
return false;
}
static JPath::check (   $path)
static

Checks for snooping outside of the file system root.

Paramètres:
string$pathA file system path to check.
Renvoie:
string A cleaned version of the path or exit on error.
Depuis:
11.1
Exceptions:
Exception

Définition à la ligne 166 du fichier path.php.

Références clean().

Référencé par JControllerLegacy\addPath().

{
if (strpos($path, '..') !== false)
{
// Don't translate
throw new Exception('JPath::check Use of relative paths not permitted', 20);
}
$path = self::clean($path);
if ((JPATH_ROOT != '') && strpos($path, self::clean(JPATH_ROOT)) !== 0)
{
throw new Exception('JPath::check Snooping out of bounds @ ' . $path, 20);
}
return $path;
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

static JPath::clean (   $path,
  $ds = DIRECTORY_SEPARATOR 
)
static

Function to strip additional / or \ in a path name.

Paramètres:
string$pathThe path to clean.
string$dsDirectory separator (optional).
Renvoie:
string The cleaned path.
Depuis:
11.1
Exceptions:
UnexpectedValueException

Définition à la ligne 195 du fichier path.php.

Référencé par JModelLegacy\addIncludePath(), JCacheController\addIncludePath(), JCacheStorage\addIncludePath(), JCache\addIncludePath(), check(), JFolder\copy(), JFile\copy(), JFolder\create(), JFile\delete(), JFolder\delete(), JFolder\exists(), JFile\exists(), JArchive\extract(), JArchiveTar\extract(), JArchiveZip\extractCustom(), JFolder\files(), JFolder\folders(), JFormFieldModulelayout\getInput(), JFormFieldComponentlayout\getInput(), JViewHtml\getPath(), getPermissions(), JFolder\listFolderTree(), JFile\move(), JFolder\move(), JFile\upload(), et JFile\write().

{
if (!is_string($path))
{
throw new UnexpectedValueException('JPath::clean: $path is not a string.');
}
$path = trim($path);
if (empty($path))
{
$path = JPATH_ROOT;
}
// Remove double slashes and backslashes and convert all slashes and backslashes to DIRECTORY_SEPARATOR
// If dealing with a UNC path don't forget to prepend the path with a backslash.
elseif (($ds == '\\') && ($path[0] == '\\' ) && ( $path[1] == '\\' ))
{
$path = "\\" . preg_replace('#[/\\\\]+#', $ds, $path);
}
else
{
$path = preg_replace('#[/\\\\]+#', $ds, $path);
}
return $path;
}

+ Voici le graphe des appelants de cette fonction :

static JPath::find (   $paths,
  $file 
)
static

Searches the directory paths for a given file.

Paramètres:
mixed$pathsAn path string or array of path strings to search in
string$fileThe file name to look for.
Renvoie:
mixed The full path and file name for the target file, or boolean false if the file is not found in any of the paths.
Depuis:
11.1

Définition à la ligne 274 du fichier path.php.

Référencé par JControllerLegacy\createView(), JCacheController\getInstance(), JCacheStorage\getInstance(), JModelLegacy\getInstance(), JTable\getInstance(), JViewHtml\getPath(), JFormHelper\loadClass(), JForm\loadFile(), JViewLegacy\loadHelper(), et JViewLegacy\loadTemplate().

{
// Force to array
if (!is_array($paths) && !($paths instanceof Iterator))
{
settype($paths, 'array');
}
// Start looping through the path set
foreach ($paths as $path)
{
// Get the path to the file
$fullname = $path . '/' . $file;
// Is the path based on a stream?
if (strpos($path, '://') === false)
{
// Not a stream, so do a realpath() to avoid directory
// traversal attempts on the local file system.
// Needed for substr() later
$path = realpath($path);
$fullname = realpath($fullname);
}
/*
* The substr() check added to make sure that the realpath()
* results in a directory registered so that
* non-registered directories are not accessible via directory
* traversal attempts.
*/
if (file_exists($fullname) && substr($fullname, 0, strlen($path)) == $path)
{
return $fullname;
}
}
// Could not find the file in the set of paths
return false;
}

+ Voici le graphe des appelants de cette fonction :

static JPath::getPermissions (   $path)
static

Get the permissions of the file/folder at a given path.

Paramètres:
string$pathThe path of a file/folder.
Renvoie:
string Filesystem permissions.
Depuis:
11.1

Définition à la ligne 129 du fichier path.php.

Références clean().

{
$path = self::clean($path);
$mode = @ decoct(@ fileperms($path) & 0777);
if (strlen($mode) < 3)
{
return '---------';
}
$parsed_mode = '';
for ($i = 0; $i < 3; $i++)
{
// Read
$parsed_mode .= ($mode{$i} & 04) ? "r" : "-";
// Write
$parsed_mode .= ($mode{$i} & 02) ? "w" : "-";
// Execute
$parsed_mode .= ($mode{$i} & 01) ? "x" : "-";
}
return $parsed_mode;
}

+ Voici le graphe d'appel pour cette fonction :

static JPath::isOwner (   $path)
static

Method to determine if script owns the path.

Paramètres:
string$pathPath to check ownership.
Renvoie:
boolean True if the php script owns the path passed.
Depuis:
11.1

Définition à la ligne 231 du fichier path.php.

Références JFile\delete(), jimport(), et JFile\write().

{
jimport('joomla.filesystem.file');
$tmp = md5(mt_rand());
$ssp = ini_get('session.save_path');
$jtp = JPATH_SITE . '/tmp';
// Try to find a writable directory
$dir = is_writable('/tmp') ? '/tmp' : false;
$dir = (!$dir && is_writable($ssp)) ? $ssp : false;
$dir = (!$dir && is_writable($jtp)) ? $jtp : false;
if ($dir)
{
$test = $dir . '/' . $tmp;
// Create the test file
$blank = '';
JFile::write($test, $blank, false);
// Test ownership
$return = (fileowner($test) == fileowner($path));
// Delete the test file
JFile::delete($test);
return $return;
}
return false;
}

+ Voici le graphe d'appel pour cette fonction :

static JPath::setPermissions (   $path,
  $filemode = '0644',
  $foldermode = '0755' 
)
static

Chmods files and directories recursively to given permissions.

Paramètres:
string$pathRoot path to begin changing mode [without trailing slash].
string$filemodeOctal representation of the value to change file mode to [null = no change].
string$foldermodeOctal representation of the value to change folder mode to [null = no change].
Renvoie:
boolean True if successful [one fail means the whole operation failed].
Depuis:
11.1

Définition à la ligne 64 du fichier path.php.

Référencé par JFile\upload().

{
// Initialise return value
$ret = true;
if (is_dir($path))
{
$dh = opendir($path);
while ($file = readdir($dh))
{
if ($file != '.' && $file != '..')
{
$fullpath = $path . '/' . $file;
if (is_dir($fullpath))
{
if (!self::setPermissions($fullpath, $filemode, $foldermode))
{
$ret = false;
}
}
else
{
if (isset($filemode))
{
if (!@ chmod($fullpath, octdec($filemode)))
{
$ret = false;
}
}
}
}
}
closedir($dh);
if (isset($foldermode))
{
if (!@ chmod($path, octdec($foldermode)))
{
$ret = false;
}
}
}
else
{
if (isset($filemode))
{
$ret = @ chmod($path, octdec($filemode));
}
}
return $ret;
}

+ Voici le graphe des appelants de cette fonction :


La documentation de cette classe a été générée à partir du fichier suivant :