コード例 #1
0
ファイル: folder.php プロジェクト: mrdeadmouse/u136006
 private function prepareDataForAddLink(BaseObject $object, array $data, $generateUniqueName = false)
 {
     if (empty($data['NAME'])) {
         $data['NAME'] = $object->getName();
     }
     $this->checkRequiredInputParams($data, array('NAME'));
     if ($generateUniqueName) {
         $data['NAME'] = $this->generateUniqueName($data['NAME'], $this->id);
     }
     if (!$this->isUniqueName($data['NAME'], $this->id)) {
         $this->errorCollection->add(array(new Error(Loc::getMessage('DISK_FOLDER_MODEL_ERROR_NON_UNIQUE_NAME'), self::ERROR_NON_UNIQUE_NAME)));
         return null;
     }
     $data['PARENT_ID'] = $this->id;
     $data['STORAGE_ID'] = $this->storageId;
     $data['REAL_OBJECT_ID'] = $object->getRealObject()->getId();
     return $data;
 }
コード例 #2
0
ファイル: diskstorage.php プロジェクト: DarneoStudio/bitrix
 private function getBreadcrumbs(BaseObject $object)
 {
     $parentId = $object->isLink() ? $object->getParentId() : $object->getRealObject()->getParentId();
     $realId = $object->isLink() ? $object->getId() : $object->getRealObject()->getId();
     if (isset($this->cacheBreadcrumbs[$parentId])) {
         if ($object instanceof File) {
             return $this->cacheBreadcrumbs[$parentId] . '/' . $object->getName();
         }
         $this->cacheBreadcrumbs[$realId] = $this->cacheBreadcrumbs[$parentId] . '/' . $object->getName();
         if ($object->isLink()) {
             $this->cacheBreadcrumbs[$object->getRealObject()->getId()] = $this->cacheBreadcrumbs[$realId];
         }
     } else {
         if ($parentId == $this->storage->getRootObjectId()) {
             $this->cacheBreadcrumbs[$realId] = '/' . $object->getName();
             if ($object->isLink()) {
                 if (!$object->getRealObject()) {
                     return null;
                 }
                 $this->cacheBreadcrumbs[$object->getRealObject()->getId()] = $this->cacheBreadcrumbs[$realId];
             }
             return $this->cacheBreadcrumbs[$realId];
         }
         $path = '';
         $parents = ObjectTable::getAncestors($realId, array('select' => array('ID', 'NAME', 'TYPE', 'CODE')));
         while ($parent = $parents->fetch()) {
             if ($parent['CODE'] == Folder::CODE_FOR_UPLOADED_FILES) {
                 //todo hack. CODE_FOR_UPLOADED_FILES
                 return null;
             }
             if ($this->storage->getRootObjectId() == $parent['ID']) {
                 continue;
             }
             $path .= '/' . $parent['NAME'];
             if (!isset($this->cacheBreadcrumbs[$parent['ID']])) {
                 $this->cacheBreadcrumbs[$parent['ID']] = $path;
             }
         }
         if (isset($this->cacheBreadcrumbs[$parentId])) {
             $this->cacheBreadcrumbs[$realId] = $this->cacheBreadcrumbs[$parentId];
             if ($object->isLink()) {
                 $this->cacheBreadcrumbs[$object->getRealObject()->getId()] = $this->cacheBreadcrumbs[$realId];
             }
         } else {
             $this->cacheBreadcrumbs[$realId] = null;
         }
     }
     return $this->cacheBreadcrumbs[$realId];
 }
コード例 #3
0
ファイル: rightsmanager.php プロジェクト: DarneoStudio/bitrix
 /**
  * This is specific function for Sharing model. And you can't use this in another contexts.
  * @param BaseObject $object
  * @param        $userId
  * @return null|string
  * @internal
  */
 public function getPseudoMaxTaskByObjectForUser(BaseObject $object, $userId)
 {
     $maxTaskName = null;
     foreach ($this->getAllListNormalizeRightsForUserId($object->getRealObject(), $userId) as $rightOnObject) {
         if (empty($rightOnObject['NEGATIVE'])) {
             $taskName = $this->getTaskNameById($rightOnObject['TASK_ID']);
             if ($taskName && $this->pseudoCompareTaskName($taskName, $maxTaskName) > 0) {
                 $maxTaskName = $taskName;
             }
         }
     }
     unset($rightOnObject);
     return $maxTaskName;
 }