Quanta RefreshDoc Skript

From KDE UserBase Wiki
Revision as of 08:18, 2 November 2010 by Mono (talk | contribs) (Created page with "Bitte kopieren Sie den folgenden Code.")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Bitte kopieren Sie den folgenden Code.

 #!/usr/bin/php
 <?php
 $doc = array();
 $doc2 = array();
 // ####F-ref-seitem
 $doc[] = array('name' => 'Function reference pages', 'link' => '');
 // ####### treeee
 $cXmlReader = new XMLReader();
 $cXmlReader->open($argv[1].'/index.html');
 while($cXmlReader->read())
 {
 if($cXmlReader->name == a && $cXmlReader->readInnerXML() != "")
 {
 if($cXmlReader->depth == 5)
 $doc[] = array('link' => $cXmlReader->getAttribute("href"), 'name' => $cXmlReader->readInnerXML());
 if($cXmlReader->depth == 7)
 $doc[count($doc)-1][] = array('link' => $cXmlReader->getAttribute("href"), 'name' => $cXmlReader->readInnerXML());
 }
 }
 // ####### treeee 2
 $cXmlReader = new XMLReader();
 $cXmlReader->open($argv[1].'/funcref.html');
 while($cXmlReader->read())
 {
 if($cXmlReader->name == a && $cXmlReader->depth != 4 && $cXmlReader->depth != 8 && $cXmlReader->readInnerXML() != "")
 {
 if($cXmlReader->depth == 5)
 $doc2[] = array('link' => $cXmlReader->getAttribute("href"), 'name' => $cXmlReader->readInnerXML());
 if($cXmlReader->depth == 7)
 $doc2[count($doc2)-1][] = array('link' => $cXmlReader->getAttribute("href"), 'name' => $cXmlReader->readInnerXML());
 }
 }
 // ######### ;F-Ref-Liste 
 $dir = opendir($argv[1]);
 while($file = readdir($dir))
 {
 if(substr($file, 0, 4) == 'ref.')
 {
 $filec = file_get_contents($argv[1].'/'.$file);
 $i = strpos($filec, '<title>');
 $j = strpos($filec, '</title>');
 $name = substr($filec, $i + 7, $j-$i-7);
 $doc[0][] = array('link' => $file, 'name' => $name);
 }
 }
 closedir ($dir);
 // ################# CONTEXT
 $cXmlReader = new XMLReader();
 $cXmlReader->open($argv[1].'/indexes.html');
 $context = array();
 while($cXmlReader->read())
 {
 if($cXmlReader->name == a && $cXmlReader->readInnerXML() != "" && $cXmlReader->depth == 6)
 {
 if(substr($cXmlReader->readInnerXML(), -2) == "()")
 $name = substr($cXmlReader->readInnerXML(), 0, -2);
 else
 $name = $cXmlReader->readInnerXML();
 $context[] = array('link' => $cXmlReader->getAttribute("href"), 'name' => $name);
 }
 }
 // ############## write tree into file
 function w($text, $nl=0)
 {
 global $file;
 $text = utf8_decode($text);
 fwrite($file, $text.(($nl)?"\n":''));
 }
 $file = fopen($argv[1].'.docrc', 'w');
 w('[Tree]
 Doc dir='.$argv[1].'
 Top Element='.$argv[1].' documentation
 ');
 w($argv[1].' documentation=');
 $c='';
 foreach($doc as $line)
 {
 w($c.((count($line) > 2)?'#':'').$line['name']);
 $c=',';
 }
 w("\n");
 function wrec($array)
 {
 w("\n");
 foreach($array as $line)
 {
 if(count($line) == 2)
 w($line['name'].'='.$line['link'], 1);
 else if(count($line) > 2)
 {
 w($line['name'].'=');
 $c = '';
 foreach($line as $key=>$subline)
 {
 if(!is_numeric($key)) continue;
 w($c.((count($subline) > 2)?'#':'').$subline['name']);
 $c=',';
 }
 w("\n");
 wrec($line);
 }
 }
 w("\n");
 }
 wrec($doc);
 // ############## write context into file
 w('[Context]',1);
 w('ContextList=');
 $c = '';
 foreach($context as $line)
 {
 w($c.$line['name']);
 $c = ',';
 }
 w("\n",1);
 foreach($context as $key=>$line)
 {
 if(!is_numeric($key)) continue;
 w($line['name'].'='.$line['link'],1);
 }
 fclose($file);
 // ############## write tree 2 into second file
 $file = fopen($argv[1].'_fref.docrc', 'w');
 w('[Tree]
 Doc dir='.$argv[1].'
 Top Element='.$argv[1].'_fref documentation
 ');
 w($argv[1].'_fref documentation=');
 $c='';
 foreach($doc2 as $line)
 {
 w($c.((count($line) > 2)?'#':'').$line['name']);
 $c=',';
 }
 w("\n");
 wrec($doc2);
 fclose($file);
 ?>