/** * * converts files to new multitype format */ public function convert() { $filesModel = new Default_Model_Files(); $files = $filesModel->getAll(); $newFiles = array(); $i = 1; foreach ($files as $file) { $fileLoc = "files/" . $file['id_usr_fil'] . "/" . $file['hash_fil']; if (file_exists($fileLoc)) { $hash = hash_file('sha1', $fileLoc); if (!isset($newFiles[$hash])) { $newFile = array(); $newFile['hash_fil'] = $hash; $newFile['id_file'] = $i; $newFile['filetype_fil'] = $file['filetype_fil']; $newFile['filename_fil'] = $file['filename_fil']; $newFile['created_fil'] = $file['created_fil']; $newFile['modified_fil'] = $file['modified_fil']; $newFiles[$hash] = $newFile; if (!file_exists("files/" . $hash)) { copy($fileLoc, "files/" . $hash); unlink($fileLoc); @rmdir("files/" . $file['id_usr_fil']); } $i++; } $links = array(); $links['id_target_fli'] = $file['id_cnt_fil']; $links['id_type_fli'] = 2; $links['oldhash'] = $file['hash_fil']; $newFiles[$hash]['links'][] = $links; } } $filesModel->delete("1=1"); foreach ($newFiles as $file) { foreach ($file['links'] as $fileLink) { $row = $this->createRow(); $row->id_target_fli = $fileLink['id_target_fli']; $row->id_type_fli = $fileLink['id_type_fli']; $row->id_file = $file['id_file']; $row->save(); } } foreach ($newFiles as $file) { $row = $filesModel->createRow(); $row->id_fil = $file['id_file']; $row->hash_fil = $file['hash_fil']; $row->filetype_fil = $file['filetype_fil']; $row->filename_fil = $file['filename_fil']; $row->created_fil = $file['created_fil']; $row->modified_fil = $file['modified_fil']; $row->save(); } }