. */ class OC_Share_Backend_Song extends OCP\Share_Backend { public function getSource($item, $uid) { $query = OCP\DB::prepare('SELECT song_path FROM *PREFIX*media_songs WHERE song_id = ? AND song_user = ?'); $result = $query->execute(array($item, $uid))->fetchRow(); if (is_array($result)) { return array('item' => $item, 'file' => $result['song_path']); } return false; } public function generateTarget($item, $uid, $exclude = null) { // TODO Make sure target path doesn't exist already return '/Shared'.$item; } public function formatItems($items, $format) { $ids = array(); foreach ($items as $id => $info) { $ids[] = $id; } $ids = "'".implode("','", $ids)."'"; switch ($format) { case self::FORMAT_SOURCE_PATH: $query = OCP\DB::prepare('SELECT path FROM *PREFIX*fscache WHERE id IN ('.$ids.')'); return $query->execute()->fetchAll(); case self::FORMAT_FILE_APP: $query = OCP\DB::prepare('SELECT id, path, name, ctime, mtime, mimetype, size, encrypted, versioned, writable FROM *PREFIX*fscache WHERE id IN ('.$ids.')'); $result = $query->execute(); $files = array(); while ($file = $result->fetchRow()) { // Set target path $file['path'] = $items[$file['id']]['item_target']; $file['name'] = basename($file['path']); // TODO Set permissions: $file['writable'] $files[] = $file; } return $files; } } } ?>