DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:medialist

This is an old revision of the document!


MediaList Plugin

Compatible with DokuWiki

> 2009-02-14, 2008-05-05, "Detritus"

plugin Show a list of media files (images/archives ...) referred in a given page using curly brackets "{{...}}", or stored in a given namespace.

Last updated on
2016-06-09
Provides
Syntax
Repository
Source
Conflicts with
pdfjs

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Similar to filelist, filelisting

Tagged with download, file, images, listing, media, namespace

:!: If you're looking for a really versatile/flexible solution for listing media files I suggest you give the filelist plugin a try! :!:

Description

This plugin shows a list of media files for a given wikipage which are either linked in the page itself or belong to its namespace. Note, the plugin is aware of your ACLs.

The original plugin author Michael Klier chi [at] chimeric [dot] de does not provide any support since 2009-05-21 release. This plugin has adopted for further development to catch up newer DokuWiki and PHP 7 series.

Installation

Install the plugin through the Extension Manager or Plugin Manager using the download URL above, which points to latest version of the plugin. Refer to plugin installation instructions.

Syntax

To list the media files linked in the given page use:

{{medialist>wikipage}}

To list the media files linked in the current page use:

{{medialist>@PAGE@}}

To list the media files contained in the current namespace use:

{{medialist>@NAMESPACE@}}

To list both, media files linked in the current page and contained in the current namespace use:

{{medialist>@ALL@}}

:!: NOTE: @ALL@ keyword will be obsoleted in future release. — s.sahara 2016-06-06 14:42

Demo

You can see the plugin in action here. - link is dead (404)

New demo (work in progress): here.

Changelog

A complete changelog is available here.

Bugs / Feature Requests

Please report bugs and feature requests at the bug tracker.

ToDO

  • support @ID@ and @NS@ keywords, same as replacement patterns for namespace templates
  • show full media id in the list (namespace mode only)
  • discontinue @ALL@ keyword

Discussion before 2016-06-05 release

Thanks for good plugin. But It doesn't work with @PAGE@. so I patched the code below.

Before

syntax.php line 172

        if(($mode == 'page') or ($mode == 'all')) {
            // check permissions for the page
            if(auth_quickaclcheck($id) >= AUTH_READ) {
                // get the instructions
                $ins = p_cached_instructions(wikiFN($id),true,$id);
 
                // get linked media files
                foreach($ins as $node) {
                    if($node[0] == 'internalmedia') {
                        array_push($linked_media,$node[1][0]);
                    } elseif($node[0] == 'externalmedia') {
                        array_push($linked_media,$node[1][0]);
                    }
                }
            }
        }
 
        ...
 
        // remove unique items
        $media = array_unique(array_merge($linked_media,$intern_media));

After

	if($mode == 'all') {
         		$dir = utf8_encode('/');
		} elseif ($mode == 'page') {
			$dir = utf8_encode(str_replace(':','/', $id));
		} else {
			// $mode == 'ns'
			$dir = utf8_encode(str_replace(':','/', getNS($id)));
		}
 
		// check permissions for the page
		if(@is_dir($conf['mediadir'] . '/' . $dir)) {
			if(auth_quickaclcheck($dir) >= AUTH_READ) {
				// get mediafiles of current namespace
				$res = array(); // search result
				require_once(DOKU_INC.'inc/search.php');
				search($res,$conf['mediadir'],'search_media',array(),$dir);
				foreach($res as $item) {
					array_push($intern_media,$item['id']);
				}
			}
		}
 
        // remove unique items
        $media = array_unique(array_merge($linked_media,$intern_media));


Kim.Jun-Gi 2011/02/22

Note, the patched plugin does not work exactly as described for the original. According to the description the plugin is supposed to list all media files linked in the page. The patched plugin ignores links and displays the contents of the media folder associated with the page instead. This is not necessarily the same.
Anyway, thank you for the patch! I was looking for a way to list all files “attached” to a page like twiki does. This comes pretty close. — KaiMartin 2015-10-12 23:52

Install with the Plugin-manager needs rectification

On Detritus the built-in extension manager consistently claimed it could not download the plugin. However, the files got actually downloaded. But they were placed in …/lib/plugins/pluginmedialist rather than in …/lib/plugins/medialist. The new syntax would not work even with the above patch applied. After I renamed the folder the plugin runs fine. — KaiMartin 2015-10-14 22:44

plugin/medialist.1465400788.txt.gz · Last modified: 2016-06-08 17:46 by s.sahara

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki