eliminate a global variable
authorDenis Ovsienko <denis@ovsienko.info>
Wed, 28 Nov 2018 13:07:02 +0000 (13:07 +0000)
committerDenis Ovsienko <denis@ovsienko.info>
Wed, 28 Nov 2018 13:07:30 +0000 (13:07 +0000)
Rewrite addPageHeader() so it does not need the helper array.

wwwroot/inc/init.php
wwwroot/inc/interface-lib.php

index 1b1096e..ab328eb 100644 (file)
@@ -109,12 +109,11 @@ $user_given_tags = array();
 // text that uses autotags generated by local plugins.
 $user_defined_atags = array();
 
-// Initial the HTML header arrays used by addJSxxx() and addCSSxxx() functions
-// FIXME: For some reason without this global declaration there two variables do
+// Initial the HTML header array used by addJSxxx() and addCSSxxx() functions
+// FIXME: For some reason without this global declaration this variable does
 // not exist for addPageHeader() in PHPUnit.
-global $html_headers, $seen_headers;
+global $html_headers;
 $html_headers = array();
-$seen_headers = array();
 
 // This also can be modified in local.php.
 $pageheaders = array
index 5ff79f7..e63e53f 100644 (file)
@@ -760,15 +760,16 @@ function getRenderedIPv6NetCapacity ($range)
        return "<div class=\"$class\" id=\"$div_id\">" . "{$addrc}${cnt}${mult} ${what}" . "</div>";
 }
 
+// Buffer the header only once. Disregard subsequent calls even if they
+// are made for a different group.
 function addPageHeader ($header, $group)
 {
-       global $html_headers, $seen_headers;
+       global $html_headers;
 
-       if (! array_key_exists ($header, $seen_headers))
-       {
-               $html_headers[$group][] = $header;
-               $seen_headers[$header] = 1;
-       }
+       foreach ($html_headers as $group_contents)
+               if (in_array ($header, $group_contents))
+                       return;
+       $html_headers[$group][] = $header;
 }
 
 // print part of HTML HEAD block