DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:graphviz

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
plugin:graphviz [2017-02-13 12:49] – [FAQ] 129.247.247.240plugin:graphviz [2022-05-05 16:50] (current) – [Example] 47.57.142.223
Line 31: Line 31:
 ===== Download and Installation ===== ===== Download and Installation =====
  
-Download and install the plugin using the [[plugin:plugin|Plugin Manager]] using the URL given above. Refer to [[:Plugins]] on how to install plugins manually.+Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
  
 ==== Changes ==== ==== Changes ====
Line 98: Line 98:
 </graphviz> </graphviz>
 </code> </code>
- 
  
 {{ http://img97.imageshack.us/img97/2613/dotb.png?nolink& }} {{ http://img97.imageshack.us/img97/2613/dotb.png?nolink& }}
-===== Compatibility ===== +===== how to display dot MAPs =====
-Not working after upgrade to [2016-06-26a] "Elenor of Tsort". Would be great to see a fix. We use this heavily. The upgrade fixed the slow LDAP performance, but we lost all our graphs :-( .+
  
-Fabio.+  * For UNIX users ( since assumes a PATH of /usr/bin/dot ) 
 + 
 +Using an old version of Graphviz I fixed to display **dot** maps //(nodes that when you click on them  link to a URL ie another page in your wiki or an external link.) // 
 + 
 +This is a fragment of the render section of the syntax file ie ( I replaced my render function with this ): 
 + 
 +<file PHP r.php> 
 +  /** 
 +   * Create output 
 +   */ 
 +  function render($mode, &$renderer, $data) { 
 +    global $conf; 
 +    global $gr_ext; 
 +    $gr_ext='png'; 
 +    $grf_ext='.'.$gr_ext; 
 +    if($data[1] == 'map' && strlen($data[0]) > 1) { 
 +      if ( !is_dir($conf['mediadir'] . '/graphviz') )  
 + io_mkdir_p($conf['mediadir'] . '/graphviz'); //Using dokuwiki framework 
 +      $hash = md5(serialize($data)); 
 +      $filename = $conf['mediadir'] . '/graphviz/'.$hash.$grf_ext; 
 +      $url = ml('graphviz:'.$hash.$grf_ext); //Using dokuwiki framework 
 + 
 +      //$renderer->doc .= '<p> valor filename=['.$filename.']</p>'; 
 +      //$renderer->doc .= '<p> valor url=['.$url .']</p>'; 
 + 
 +      // if already exist render 
 +      if ( is_readable($filename) ) { 
 + // cached. 
 + 
 +        // generate the map to variable 
 +        $kk1 = "sed '1d'|sed '\$d'"; 
 +        $cmd = "echo '$data[0]' | /usr/bin/dot -Tcmapx | ".$kk1; 
 +  //$renderer->doc .= '<p> DSP-graph value cmd=>['.$cmd.']</p>'; //Debug cmd 
 +        exec( $cmd, $map); 
 +        //$renderer->doc .= '<p> valor map=['.$map .']</p>'; 
 +        $maphtml = implode("\n",$map); 
 +        // add the target - cant do this with DOT 
 +        $maphtml = str_replace("<area ", "<area target=\"".$hash."\" ",$maphtml); 
 + 
 +        // Include Map in the page 
 + $renderer->doc .= '<map id="'.$hash.'" name="'.$hash.'">'; 
 +  $renderer->doc .= $maphtml; 
 +  $renderer->doc .= '</map>'; 
 + 
 +        // Link the Image below with the map above by hash 
 + $renderer->doc .= '<img src="'.$url.'" border="0" usemap="#'.$hash.'" Ismap>'; 
 + 
 + return true; 
 +      } 
 + 
 +      if (!$this->createImageMap($filename, $data[0], $data[1])) { 
 + 
 +        // generate the map  
 +        $kk1 = "sed '1d'|sed '\$d'"; 
 +        $cmd = "echo '$data[0]' | /usr/bin/dot -Tcmapx | ".$kk1; 
 +  //$renderer->doc .= '<p> CR-graph value cmd=>['.$cmd.']</p>'; //Debug cmd 
 +        exec( $cmd, $map); 
 +        $maphtml= implode("\n",$map); 
 +        // add the target - cant do this with DOT 
 +        $maphtml=str_replace("<area ", "<area target=\"".$hash."\"",$maphtml); 
 + 
 +        // Include Map in the page 
 + $renderer->doc .= '<map id="'.$hash.'" name="'.$hash.'">'; 
 +  $renderer->doc .= $maphtml; 
 +  $renderer->doc .= '</map>'; 
 + 
 +        // Link the Image below with the map above by hash 
 + $renderer->doc .= '<img src="'.$url.'" border="0" usemap="#'.$hash.'" Ismap>'; 
 + 
 +      } else { 
 + $renderer->doc .= '**ERROR RENDERING GRAPHVIZ**'; 
 +      } 
 +      return true; 
 +   } 
 + 
 + 
 +</file> 
 + 
 +My 2 cents to this wonderful dokuwiki community that has given me so much through the years. 
 + 
 +Regards, \\ Enrique M 
 + 
 +Sign update: "UnUZYQK2Yh4qWKI4U5rMjU9IdfGvDSWWQP+rVbQA/oo=" 
 + 
 + 
 +==== Hyperlinks from Graphviz nodes ==== 
 + 
 +If you want links from the nodes, you can use this forked version: 
 + 
 +https://github.com/splitbrain/dokuwiki-plugin-graphviz/issues/12 
 + 
 +Hopefully the fix will be merged soon in the official version.. 
 + 
 +Fabio 
 + 
 + 
 +===== Compatibility =====
  
----- 
  
 It seems to be compatible with "Rincewind", but I don't dare to list it as compatible based on only my test. It seems to be compatible with "Rincewind", but I don't dare to list it as compatible based on only my test.
Line 180: Line 273:
  
 == Does the server need an access to Internet ? == == Does the server need an access to Internet ? ==
-Yes, it uses Google API to generate graphs.+Default: Yes, it uses Google API to generate graphs.\\  
 +However, it can be set up to point straight to a local install of graphiz. In that case no internet access is needed.
  
 == How to read external dot File? == == How to read external dot File? ==
 How can i render an external (autogenerated) dot file? How can i render an external (autogenerated) dot file?
  
 +== How to include images in HTML-Labels? ==
plugin/graphviz.1486986543.txt.gz · Last modified: 2017-02-13 12:49 by 129.247.247.240

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