1<?php 2/** 3 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 4 * @author Brend Wanders <b.wanders@utwente.nl> 5 */ 6// must be run within Dokuwiki 7if(!defined('DOKU_INC')) die('Meh.'); 8 9/** 10 * The reference link type. 11 */ 12class plugin_strata_type_ref extends plugin_strata_type_page { 13 function __construct() { 14 $this->util =& plugin_load('helper', 'strata_util'); 15 parent::__construct(); 16 } 17 18 function render($mode, &$R, &$T, $value, $hint='') { 19 $heading = null; 20 21 // only use heading if allowed by configuration 22 if(useHeading('content')) { 23 $titles = $T->fetchTriples($value, $this->util->getTitleKey()); 24 if($titles) { 25 $heading = $titles[0]['object']; 26 } 27 } 28 29 // render internal link 30 // (':' is prepended to make sure we use an absolute pagename, 31 // internallink resolves page names, but the name is already resolved.) 32 $R->internallink($hint.':'.$value, $heading); 33 } 34 35 function getInfo() { 36 return array( 37 'desc'=>'References another piece of data or wiki page, and creates a link. The optional hint is used as namespace for the link. If the hint ends with a #, all values will be treated as fragments.', 38 'hint'=>'namespace' 39 ); 40 } 41} 42