ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ListWith.php
Go to the documentation of this file.
1 <?php
2 
4 
5 class ListWith extends AbstractPlugin
6 {
12  public function getMethod()
13  {
14  return 'listWith';
15  }
16 
26  public function handle(array $keys = [], $directory = '', $recursive = false)
27  {
28  $contents = $this->filesystem->listContents($directory, $recursive);
29 
30  foreach ($contents as $index => $object) {
31  if ($object['type'] === 'file') {
32  $missingKeys = array_diff($keys, array_keys($object));
33  $contents[$index] = array_reduce($missingKeys, [$this, 'getMetadataByName'], $object);
34  }
35  }
36 
37  return $contents;
38  }
39 
48  protected function getMetadataByName(array $object, $key)
49  {
50  $method = 'get' . ucfirst($key);
51 
52  if ( ! method_exists($this->filesystem, $method)) {
53  throw new \InvalidArgumentException('Could not get meta-data for key: ' . $key);
54  }
55 
56  $object[$key] = $this->filesystem->{$method}($object['path']);
57 
58  return $object;
59  }
60 }
getMethod()
Get the method name.
Definition: ListWith.php:12
$index
Definition: metadata.php:60
$keys
handle(array $keys=[], $directory='', $recursive=false)
List contents with metadata.
Definition: ListWith.php:26
getMetadataByName(array $object, $key)
Get a meta-data value by key name.
Definition: ListWith.php:48
Create styles array
The data for the language used.
$key
Definition: croninfo.php:18