/** * returns array with the filter settings of this filter * * @param bool $_valueToJson resolve value for json api? * @return array */ public function toArray($_valueToJson = false) { $result = Tinebase_Model_Filter_Text::toArray($_valueToJson); if ($this->_value === '/' || $this->_value === '') { $node = new Tinebase_Model_Tree_Node(array('name' => 'root', 'path' => '/'), TRUE); } else { $node = new Tinebase_Model_Tree_Node(array('path' => $this->_value, 'name' => 'nodeName', 'object_id' => 1)); } $result['value'] = $node->toArray(); return $result; }
/** * create new file node * * @param string|Tinebase_Model_Tree_Node $parentId * @param string $name * @throws Tinebase_Exception_InvalidArgument * @return Tinebase_Model_Tree_Node */ public function createFileTreeNode($parentId, $name) { $parentId = $parentId instanceof Tinebase_Model_Tree_Node ? $parentId->getId() : $parentId; $fileObject = new Tinebase_Model_Tree_FileObject(array('type' => Tinebase_Model_Tree_FileObject::TYPE_FILE, 'contentytype' => null)); Tinebase_Timemachine_ModificationLog::setRecordMetaData($fileObject, 'create'); // quick hack for 2014.11 - will be resolved correctly in 2015.11-develop if (isset($_SERVER['HTTP_X_OC_MTIME'])) { $fileObject->creation_time = new Tinebase_DateTime($_SERVER['HTTP_X_OC_MTIME']); $fileObject->last_modified_time = new Tinebase_DateTime($_SERVER['HTTP_X_OC_MTIME']); Tinebase_Server_WebDAV::getResponse()->setHeader('X-OC-MTime', 'accepted'); if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " using X-OC-MTIME: {$fileObject->last_modified_time->format(Tinebase_Record_Abstract::ISO8601LONG)} for {$name}"); } } $fileObject = $this->_fileObjectBackend->create($fileObject); $treeNode = new Tinebase_Model_Tree_Node(array('name' => $name, 'object_id' => $fileObject->getId(), 'parent_id' => $parentId)); if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($treeNode->toArray(), TRUE)); } $treeNode = $this->_treeNodeBackend->create($treeNode); return $treeNode; }
/** * download (fpassthru) file node * * @param Tinebase_Model_Tree_Node $node * @param string $filesystemPath */ protected function _downloadFileNode($node, $filesystemPath) { $oldMaxExcecutionTime = Tinebase_Core::setExecutionLifeTime(0); if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Download file node ' . print_r($node->toArray(), TRUE)); } // cache for 3600 seconds $maxAge = 3600; header('Cache-Control: private, max-age=' . $maxAge); header("Expires: " . gmdate('D, d M Y H:i:s', Tinebase_DateTime::now()->addSecond($maxAge)->getTimestamp()) . " GMT"); // overwrite Pragma header from session header("Pragma: cache"); header('Content-Disposition: attachment; filename="' . $node->name . '"'); header("Content-Type: " . $node->contenttype); $handle = fopen($filesystemPath, 'r'); fpassthru($handle); fclose($handle); Tinebase_Core::setExecutionLifeTime($oldMaxExcecutionTime); }
/** * create new file node * * @param string|Tinebase_Model_Tree_Node $parentId * @param string $name * @throws Tinebase_Exception_InvalidArgument * @return Tinebase_Model_Tree_Node */ public function createFileTreeNode($parentId, $name) { $parentId = $parentId instanceof Tinebase_Model_Tree_Node ? $parentId->getId() : $parentId; $fileObject = new Tinebase_Model_Tree_FileObject(array('type' => Tinebase_Model_Tree_FileObject::TYPE_FILE, 'contentytype' => null)); Tinebase_Timemachine_ModificationLog::setRecordMetaData($fileObject, 'create'); $fileObject = $this->_fileObjectBackend->create($fileObject); $treeNode = new Tinebase_Model_Tree_Node(array('name' => $name, 'object_id' => $fileObject->getId(), 'parent_id' => $parentId)); if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($treeNode->toArray(), TRUE)); } $treeNode = $this->_treeNodeBackend->create($treeNode); return $treeNode; }