_storageHelper = $storageHelper; $this->urlEncoder = $urlEncoder; $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Framework\Serialize\Serializer\Json::class); parent::__construct($context, $data); } /** * Json source URL * * @return string */ public function getTreeLoaderUrl() { return $this->getUrl('adminhtml/*/treeJson', $this->_storageHelper->getRequestParams()); } /** * Get tree json * * @param array $data * @return string */ public function getTreeJson($data) { return $this->serializer->serialize($data); } /** * Get root node name of tree * * @return \Magento\Framework\Phrase */ public function getRootNodeName() { return __('Storage Root'); } /** * Return tree node full path based on current path * * @return string */ public function getTreeCurrentPath() { $treePath = '/root'; $path = $this->_storageHelper->getSession()->getCurrentPath(); if ($path) { $path = str_replace($this->_storageHelper->getStorageRoot(), '', $path); $relative = ''; foreach (explode('/', $path) as $dirName) { if ($dirName) { $relative .= '/' . $dirName; $treePath .= '/' . $this->urlEncoder->encode($relative); } } } return $treePath; } }