mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 07:00:29 +01:00
53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Xentral\Components\Filesystem\Flysystem;
|
||
|
|
||
|
use League\Flysystem\Adapter\Ftp;
|
||
|
|
||
|
final class FtpAdapterDecorator extends Ftp
|
||
|
{
|
||
|
/**
|
||
|
* @inheritdoc
|
||
|
*/
|
||
|
public function getMetadata($path)
|
||
|
{
|
||
|
$metadata = parent::getMetadata($path);
|
||
|
if ($metadata === false) {
|
||
|
return false; // File does not exist
|
||
|
}
|
||
|
|
||
|
if ($metadata['type'] === 'dir') {
|
||
|
$metadata['timestamp'] = null; // ftp_mdtm() does not work with directories.
|
||
|
return $metadata;
|
||
|
}
|
||
|
|
||
|
if ($metadata['timestamp'] === null) {
|
||
|
$data = $this->getTimestamp($path);
|
||
|
$metadata['timestamp'] = $data !== false && isset($data['timestamp']) ? $data['timestamp'] : null;
|
||
|
}
|
||
|
|
||
|
return $metadata;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @inheritdoc
|
||
|
*/
|
||
|
protected function normalizeListing(array $listing, $prefix = '')
|
||
|
{
|
||
|
$result = parent::normalizeListing($listing, $prefix);
|
||
|
|
||
|
foreach ($result as &$item) {
|
||
|
if ($item['type'] === 'dir') {
|
||
|
$item['timestamp'] = null; // ftp_mdtm() does not work with directories.
|
||
|
continue;
|
||
|
}
|
||
|
if (!isset($item['timestamp'])) {
|
||
|
$data = $this->getTimestamp($item['path']);
|
||
|
$item['timestamp'] = $data !== false && isset($data['timestamp']) ? $data['timestamp'] : null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $result;
|
||
|
}
|
||
|
}
|