/** * Gets path to list where file or folder. * @param BaseObject $object Target file or folder. * @return string */ public function getPathInListing(BaseObject $object) { if ($object->getStorage()->getRootObjectId() == $object->getId()) { return $object->getStorage()->getProxyType()->getBaseUrlFolderList(); } $crumbs = implode('/', CrumbStorage::getInstance()->getByObject($object)); if ($crumbs) { $crumbs .= '/'; } return $object->getStorage()->getProxyType()->getBaseUrlFolderList() . $crumbs; }
/** * Changes index after rename. * @param BaseObject $object Target file or folder. * @throws \Bitrix\Main\LoaderException * @return void */ public function changeName(BaseObject $object) { if (!Loader::includeModule('search')) { return; } //here we place configuration by Module (Options). Example, we can deactivate index for big files in Disk. if (!Configuration::allowIndexFiles()) { return; } $storage = $object->getStorage(); if (!$storage) { return; } if (!$storage->getProxyType()->canIndexBySearch()) { return; } if ($object instanceof Folder) { $this->indexFolder($object); } elseif ($object instanceof File) { $this->indexFile($object); } }
protected function calculateCrumb(BaseObject $object) { $parentId = $object->getParentId(); if (!$parentId) { $this->crumbsByObjectId[$object->getId()] = array($object->getName()); return $this->crumbsByObjectId[$object->getId()]; } if (isset($this->crumbsByObjectId[$parentId])) { $this->crumbsByObjectId[$object->getId()] = $this->crumbsByObjectId[$parentId]; $this->crumbsByObjectId[$object->getId()][] = $object->getName(); return $this->crumbsByObjectId[$object->getId()]; } $storage = $object->getStorage(); $fake = Driver::getInstance()->getFakeSecurityContext(); $this->crumbsByObjectId[$object->getId()] = array(); foreach ($object->getParents($fake, array('select' => array('ID', 'NAME', 'TYPE')), SORT_DESC) as $parent) { if ($parent->getId() == $storage->getRootObjectId()) { continue; } $this->crumbsByObjectId[$object->getId()][] = $parent->getName(); } unset($parent); $this->crumbsByObjectId[$parentId] = $this->crumbsByObjectId[$object->getId()]; $this->crumbsByObjectId[$object->getId()][] = $object->getName(); return $this->crumbsByObjectId[$object->getId()]; }