Dokuwiki - Media

About

This page is showing snippet on how to manage media

Snippets

Image in page via Renderer

Via the renderer, you have the internalmedia and externalmedia method.

Image in a page via instructions

From plugin-medialist

protected function _lookup_linked_media($id) {
	$linked_media = array();

	if (!page_exists($id)) {
		//msg('MediaList: page "'. hsc($id) . '" not exists!', -1); 
	}

	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') {
				$id = cleanID($node[1][0]);
				$fn = mediaFN($id);
				if (!file_exists($fn)) continue;
				$linked_media[] = array(
					'id'    => $id,
					'size'  => filesize($fn),
					'mtime' => filemtime($fn),
					'type'  => $node[0],
				);
			} elseif ($node[0] == 'externalmedia') {
				$linked_media[] = array(
					'id'    => $node[1][0],
					'size'  => null,
					'mtime' => null,
					'type'  => $node[0],
				);
			}
		}

	}
	return array_unique($linked_media, SORT_REGULAR);
}

Pages using an image

On the Dokuwiki - Index, you can get the page using a image with:

$result = idx_get_indexer()->lookupKey('relation_media', $id);

Metadata gives the first image

The metadata firstimage gives the first image

$src = p_get_metadata($id,'relation firstimage');
     if(!$flags['firstimage'] || [email protected]_exists(mediaFN($src))) {
     return $this->getConf('default_image');
}

Powered by ComboStrap