SCANDIR_SORT_* constants are available since PHP 5.4

Thanks @Lomanic
This commit is contained in:
Daniel Rudolf 2015-10-04 14:15:11 +02:00
parent ab8994593f
commit 3a4721a20c

View file

@ -26,6 +26,30 @@
*/
class Pico
{
/**
* Sort files in alphabetical ascending order
*
* @see Pico::getFiles()
* @var int
*/
const SORT_ASC = 0;
/**
* Sort files in alphabetical descending order
*
* @see Pico::getFiles()
* @var int
*/
const SORT_DESC = 1;
/**
* Don't sort files
*
* @see Pico::getFiles()
* @var int
*/
const SORT_NONE = 2;
/**
* Root directory of this Pico instance
*
@ -708,7 +732,7 @@ class Pico
protected function readPages()
{
$this->pages = array();
$files = $this->getFiles($this->getConfig('content_dir'), $this->getConfig('content_ext'), SCANDIR_SORT_NONE);
$files = $this->getFiles($this->getConfig('content_dir'), $this->getConfig('content_ext'), Pico::SORT_NONE);
foreach ($files as $i => $file) {
// skip 404 page
if (basename($file) == '404' . $this->getConfig('content_ext')) {
@ -990,12 +1014,12 @@ class Pico
* @param string $fileExtension return files with the given file extension
* only (optional)
* @param int $order specify whether and how files should be
* sorted; use SCANDIR_SORT_ASCENDING for a alphabetical ascending
* order (default), SCANDIR_SORT_DESCENDING for a descending order or
* SCANDIR_SORT_NONE to leave the result unsorted
* sorted; use Pico::SORT_ASC for a alphabetical ascending order (this
* is the default behaviour), Pico::SORT_DESC for a descending order
* or Pico::SORT_NONE to leave the result unsorted
* @return array list of found files
*/
protected function getFiles($directory, $fileExtension = '', $order = SCANDIR_SORT_ASCENDING)
protected function getFiles($directory, $fileExtension = '', $order = self::SORT_ASC)
{
$directory = rtrim($directory, '/');
$result = array();
@ -1013,7 +1037,7 @@ class Pico
if (is_dir($directory . '/' . $file)) {
// get files recursively
$result = array_merge($result, $this->getFiles($directory . '/' . $file, $fileExtension));
$result = array_merge($result, $this->getFiles($directory . '/' . $file, $fileExtension, $order));
} elseif (empty($fileExtension) || (substr($file, -$fileExtensionLength) === $fileExtension)) {
$result[] = $directory . '/' . $file;
}