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_folder($folderID = 0, $verbose = true)
 {
     $count = 0;
     set_time_limit(60 * 10);
     // 10 minutes
     $recyclefolder = Folder::find_or_make(Config::inst()->get("MetaTagCMSControlFiles", "recycling_bin_name"));
     if ($recyclefolder) {
         $files = File::get()->filter(array("ParentID" => $folderID))->exclude(array("ParentID" => $recyclefolder->ID));
         if ($files && $files->count()) {
             foreach ($files as $file) {
                 if (self::file_usage_count($file, true)) {
                     if ($verbose) {
                         DB::alteration_message($file->Title . " is in use. No action taken.", "created");
                     }
                 } else {
                     if (MetaTagCMSControlFileUse_RecyclingRecord::recycle($file, $verbose)) {
                         if ($verbose) {
                             DB::alteration_message($file->Title . " recycled", "edited");
                         }
                         $count++;
                     } else {
                         if ($verbose) {
                             DB::alteration_message("Could not recycle file: " . $file->ID . '-' . $file->Title, "deleted");
                         }
                     }
                 }
             }
         } else {
             if ($verbose) {
                 DB::alteration_message("There are no files to recycle", "created");
             }
         }
     } else {
         if ($verbose) {
             DB::alteration_message("Could not create recycling folder", "deleted");
         }
     }
     return $count;
 }