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


PHP OC_Filesystem::getRoot方法代码示例

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


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

示例1: getFolderContent

 /**
  * get all files and folders in a folder
  * @param string path
  * @param string root (optional)
  * @return array
  *
  * returns an array of assiciative arrays with the following keys:
  * - path
  * - name
  * - size
  * - mtime
  * - ctime
  * - mimetype
  * - encrypted
  * - versioned
  */
 public static function getFolderContent($path, $root = false, $mimetype_filter = '')
 {
     if ($root === false) {
         $root = OC_Filesystem::getRoot();
     }
     $parent = OC_FileCache::getId($path, $root);
     if ($parent == -1) {
         return array();
     }
     $query = OC_DB::prepare('SELECT `id`,`path`,`name`,`ctime`,`mtime`,`mimetype`,`size`,`encrypted`,`versioned`,`writable` FROM `*PREFIX*fscache` WHERE `parent`=? AND (`mimetype` LIKE ? OR `mimetype` = ?)');
     $result = $query->execute(array($parent, $mimetype_filter . '%', 'httpd/unix-directory'))->fetchAll();
     if (is_array($result)) {
         return $result;
     } else {
         OC_Log::write('files', 'getFolderContent(): file not found in cache (' . $path . ')', OC_Log::DEBUG);
         return false;
     }
 }
开发者ID:ryanshoover,项目名称:core,代码行数:34,代码来源:cached.php

示例2: basicOperation

 /**
  * abstraction for running most basic operations
  * @param string $operation
  * @param string #path
  * @param array (optional) hooks
  * @param mixed (optional) $extraParam
  * @return mixed
  */
 private function basicOperation($operation, $path, $hooks = array(), $extraParam = null)
 {
     $absolutePath = $this->getAbsolutePath($path);
     if (OC_FileProxy::runPreProxies($operation, $absolutePath, $extraParam) and OC_Filesystem::isValidPath($path)) {
         $path = $this->getRelativePath($absolutePath);
         if ($path == null) {
             return false;
         }
         $internalPath = $this->getInternalPath($path);
         $run = true;
         if (OC_Filesystem::$loaded and $this->fakeRoot == OC_Filesystem::getRoot()) {
             foreach ($hooks as $hook) {
                 if ($hook != 'read') {
                     OC_Hook::emit(OC_Filesystem::CLASSNAME, $hook, array(OC_Filesystem::signal_param_path => $path, OC_Filesystem::signal_param_run => &$run));
                 } else {
                     OC_Hook::emit(OC_Filesystem::CLASSNAME, $hook, array(OC_Filesystem::signal_param_path => $path));
                 }
             }
         }
         if ($run and $storage = $this->getStorage($path)) {
             if (!is_null($extraParam)) {
                 $result = $storage->{$operation}($internalPath, $extraParam);
             } else {
                 $result = $storage->{$operation}($internalPath);
             }
             $result = OC_FileProxy::runPostProxies($operation, $this->getAbsolutePath($path), $result);
             if (OC_Filesystem::$loaded and $this->fakeRoot == OC_Filesystem::getRoot()) {
                 if ($operation != 'fopen') {
                     //no post hooks for fopen, the file stream is still open
                     foreach ($hooks as $hook) {
                         if ($hook != 'read') {
                             OC_Hook::emit(OC_Filesystem::CLASSNAME, 'post_' . $hook, array(OC_Filesystem::signal_param_path => $path));
                         }
                     }
                 }
             }
             return $result;
         }
     }
     return null;
 }
开发者ID:noci2012,项目名称:owncloud,代码行数:49,代码来源:filesystemview.php

