nlopess         Tue Sep  6 08:45:31 2005 EDT

  Modified files:              
    /phpdoc/scripts     extensions.xml.php 
  Log:
  everybody likes a good hack :) so I've made a hack to avoid entities beeing 
replaced. This efectively closes the extension categorization problem
  
http://cvs.php.net/diff.php/phpdoc/scripts/extensions.xml.php?r1=1.3&r2=1.4&ty=u
Index: phpdoc/scripts/extensions.xml.php
diff -u phpdoc/scripts/extensions.xml.php:1.3 
phpdoc/scripts/extensions.xml.php:1.4
--- phpdoc/scripts/extensions.xml.php:1.3       Mon Sep  5 14:03:23 2005
+++ phpdoc/scripts/extensions.xml.php   Tue Sep  6 08:45:28 2005
@@ -16,7 +16,7 @@
   | Authors:    Nuno Lopes <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
  
-  $Id: extensions.xml.php,v 1.3 2005/09/05 18:03:23 nlopess Exp $
+  $Id: extensions.xml.php,v 1.4 2005/09/06 12:45:28 nlopess Exp $
 */
 
 
@@ -98,19 +98,25 @@
 
 // ---------- generate the text to write -------------
 
-$simplexml = simplexml_load_file("$basedir/en/appendices/extensions.xml", 
null, ~LIBXML_DTDVALID);
+
+$xml = file_get_contents("$basedir/en/appendices/extensions.xml");
+// little hack to avoid loosing the entities
+$xml = preg_replace('/&([^;]+);/', PHP_EOL.'<!--'.PHP_EOL.'entity: 
"$1"'.PHP_EOL.'-->'.PHP_EOL, $xml);
+
+$simplexml = simplexml_load_string($xml, null, ~LIBXML_DTDVALID);
+
 
 foreach ($simplexml as &$node) {
 
        $tmp = explode('.', (string)$node->attributes());
        $section = ucfirst($tmp[1]); // Purpose, State or Membership
 
-       foreach ($node as &$topnode) {
+       foreach ($node->section as &$topnode) {
                $tmp     = explode('.', (string)$topnode->attributes());
                $topname = $tmp[count($tmp)-1];
 
                // this means that we have 2 levels (e.g. basic.*)
-               if ((bool)$topnode->children()) {
+               if ($topnode->section->itemizedlist->listitem->para->xref) {
                        foreach ($topnode as &$lastnode) {
                                $tmp  = explode('.', 
(string)$lastnode->attributes());
                                $name = $tmp[1].'.'.$tmp[2];
@@ -152,6 +158,8 @@
 
 
 $xml = strtr(html_entity_decode($simplexml->asXML()), array("\r\n" => "\n", 
"\r" => PHP_EOL, "\n" => PHP_EOL));
+// get the entities back again
+$xml = preg_replace('/( +)[\r\n]+<!--\s+entity: "([^"]+)"\s+-->[\r\n]+/', 
'$1&$2;'.PHP_EOL.PHP_EOL, $xml);
 file_put_contents("$basedir/en/appendices/extensions.xml", $xml);
 
 

Reply via email to