'wikigraph', 'auto_activate' => false, 'requires_pair' => true, 'load_function' => 'data_wikigraph', 'title' => 'WikiGraph', 'help_page' => 'DataPluginWikiGraph', 'description' => KernelTools::tra( "Inserts a graph for visual navigation. The graph shows the page and every page that can be reached from that page. It requies the Image_GraphViz pear plugin and graphviz to be installed: pear install Image_GraphViz" ), 'help_function' => 'data_wikigraph_help', 'syntax' => "{wikigraph level= title= }".KernelTools::tra( "Wiki page name" )."{/wikigraph}", 'plugin_type' => DATA_PLUGIN, ]; $gLibertySystem->registerPlugin( PLUGIN_GUID_DATAWIKIGRAPH, $pluginParams ); $gLibertySystem->registerDataTag( $pluginParams['tag'], PLUGIN_GUID_DATAWIKIGRAPH ); function data_wikigraph_help() { $help = '' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'' .'
'.KernelTools::tra( "Key" ).''.KernelTools::tra( "Type" ).''.KernelTools::tra( "Comments" ).'
level'.KernelTools::tra( "numeric").'
'.KernelTools::tra( "(optional)" ).'
'.KernelTools::tra( "The number of levels that will be followed from the starting page." ).' '.KernelTools::tra( "Default").': 0
title'.KernelTools::tra( "string").'
'.KernelTools::tra( "(optional)" ).'
'.KernelTools::tra( "Title of the graph.").' '.KernelTools::tra( "Default ").': Wiki-Graph
nodesep'.KernelTools::tra( "numeric").'
'.KernelTools::tra( "(optional)" ).'
'.KernelTools::tra( "Distance between nodes in inches.").' '.KernelTools::tra( "Default").': 1.2
rankdir'.KernelTools::tra( "string").'
'.KernelTools::tra( "(optional)" ).'
'.KernelTools::tra( "Direction of graph layout - can be Left to Right (LR), Right to Left (RL), Top to Bottom (TB), Bottom to Top (BT).").' '.KernelTools::tra( "Default").': TB
bgcolor'.KernelTools::tra( "html colour").'
'.KernelTools::tra( "(optional)" ).'
'.KernelTools::tra( "Background colour of the graph.").' '.KernelTools::tra( "Default").': KernelTools::transparent
' .KernelTools::tra( "Example: " )."{wikigraph level=1}Welcome{/wikigraph}"; return $help; } function data_wikigraph( $pData, $pParams ) { global $gContent, $gBitThemes; $ret = " "; // check to see if we have pear available. // if( $error = pear_check( "Image/GraphViz.php" )) { // return $error; // } if( !empty( $gContent ) && is_object( $gContent )) { $querystring = ""; $title = !empty( $pParams['title'] ) ? $pParams['title'] : 'Wiki-Graph'; unset( $pParams['title'] ); foreach( $pParams as $param => $value ) { $querystring .= "&{$param}={$value}"; } if( empty( $pData ) ) { $pData = ( is_object( $gContent ) || !empty( $gContent->mPageName )) ? $gContent->mPageName : null; } if( !empty( $pData ) ) { $params = [ 'graph' => $gBitThemes->getGraphvizGraphAttributes( $pParams ), 'node' => $gBitThemes->getGraphvizNodeAttributes( $pParams ), 'edge' => $gBitThemes->getGraphvizEdgeAttributes( $pParams ), ]; $mapname = md5( microtime() ); $mapdata = $gContent->linkStructureMap( $pData, $pParams['level'] ?? 0, $params ); $ret = "
{$title} $mapdata
"; $ret = preg_replace( "/\n|\r/", '', $ret ); } } return $ret; } } // graphviz check