getTemplate('application/vnd.oasis.opendocument.text'); if ($templateContent){ $content = $templateContent; } } $view->file_put_contents($path, $content); } /** * Process partial/complete file download * @param array $args - array containing session id as an element with a key es_id */ public static function serve($args){ $session = new Db_Session(); $sessionData = $session->load(@$args['es_id'])->getData(); $file = new File(@$sessionData['file_id']); if (!$file->isPublicShare()){ self::preDispatch(false); } else { self::preDispatchGuest(false); } $filename = isset($sessionData['genesis_url']) ? $sessionData['genesis_url'] : ''; $documentsView = new View('/' . $sessionData['owner']); $download = new Download($documentsView->initDocumentsView(), $filename); $download->sendResponse(); } /** * lists the documents the user has access to (including shared files, once the code in core has been fixed) * also adds session and member info for these files */ public static function listAll(){ self::preDispatch(); $documents = Storage::getDocuments(); $fileIds = array(); //$previewAvailable = \OCP\Preview::show($file); foreach ($documents as $key=>$document) { //\OCP\Preview::show($document['path']); $documents[$key]['icon'] = preg_replace('/\.png$/', '.svg', \OC_Helper::mimetypeIcon($document['mimetype'])); $fileIds[] = $document['fileid']; } usort($documents, function($a, $b){ return @$b['mtime']-@$a['mtime']; }); $session = new Db_Session(); $sessions = $session->getCollectionBy('file_id', $fileIds); $members = array(); $member = new Db_Member(); foreach ($sessions as $session) { $sessionMembers = $member->getCollectionBy('es_id', $session['es_id']); $activeMembers = array_filter($sessionMembers, function($member){ return $member['status']==Db_Member::MEMBER_STATUS_ACTIVE; }); $members[$session['es_id']] = array_values($activeMembers); } \OCP\JSON::success(array('documents' => $documents,'sessions' => $sessions,'members' => $members)); } }