当前位置: 首页>>代码示例>>PHP>>正文


PHP Share::getBackend方法代码示例

本文整理汇总了PHP中OC\Share\Share::getBackend方法的典型用法代码示例。如果您正苦于以下问题:PHP Share::getBackend方法的具体用法?PHP Share::getBackend怎么用?PHP Share::getBackend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OC\Share\Share的用法示例。


在下文中一共展示了Share::getBackend方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: generateTarget

 /**
  * Generate a unique target for the item
  * @param string $itemType
  * @param string $itemSource
  * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
  * @param string $shareWith User or group the item is being shared with
  * @param string $uidOwner User that is the owner of shared item
  * @param string $suggestedTarget The suggested target originating from a reshare (optional)
  * @param int $groupParent The id of the parent group share (optional)
  * @throws \Exception
  * @return string Item target
  */
 public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null)
 {
     // FIXME: $uidOwner and $groupParent seems to be unused
     $backend = \OC\Share\Share::getBackend($itemType);
     if ($shareType === self::SHARE_TYPE_LINK || $shareType === self::SHARE_TYPE_REMOTE) {
         if (isset($suggestedTarget)) {
             return $suggestedTarget;
         }
         return $backend->generateTarget($itemSource, false);
     } else {
         if ($shareType == self::SHARE_TYPE_USER) {
             // Share with is a user, so set share type to user and groups
             $shareType = self::$shareTypeUserAndGroups;
         }
         // Check if suggested target exists first
         if (!isset($suggestedTarget)) {
             $suggestedTarget = $itemSource;
         }
         if ($shareType == self::SHARE_TYPE_GROUP) {
             $target = $backend->generateTarget($suggestedTarget, false);
         } else {
             $target = $backend->generateTarget($suggestedTarget, $shareWith);
         }
         return $target;
     }
 }
开发者ID:loulancn,项目名称:core,代码行数:38,代码来源:helper.php

示例2: generateTarget

 /**
  * Generate a unique target for the item
  * @param string $itemType
  * @param string $itemSource
  * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
  * @param string $shareWith User or group the item is being shared with
  * @param string $uidOwner User that is the owner of shared item
  * @param string $suggestedTarget The suggested target originating from a reshare (optional)
  * @param int $groupParent The id of the parent group share (optional)
  * @throws \Exception
  * @return string Item target
  */
 public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null)
 {
     // FIXME: $uidOwner and $groupParent seems to be unused
     $backend = \OC\Share\Share::getBackend($itemType);
     if ($shareType == self::SHARE_TYPE_LINK) {
         if (isset($suggestedTarget)) {
             return $suggestedTarget;
         }
         return $backend->generateTarget($itemSource, false);
     } else {
         if ($itemType == 'file' || $itemType == 'folder') {
             $column = 'file_target';
             $columnSource = 'file_source';
         } else {
             $column = 'item_target';
             $columnSource = 'item_source';
         }
         if ($shareType == self::SHARE_TYPE_USER) {
             // Share with is a user, so set share type to user and groups
             $shareType = self::$shareTypeUserAndGroups;
         }
         $exclude = array();
         $result = \OCP\Share::getItemsSharedWithUser($itemType, $shareWith);
         foreach ($result as $row) {
             if ($row['permissions'] > 0) {
                 $exclude[] = $row[$column];
             }
         }
         // Check if suggested target exists first
         if (!isset($suggestedTarget)) {
             $suggestedTarget = $itemSource;
         }
         if ($shareType == self::SHARE_TYPE_GROUP) {
             $target = $backend->generateTarget($suggestedTarget, false, $exclude);
         } else {
             $target = $backend->generateTarget($suggestedTarget, $shareWith, $exclude);
         }
         return $target;
     }
 }
开发者ID:WYSAC,项目名称:oregon-owncloud,代码行数:52,代码来源:helper.php

示例3: getBackend

 /**
  * Get the backend class for the specified item type
  * @param string $itemType
  * @return Share_Backend
  */
 public static function getBackend($itemType)
 {
     return \OC\Share\Share::getBackend($itemType);
 }
开发者ID:adolfo2103,项目名称:hcloudfilem,代码行数:9,代码来源:share.php

示例4: __construct

 /**
  * Constructor.
  *
  * @param TagMapper $mapper Instance of the TagMapper abstraction layer.
  * @param string $user The user whose data the object will operate on.
  * @param string $type The type of items for which tags will be loaded.
  * @param array $defaultTags Tags that should be created at construction.
  * @param boolean $includeShared Whether to include tags for items shared with this user by others.
  */
 public function __construct(TagMapper $mapper, $user, $type, $defaultTags = array(), $includeShared = false)
 {
     $this->mapper = $mapper;
     $this->user = $user;
     $this->type = $type;
     $this->includeShared = $includeShared;
     $this->owners = array($this->user);
     if ($this->includeShared) {
         $this->owners = array_merge($this->owners, \OC\Share\Share::getSharedItemsOwners($this->user, $this->type, true));
         $this->backend = \OC\Share\Share::getBackend($this->type);
     }
     $this->tags = $this->mapper->loadTags($this->owners, $this->type);
     if (count($defaultTags) > 0 && count($this->tags) === 0) {
         $this->addMultiple($defaultTags, true);
     }
     \OCP\Util::writeLog('core', __METHOD__ . ', tags: ' . print_r($this->tags, true), \OCP\Util::DEBUG);
 }
开发者ID:kebenxiaoming,项目名称:owncloudRedis,代码行数:26,代码来源:tags.php

