Browse Source

add getDirectoryPathByUri, getDirectoryUriByPath methods

main
ghost 9 months ago
parent
commit
dbd5820c92
  1. 2
      README.md
  2. 63
      src/Dokuwiki/Filesystem.php

2
README.md

@ -136,6 +136,7 @@ var_dump ( @@ -136,6 +136,7 @@ var_dump (
)
```
#### Filesystem::getDirectoryPathByUri
#### Filesystem::getPagePathByUri
Return absolute path to stored page file
@ -148,6 +149,7 @@ var_dump ( @@ -148,6 +149,7 @@ var_dump (
)
```
#### Filesystem::getDirectoryUriByPath
#### Filesystem::getPageUriByPath
Return page URI in `dokuwiki:format`

63
src/Dokuwiki/Filesystem.php

@ -68,7 +68,7 @@ class Filesystem @@ -68,7 +68,7 @@ class Filesystem
'%s/pages/',
$this->_path
),
null,
'',
$path
);
@ -93,9 +93,68 @@ class Filesystem @@ -93,9 +93,68 @@ class Filesystem
$path
);
return urlencode(
return $path;
}
public function getDirectoryPathByUri(string $uri = ''): ?string
{
$path = rtrim(
sprintf(
'%s/pages/%s',
$this->_path,
str_replace(
':',
'/',
mb_strtolower(
urldecode(
$uri
)
)
)
),
'/'
);
if (!isset($this->_tree[$path]) || !is_dir($path) || !is_readable($path))
{
return null;
}
return $path;
}
public function getDirectoryUriByPath(string $path): ?string
{
if (!isset($this->_tree[$path]) || !is_dir($path) || !is_readable($path))
{
return null;
}
$path = str_replace(
sprintf(
'%s/pages/',
$this->_path
),
'',
$path
);
$path = trim(
$path,
'/'
);
$path = str_replace(
[
'/'
],
[
':'
],
$path
);
return $path;
}
private function _index(string $path): void

Loading…
Cancel
Save