public function execute() { $this->forceSystemAuthentication(); $this->basePath = "/content/dynamic/"; $dynamicRoot = myContentStorage::getFSContentRootPath() . $this->basePath; if ($this->getRequest()->getMethod() == sfRequest::POST) { $origFilename = basename($_FILES['Filedata']['name']); $fullPath = $dynamicRoot . $origFilename; move_uploaded_file($_FILES['Filedata']['tmp_name'], $fullPath); chmod($fullPath, 0777); return $this->renderText("ok"); } else { if ($this->getRequest()->getMethod() == sfRequest::DELETE) { $filename = basename($_REQUEST['fileName']); kFile::deleteFile($dynamicRoot . $filename); return $this->renderText("ok"); } } $this->files = kFile::dirListExtended($dynamicRoot, false); $this->extraHead = <<<EOT \t\t<style type="text/css"> \t\t\ttable{ font-size:1.2em; width:100%; margin:40px 0 0 0; } \t\t\ttable thead{ font-size:1.4em; } \t\t\t\ttable thead td{ border-bottom:1px solid #444; margin-bottom:20px; } \t\t\ttable tbody td{ padding:2px 0; color:#ccc; } \t\t\t\ttable tbody td b{ font-weight:normal; cursor:default; } \t\t\t\ttable tbody td span.btn{ margin-right:12px;} \t\t\tdiv#helper{ display:none; position:absolute; left:0; width:250px; } \t\t\tdiv#helper img{ float:right; max-width:250px; } \t\t</style> EOT; }
public static function getAllVersions_deprecated($entityName, $int_id, $id, $fileName) { $c = strstr($fileName, '^') ? '^' : '&'; $parts = explode($c, $fileName); if (count($parts) == 2 && strlen($parts[1])) { // a template has no versions $dir = '/content/templates/' . $entityName . '/'; $file_base = ""; //$parts[1]; return $dir . $file_base; } else { // $dir = '/content/'.$entityName.'/'. // (intval($id / 1048576)).'/'. // (intval($id / 1024) % 1024).'/'; // $dir = '/content/' . $entityName . '/' . self::dirForId($int_id, $id, ""); $file_base = $id . '_'; //.$fileName; } $id_len = strlen($id . "_"); // iterate the directory and find all the files that start with $file_base // the result will be tuples where the first element is the file's name, second is the file size // TODO - use glob rather than dirListExtended //$pattern = "|" . self::getFSContentRootPath(). "/" . $dir . "/^{$file_base}.*\.xml$"; $files = kFile::dirListExtended(self::getFSContentRootPath() . "/" . $dir, false, false, '/^' . $file_base . ".*\\.xml\$/"); if ($files == null) { return null; } // from each file - strip the id and the file extension // use the refernce to file_tuple - it will be modified foreach ($files as &$file_tuple) { // the file_name includes the id and the _, then the verson and finally the file extension $file_version = substr(kFile::getFileNameNoExtension($file_tuple[0]), $id_len); $file_tuple[] = $file_version; // set the version in the forth place of the tuple. } if ($files == null) { return null; } sort($files); return $files; }