function recycle($request)
 {
     $id = intval($request->param("ID"));
     if ($id) {
         $file = File::get()->byID($id);
         if ($file) {
             if (MetaTagCMSControlFileUse_RecyclingRecord::recycle($file)) {
                 Session::set("MetaTagCMSControlMessage", _t("MetaTagCMSControl.FILERECYCLED", "File "" . $file->Title . "" has been recycled."));
                 return $this->returnAjaxOrRedirectBack();
             }
         }
     }
     Session::set("MetaTagCMSControlMessage", _t("MetaTagCMSControl.FILENOTRECYCLED", "ERROR: File "" . $file->Title . "" could NOT be recycled."));
     return $this->returnAjaxOrRedirectBack();
 }
 public static function recycle(File $file, $verbose = true)
 {
     $recylcingFolder = Folder::find_or_make(Config::inst()->get("MetaTagCMSControlFiles", "recycling_bin_name"));
     if ($recylcingFolder) {
         if ($file) {
             if ($file->exists()) {
                 if (file_exists($file->getFullPath())) {
                     $valid = $file->validate();
                     if ($valid->valid()) {
                         $record = new MetaTagCMSControlFileUse_RecyclingRecord();
                         $record->FileID = $file->ID;
                         $record->FromFolderID = $file->ParentID;
                         $record->write();
                         //doing it.....
                         $file->ParentID = $recylcingFolder->ID;
                         $file->write();
                         //IMPORTANT!
                         return true;
                     }
                 }
                 $record = new MetaTagCMSControlFileUse_RecyclingRecord();
                 $record->FileID = $file->ID;
                 $record->FromFolderID = $file->ParentID;
                 $record->write();
                 DB::query("UPDATE \"File\" SET \"ParentID\" = " . $recylcingFolder->ID . " WHERE \"File\".\"ID\" = " . $file->ID);
                 return true;
             }
         }
     }
     return false;
 }