示例5: generateTarget

 /**
  * Generate a unique target for the item
  * @param string $itemType
  * @param string $itemSource
  * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
  * @param string $shareWith User or group the item is being shared with
  * @param string $uidOwner User that is the owner of shared item
  * @param string $suggestedTarget The suggested target originating from a reshare (optional)
  * @param int $groupParent The id of the parent group share (optional)
  * @throws \Exception
  * @return string Item target
  */
 public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null)
 {
     $backend = \OC\Share\Share::getBackend($itemType);
     if ($shareType == self::SHARE_TYPE_LINK) {
         if (isset($suggestedTarget)) {
             return $suggestedTarget;
         }
         return $backend->generateTarget($itemSource, false);
     } else {
         if ($itemType == 'file' || $itemType == 'folder') {
             $column = 'file_target';
             $columnSource = 'file_source';
         } else {
             $column = 'item_target';
             $columnSource = 'item_source';
         }
         if ($shareType == self::SHARE_TYPE_USER) {
             // Share with is a user, so set share type to user and groups
             $shareType = self::$shareTypeUserAndGroups;
             $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
         } else {
             $userAndGroups = false;
         }
         $exclude = null;
         // Backend has 3 opportunities to generate a unique target
         for ($i = 0; $i < 2; $i++) {
             // Check if suggested target exists first
             if ($i == 0 && isset($suggestedTarget)) {
                 $target = $suggestedTarget;
             } else {
                 if ($shareType == self::SHARE_TYPE_GROUP) {
                     $target = $backend->generateTarget($itemSource, false, $exclude);
                 } else {
                     $target = $backend->generateTarget($itemSource, $shareWith, $exclude);
                 }
                 if (is_array($exclude) && in_array($target, $exclude)) {
                     break;
                 }
             }
             // Check if target already exists
             $checkTarget = \OC\Share\Share::getItems($itemType, $target, $shareType, $shareWith);
             if (!empty($checkTarget)) {
                 foreach ($checkTarget as $item) {
                     // Skip item if it is the group parent row
                     if (isset($groupParent) && $item['id'] == $groupParent) {
                         if (count($checkTarget) == 1) {
                             return $target;
                         } else {
                             continue;
                         }
                     }
                     if ($item['uid_owner'] == $uidOwner) {
                         if ($itemType == 'file' || $itemType == 'folder') {
                             $meta = \OC\Files\Filesystem::getFileInfo($itemSource);
                             if ($item['file_source'] == $meta['fileid']) {
                                 return $target;
                             }
                         } else {
                             if ($item['item_source'] == $itemSource) {
                                 return $target;
                             }
                         }
                     }
                 }
                 if (!isset($exclude)) {
                     $exclude = array();
                 }
                 // Find similar targets to improve backend's chances to generate a unqiue target
                 if ($userAndGroups) {
                     if ($column == 'file_target') {
                         $checkTargets = \OC_DB::prepare('SELECT `' . $column . '` FROM `*PREFIX*share`' . ' WHERE `item_type` IN (\'file\', \'folder\')' . ' AND `share_type` IN (?,?,?)' . ' AND `share_with` IN (\'' . implode('\',\'', $userAndGroups) . '\')');
                         $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique));
                     } else {
                         $checkTargets = \OC_DB::prepare('SELECT `' . $column . '` FROM `*PREFIX*share`' . ' WHERE `item_type` = ? AND `share_type` IN (?,?,?)' . ' AND `share_with` IN (\'' . implode('\',\'', $userAndGroups) . '\')');
                         $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique));
                     }
                 } else {
                     if ($column == 'file_target') {
                         $checkTargets = \OC_DB::prepare('SELECT `' . $column . '` FROM `*PREFIX*share`' . ' WHERE `item_type` IN (\'file\', \'folder\')' . ' AND `share_type` = ? AND `share_with` = ?');
                         $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith));
                     } else {
                         $checkTargets = \OC_DB::prepare('SELECT `' . $column . '` FROM `*PREFIX*share`' . ' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?');
                         $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith));
                     }
                 }
                 while ($row = $result->fetchRow()) {
                     $exclude[] = $row[$column];
                 }
//.........这里部分代码省略.........
开发者ID:olucao,项目名称:owncloud-core,代码行数:101,代码来源:helper.php

示例6: __construct

 /**
  * Constructor.
  *
  * @param TagMapper $mapper Instance of the TagMapper abstraction layer.
  * @param string $user The user whose data the object will operate on.
  * @param string $type The type of items for which tags will be loaded.
  * @param array $defaultTags Tags that should be created at construction.
  * @param boolean $includeShared Whether to include tags for items shared with this user by others.
  */
 public function __construct(TagMapper $mapper, $user, $type, $defaultTags = array(), $includeShared = false)
 {
     $this->mapper = $mapper;
     $this->user = $user;
     $this->type = $type;
     $this->includeShared = $includeShared;
     $this->owners = array($this->user);
     if ($this->includeShared) {
         $this->owners = array_merge($this->owners, \OC\Share\Share::getSharedItemsOwners($this->user, $this->type, true));
         $this->backend = \OC\Share\Share::getBackend($this->type);
     }
     $this->tags = $this->mapper->loadTags($this->owners, $this->type);
     if (count($defaultTags) > 0 && count($this->tags) === 0) {
         $this->addMultiple($defaultTags, true);
     }
 }
开发者ID:Kevin-ZK,项目名称:vaneDisk,代码行数:25,代码来源:tags.php


注:本文中的OC\Share\Share::getBackend方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。