/** * @param string $name * @return DAV\INode|void * @throws DAV\Exception\NotFound */ function getChild($name) { $nameParts = explode("/", $name); $name = File::getValidFilename($nameParts[count($nameParts) - 1]); //$name = implode("/",$nameParts); if (is_string($name)) { $parentPath = $this->asset->getFullPath(); if ($parentPath == "/") { $parentPath = ""; } if (!($asset = Asset::getByPath($parentPath . "/" . $name))) { throw new DAV\Exception\NotFound('File not found: ' . $name); } } else { if ($name instanceof Asset) { $asset = $name; } } if ($asset instanceof Asset) { if ($asset->getType() == "folder") { return new Asset\WebDAV\Folder($asset); } else { return new Asset\WebDAV\File($asset); } } throw new DAV\Exception\NotFound('File not found: ' . $name); }
/** * @see Object\ClassDefinition\Data::getDataForEditmode * @param Asset|Document|Object\AbstractObject $data * @param null|Model\Object\AbstractObject $object * @return array */ public function getDataForEditmode($data, $object = null) { if ($data instanceof Element\ElementInterface) { $r = array("id" => $data->getId(), "path" => $data->getFullPath(), "subtype" => $data->getType(), "type" => Element\Service::getElementType($data)); return $r; } return; }
/** * @param Document|Asset|Object\AbstractObject $element * @return array */ public static function getDependencyForFrontend($element) { if ($element instanceof ElementInterface) { return array("id" => $element->getId(), "path" => $element->getFullPath(), "type" => self::getElementType($element), "subtype" => $element->getType()); } }
private function getSubAssetIds(\Pimcore\Model\Asset $asset) { $childsList = new Pimcore\Model\Asset\Listing(); $condition = "path LIKE ?"; if (!$this->getUser()->isAdmin()) { $userIds = $this->getUser()->getRoles(); $userIds[] = $this->getUser()->getId(); $condition .= " AND (\r\n (SELECT `view` FROM users_workspaces_asset WHERE userId IN (\" . implode(',', {$userIds}) . \") and LOCATE(CONCAT(path,filename),cpath)=1 ORDER BY LENGTH(cpath) DESC LIMIT 1)=1\r\n OR\r\n (SELECT `view` FROM users_workspaces_asset WHERE userId IN (\" . implode(',', {$userIds}) . \") and LOCATE(cpath,CONCAT(path,filename))=1 ORDER BY LENGTH(cpath) DESC LIMIT 1)=1\r\n )"; } $childsList->setCondition($condition, $asset->getFullPath() . '/%'); return $childsList->loadIdList(); }