public function test_media_in_deleted_pages() { saveWikiText('test:internalmedia_usage', '{{internalmedia.png}} {{..:internal media.png}}', 'Test initialization'); idx_addPage('test:internalmedia_usage'); saveWikiText('test:internalmedia_usage', '', 'Deleted'); $this->assertEquals(array(), ft_mediause('internal_media.png')); $this->assertEquals(array(), ft_mediause('test:internalmedia.png')); }
?> </h1> <?php tpl_img(900, 700); /* parameters: maximum width, maximum height (and more) */ ?> <div class="img_detail"> <?php tpl_img_meta(); ?> <dl> <?php echo '<dt>' . $lang['reference'] . ':</dt>'; $media_usage = ft_mediause($IMG, true); if (count($media_usage) > 0) { foreach ($media_usage as $path) { echo '<dd>' . html_wikilink($path) . '</dd>'; } } else { echo '<dd>' . $lang['nothingfound'] . '</dd>'; } ?> </dl> <p><?php echo $lang['media_acl_warning']; ?> </p> </div> <?php
/** * Deletes a file from the wiki. * * @author Gina Haeussge <*****@*****.**> */ function deleteAttachment($id) { $id = cleanID($id); $auth = auth_quickaclcheck(getNS($id) . ':*'); if ($auth < AUTH_DELETE) { return new IXR_ERROR(1, "You don't have permissions to delete files."); } global $conf; global $lang; // check for references if needed $mediareferences = array(); if ($conf['refcheck']) { $mediareferences = ft_mediause($id, $conf['refshow']); } if (!count($mediareferences)) { $file = mediaFN($id); if (@unlink($file)) { addMediaLogEntry(time(), $id, DOKU_CHANGE_TYPE_DELETE); io_sweepNS($id, 'mediadir'); return 0; } //something went wrong return new IXR_ERROR(1, 'Could not delete file'); } else { return new IXR_ERROR(1, 'File is still referenced'); } }
/** * Convenience function to check if a media file is still in use * * @author Michael Klier <*****@*****.**> */ function media_inuse($id) { global $conf; if ($conf['refcheck']) { $mediareferences = ft_mediause($id, true); if (!count($mediareferences)) { return false; } else { return $mediareferences; } } else { return false; } }
/** * Prints mediafile tags * * @author Kate Arzamastseva <*****@*****.**> * * @param string $image image id * @param int $auth permission level * @param string|int $rev revision timestamp, or empty string * @param bool|JpegMeta $meta image object, or create one if false */ function media_details($image, $auth, $rev = '', $meta = false) { global $lang; if (!$meta) { $meta = new JpegMeta(mediaFN($image, $rev)); } $tags = media_file_tags($meta); echo '<dl>' . NL; foreach ($tags as $tag) { if ($tag['value']) { $value = cleanText($tag['value']); echo '<dt>' . $lang[$tag['tag'][1]] . '</dt><dd>'; if ($tag['tag'][2] == 'date') { echo dformat($value); } else { echo hsc($value); } echo '</dd>' . NL; } } echo '</dl>' . NL; echo '<dl>' . NL; echo '<dt>' . $lang['reference'] . ':</dt>'; $media_usage = ft_mediause($image, true); if (count($media_usage) > 0) { foreach ($media_usage as $path) { echo '<dd>' . html_wikilink($path) . '</dd>'; } } else { echo '<dd>' . $lang['nothingfound'] . '</dd>'; } echo '</dl>' . NL; }
/** * Conveinience function to check if a media file is still in use * * @author Michael Klier <*****@*****.**> */ function media_inuse($id) { global $conf; $mediareferences = array(); if ($conf['refcheck']) { require_once DOKU_INC . 'inc/fulltext.php'; $mediareferences = ft_mediause($id, $conf['refshow']); if (!count($mediareferences)) { return false; } else { return $mediareferences; } } else { return false; } }
/** * Handles media file deletions * * If configured, checks for media references before deletion * * @author Andreas Gohr <*****@*****.**> * @return mixed false on error, true on delete or array with refs */ function media_delete($id, $auth) { if ($auth < AUTH_DELETE) { return false; } if (!checkSecurityToken()) { return false; } global $conf; global $lang; // check for references if needed $mediareferences = array(); if ($conf['refcheck']) { require_once DOKU_INC . 'inc/fulltext.php'; $mediareferences = ft_mediause($id, $conf['refshow']); } if (!count($mediareferences)) { $file = mediaFN($id); if (@unlink($file)) { msg(str_replace('%s', noNS($id), $lang['deletesucc']), 1); $del = io_sweepNS($id, 'mediadir'); if ($del) { // current namespace was removed. redirecting to root ns passing msg along header('Location: ' . DOKU_URL . 'lib/exe/mediamanager.php?msg1=' . rawurlencode(str_replace('%s', noNS($id), $lang['deletesucc']))); exit; } return true; } //something went wrong msg(str_replace('%s', $file, $lang['deletefail']), -1); return false; } elseif (!$conf['refshow']) { msg(str_replace('%s', noNS($id), $lang['mediainuse']), 0); return false; } return $mediareferences; }