Quanta RefreshDoc Skript

    From KDE UserBase Wiki
    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.
    This page is a translated version of the page Quanta RefreshDoc script and the translation is 100% complete.

    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);
     ?>