Quanta RefreshDoc Skript

    From KDE UserBase Wiki
    Revision as of 08:19, 2 November 2010 by Mono (talk | contribs) (Created page with " Entwicklung")
    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);
     ?>