xref: /plugin/strata/types/enum.php (revision 84c19ddfaa96288bb659b728b26c33aa7e40f9ee)
15153720fSfkaag71<?php
25153720fSfkaag71/**
35153720fSfkaag71 * @author     François KAAG (francois.kaag@cardynal.fr)
45153720fSfkaag71 */
55153720fSfkaag71// must be run within Dokuwiki
65153720fSfkaag71if(!defined('DOKU_INC')) die('Meh.');
75153720fSfkaag71
85153720fSfkaag71/**
95153720fSfkaag71 * New enum type for Strata
105153720fSfkaag71 */
115153720fSfkaag71class plugin_strata_type_enum extends plugin_strata_type {
125153720fSfkaag71    function render($mode, &$R, &$triples, $value, $hint) {
135153720fSfkaag71	global $ID;
145153720fSfkaag71            // use the hint if available
155153720fSfkaag71	$scope=getNS($ID);
16a7cb8011SFKaag	if ($scope != "") $scope .=":";
1794005e5cSFKaag	if (substr($hint,0,1)===':')
18fccbf4c8SFKaag	   { $hint = substr($hint,1); }
19fccbf4c8SFKaag	else
20fccbf4c8SFKaag	   { $hint = $scope.$hint; }
21fccbf4c8SFKaag
22*84c19ddfSFKaag	$labels = $triples ->fetchTriples ($hint,null,$value,null,null);
235153720fSfkaag71	$label = ($labels? $labels[0]['predicate']: '#NA');
24fccbf4c8SFKaag
25fccbf4c8SFKaag	$R->internallink($hint,$label);
265153720fSfkaag71    return true;
275153720fSfkaag71    }
285153720fSfkaag71
295153720fSfkaag71    function getInfo() {
305153720fSfkaag71        return array(
315153720fSfkaag71            'desc'=>'Displays a value or a key  by using the corresponding prefix  in a given data fragment',
325153720fSfkaag71            'tags'=>array('string'),
335153720fSfkaag71            'hint'=>'data fragment'
345153720fSfkaag71        );
355153720fSfkaag71    }
365153720fSfkaag71}
375153720fSfkaag71
38