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'));
 }
Exemple #2
0
    ?>
</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 
Exemple #3
0
 /**
  * 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');
     }
 }
Exemple #4
0
/**
 * 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;
    }
}
Exemple #5
0
/**
 * 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;
}
Exemple #6
0
/**
 * 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;
}