public function __invoke($data = null)
{
$elements = array();
$documents = new DocumentCollection();
if (empty($data)) {
$elements = $documents->load(0)->getDocuments();
} else {
if (is_numeric($data)) {
$elements = $documents->load($data)->getDocuments();
} elseif (is_string($data)) {
$document = DocumentModel::fromUrlKey($data);
$elements = $document->getChildren();
} elseif (is_array($data)) {
foreach ($data as $documentId) {
if (empty($documentId)) {
continue;
}
$document = $this->getView()->document($documentId);
if (!empty($document)) {
$elements[] = $document;
}
}
}
}
return $elements;
}
/** * Test * * @return void */ public function testInvokeWithParameters() { $this->assertInternalType('array', $this->object->__invoke(1)); $this->assertInternalType('array', $this->object->__invoke('url-key')); $this->assertInternalType('array', $this->object->__invoke(array(0, $this->document->getId()))); }