Exemplo n.º 1
0
 /**
  * 
  * 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();
     }
 }