示例3: getItems

 /**
  * @brief Get shared items from the database
  * @param string Item type
  * @param string Item source or target (optional)
  * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique
  * @param string User or group the item is being shared with
  * @param string User that is the owner of shared items (optional)
  * @param int Format to convert items to with formatItems()
  * @param mixed Parameters to pass to formatItems()
  * @param int Number of items to return, -1 to return all matches (optional)
  * @param bool Include collection item types (optional)
  * @return mixed
  *
  * See public functions getItem(s)... for parameter usage
  *
  */
 private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false)
 {
     if (!self::isEnabled()) {
         if ($limit == 1 || isset($uidOwner) && isset($item)) {
             return false;
         } else {
             return array();
         }
     }
     $backend = self::getBackend($itemType);
     // Get filesystem root to add it to the file target and remove from the file source, match file_source with the file cache
     if ($itemType == 'file' || $itemType == 'folder') {
         $root = \OC_Filesystem::getRoot();
         $where = 'INNER JOIN `*PREFIX*fscache` ON `file_source` = `*PREFIX*fscache`.`id`';
         if (!isset($item)) {
             $where .= ' WHERE `file_target` IS NOT NULL';
         }
         $fileDependent = true;
         $queryArgs = array();
     } else {
         $fileDependent = false;
         $root = '';
         if ($includeCollections && !isset($item) && ($collectionTypes = self::getCollectionItemTypes($itemType))) {
             // If includeCollections is true, find collections of this item type, e.g. a music album contains songs
             if (!in_array($itemType, $collectionTypes)) {
                 $itemTypes = array_merge(array($itemType), $collectionTypes);
             } else {
                 $itemTypes = $collectionTypes;
             }
             $placeholders = join(',', array_fill(0, count($itemTypes), '?'));
             $where .= ' WHERE item_type IN (' . $placeholders . '))';
             $queryArgs = $itemTypes;
         } else {
             $where = ' WHERE `item_type` = ?';
             $queryArgs = array($itemType);
         }
     }
     if (isset($shareType)) {
         // Include all user and group items
         if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) {
             $where .= ' AND `share_type` IN (?,?,?)';
             $queryArgs[] = self::SHARE_TYPE_USER;
             $queryArgs[] = self::SHARE_TYPE_GROUP;
             $queryArgs[] = self::$shareTypeGroupUserUnique;
             $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
             $placeholders = join(',', array_fill(0, count($userAndGroups), '?'));
             $where .= ' AND `share_with` IN (' . $placeholders . ')';
             $queryArgs = array_merge($queryArgs, $userAndGroups);
             // Don't include own group shares
             $where .= ' AND `uid_owner` != ?';
             $queryArgs[] = $shareWith;
         } else {
             $where .= ' AND `share_type` = ?';
             $queryArgs[] = $shareType;
             if (isset($shareWith)) {
                 $where .= ' AND `share_with` = ?';
                 $queryArgs[] = $shareWith;
             }
         }
     }
     if (isset($uidOwner)) {
         $where .= ' AND `uid_owner` = ?';
         $queryArgs[] = $uidOwner;
         if (!isset($shareType)) {
             // Prevent unique user targets for group shares from being selected
             $where .= ' AND `share_type` != ?';
             $queryArgs[] = self::$shareTypeGroupUserUnique;
         }
         if ($itemType == 'file' || $itemType == 'folder') {
             $column = 'file_source';
         } else {
             $column = 'item_source';
         }
     } else {
         if ($itemType == 'file' || $itemType == 'folder') {
             $column = 'file_target';
         } else {
             $column = 'item_target';
         }
     }
     if (isset($item)) {
         if ($includeCollections && ($collectionTypes = self::getCollectionItemTypes($itemType))) {
             $where .= ' AND (';
         } else {
//.........这里部分代码省略.........
开发者ID:noci2012,项目名称:owncloud,代码行数:101,代码来源:share.php

示例4: searchByMime

 /**
  * find files by mimetype
  * @param string $part1
  * @param string $part2 (optional)
  * @param string root (optional)
  * @return array of file paths
  *
  * $part1 and $part2 together form the complete mimetype.
  * e.g. searchByMime('text','plain')
  *
  * seccond mimetype part can be ommited
  * e.g. searchByMime('audio')
  */
 public static function searchByMime($part1, $part2 = null, $root = false)
 {
     if ($root === false) {
         $root = OC_Filesystem::getRoot();
     }
     $rootLen = strlen($root);
     $root .= '%';
     $user = OC_User::getUser();
     if (!$part2) {
         $query = OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `mimepart`=? AND `user`=? AND `path` LIKE ?');
         $result = $query->execute(array($part1, $user, $root));
     } else {
         $query = OC_DB::prepare('SELECT `path` FROM `*PREFIX*fscache` WHERE `mimetype`=? AND `user`=? AND `path` LIKE ? ');
         $result = $query->execute(array($part1 . '/' . $part2, $user, $root));
     }
     $names = array();
     while ($row = $result->fetchRow()) {
         $names[] = substr($row['path'], $rootLen);
     }
     return $names;
 }
开发者ID:noci2012,项目名称:owncloud,代码行数:34,代码来源:filecache.php

示例5: findFiles

 public static function findFiles($path)
 {
     $images = OC_FileCache::searchByMime('image', '', OC_Filesystem::getRoot() . $path);
     $new = array();
     foreach ($images as $i) {
         if (strpos($i, '/', 1) === FALSE) {
             $new[] = $path . $i;
         }
     }
     return $new;
 }
开发者ID:jaeindia,项目名称:ownCloud-Enhancements,代码行数:11,代码来源:scanner.php

示例6: isUpdated

 /**
  * check if a file or folder is updated outside owncloud
  * @param string path
  * @param string root (optional)
  * @return bool
  */
 public static function isUpdated($path, $root = '')
 {
     if (!$root) {
         $root = OC_Filesystem::getRoot();
         $view = OC_Filesystem::getView();
     } else {
         if ($root == '/') {
             $root = '';
         }
         $view = new OC_FilesystemView($root);
     }
     if (!$view->file_exists($path)) {
         return false;
     }
     $mtime = $view->filemtime($path);
     $isDir = $view->is_dir($path);
     $fullPath = $root . $path;
     $query = OC_DB::prepare('SELECT mtime FROM *PREFIX*fscache WHERE path_hash=?');
     $result = $query->execute(array(md5($fullPath)));
     if ($row = $result->fetchRow()) {
         $cachedMTime = $row['mtime'];
         return $mtime > $cachedMTime;
     } else {
         //file not in cache, so it has to be updated
         if ($path == '/' or $path == '') {
             //dont auto update the root folder, it will be scanned
             return false;
         }
         return true;
     }
 }
开发者ID:jaeindia,项目名称:ownCloud-Enhancements,代码行数:37,代码来源:filecache.php

示例7: runHooks

 private function runHooks($hooks, $path, $post = false)
 {
     $prefix = $post ? 'post_' : '';
     $run = true;
     if (OC_Filesystem::$loaded and $this->fakeRoot == OC_Filesystem::getRoot()) {
         foreach ($hooks as $hook) {
             if ($hook != 'read') {
                 OC_Hook::emit(OC_Filesystem::CLASSNAME, $prefix . $hook, array(OC_Filesystem::signal_param_run => &$run, OC_Filesystem::signal_param_path => $path));
             } elseif (!$post) {
                 OC_Hook::emit(OC_Filesystem::CLASSNAME, $prefix . $hook, array(OC_Filesystem::signal_param_path => $path));
             }
         }
     }
     return $run;
 }
开发者ID:noci2012,项目名称:owncloud,代码行数:15,代码来源:filesystemview.php

示例8: get_absolute_path

function get_absolute_path($path)
{
    return OC_Config::getValue("datadirectory") . OC_Filesystem::getRoot() . "/" . $path;
}
开发者ID:v-iacovella,项目名称:NeuroBox,代码行数:4,代码来源:common.php


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