Exemplo n.º 1
0
 public function delete($useWhere = false)
 {
     // Delete the file, if it exists locally
     if (!empty($this->filename) && file_exists(self::path($this->filename))) {
         $deleted = @unlink(self::path($this->filename));
         if (!$deleted) {
             common_log(LOG_ERR, sprintf('Could not unlink existing file: "%s"', self::path($this->filename)));
         }
     }
     // Clear out related things in the database and filesystem, such as thumbnails
     if (Event::handle('FileDeleteRelated', array($this))) {
         $thumbs = new File_thumbnail();
         $thumbs->file_id = $this->id;
         if ($thumbs->find()) {
             while ($thumbs->fetch()) {
                 $thumbs->delete();
             }
         }
         $f2p = new File_to_post();
         $f2p->file_id = $this->id;
         if ($f2p->find()) {
             while ($f2p->fetch()) {
                 $f2p->delete();
             }
         }
     }
     // And finally remove the entry from the database
     return parent::delete($useWhere);
 }
Exemplo n.º 2
0
function deleteMissingLocalFileThumbnails()
{
    printfnq("Removing all local File_thumbnail entries without existing files...");
    $thumbs = new File_thumbnail();
    $thumbs->whereAdd('filename IS NOT NULL');
    // only fill in names where they're missing
    // Checking if there were any File_thumbnail entries without filename
    if ($thumbs->find()) {
        while ($thumbs->fetch()) {
            try {
                $thumbs->getPath();
            } catch (FileNotFoundException $e) {
                $thumbs->delete();
            }
        }
    }
    printfnq("DONE.\n");
}
Exemplo n.º 3
0
Will print '.' for deleted local files and 'x' where File entry was missing.
If the script seems to stop, it is processing correct File_thumbnail entries.

END_OF_HELP;
require_once INSTALLDIR . '/scripts/commandline.inc';
if (!have_option('y', 'yes')) {
    print "About to delete locally generated thumbnails to allow regeneration. Are you sure? [y/N] ";
    $response = fgets(STDIN);
    if (strtolower(trim($response)) != 'y') {
        print "Aborting.\n";
        exit(0);
    }
}
print "Deleting";
$thumbs = new File_thumbnail();
$thumbs->find();
while ($thumbs->fetch()) {
    try {
        $file = $thumbs->getFile();
        if ($file->isLocal()) {
            // only delete properly linked thumbnails if they're local
            $thumbs->delete();
            print '.';
        }
    } catch (NoResultException $e) {
        // No File object for thumbnail, let's delete the thumbnail entry
        $thumbs->delete();
        print 'x';
    }
}
print "\nDONE.\n";