Commit:    7b318e66e326bc7c3c08cb7f3489784191f4205d
Author:    Sobak <msobaczew...@gmail.com>         Sun, 21 Dec 2014 06:56:23 
+0100
Parents:   41ddbc8f0568eb6be46c065897d5c7465d2cad82
Branches:  master

Link:       
http://git.php.net/?p=web/bugs.git;a=commitdiff;h=7b318e66e326bc7c3c08cb7f3489784191f4205d

Log:
Rework fix for previous bug

Prefer checking function existance over next global variables

Changed paths:
  M  include/functions.php
  M  include/php_versions.php
  M  www/report.php


Diff:
diff --git a/include/functions.php b/include/functions.php
index 7ed8ae3..d2a9abe 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -690,11 +690,12 @@ function show_reason_types($current = '', $expanded = 0)
  */
 function show_version_options($current, $default = '')
 {
-       global $ROOT_DIR, $versions;
+       global $ROOT_DIR;
 
        $use = 0;
 
        echo '<option value="">--Please Select--</option>' , "\n";
+       require "{$ROOT_DIR}/include/php_versions.php";
        foreach($versions as $v) {
                echo '<option';
                if ($current == $v) {
@@ -1274,7 +1275,7 @@ function is_valid_email($email, $phpnet_allowed = true)
  */
 function incoming_details_are_valid($in, $initial = 0, $logged_in = false)
 {
-       global $bug, $dbh, $bug_types, $versions;
+       global $bug, $dbh, $bug_types, $ROOT_DIR;
 
        $errors = array();
        if (!is_array($in)) {
@@ -1294,6 +1295,8 @@ function incoming_details_are_valid($in, $initial = 0, 
$logged_in = false)
                $errors[] = 'Please select a valid PHP version. If your PHP 
version is too old, please upgrade first and see if the problem has not already 
been fixed.';
        }
 
+       require "{$ROOT_DIR}/include/php_versions.php";
+
        if (empty($in['php_version']) || ($initial && 
!in_array($in['php_version'], $versions))) {
                $errors[] = 'Please select a valid PHP version.';
        }
diff --git a/include/php_versions.php b/include/php_versions.php
index bce8492..3ea5f21 100644
--- a/include/php_versions.php
+++ b/include/php_versions.php
@@ -26,80 +26,83 @@
 
        $versions = array_merge($versions, $custom_versions);
 
-       function buildVersions() {
-               $dev_versions = 
json_decode(file_get_contents('http://qa.php.net/api.php?type=qa-releases&format=json&only=dev_versions'));
-
-               $versions = array();
-
-               $date = date('Y-m-d');
-               $default_versions = array(
-                       "Git-{$date} (snap)",
-                       "Git-{$date} (Git)",
-               );
-
-               foreach ($dev_versions as $dev_version) {
-                       $dev_version_parts = parseVersion($dev_version);
-
-                       // if it is a dev version, then add that branch, add 
the minor-1 version, if it's appropriate
-                       if ($dev_version_parts['type'] == 'dev') {
-                               if 
(!isset($versions[$dev_version_parts['major']][$dev_version_parts['minor']])) {
-                                       
$versions[$dev_version_parts['major']][$dev_version_parts['minor']] = array();
+       if (!function_exists('buildVersions')) {
+               function buildVersions() {
+                       $dev_versions = 
json_decode(file_get_contents('http://qa.php.net/api.php?type=qa-releases&format=json&only=dev_versions'));
+
+                       $versions = array();
+
+                       $date = date('Y-m-d');
+                       $default_versions = array(
+                               "Git-{$date} (snap)",
+                               "Git-{$date} (Git)",
+                       );
+
+                       foreach ($dev_versions as $dev_version) {
+                               $dev_version_parts = parseVersion($dev_version);
+
+                               // if it is a dev version, then add that 
branch, add the minor-1 version, if it's appropriate
+                               if ($dev_version_parts['type'] == 'dev') {
+                                       if 
(!isset($versions[$dev_version_parts['major']][$dev_version_parts['minor']])) {
+                                               
$versions[$dev_version_parts['major']][$dev_version_parts['minor']] = array();
+                                       }
+                               }
+                               // then it is a qa version (alpha|beta|rc)
+                               else {
+                                       
$versions[$dev_version_parts['major']][$dev_version_parts['minor']][$dev_version_parts['micro']]
 = $dev_version_parts;
+                                       
ksort($versions[$dev_version_parts['major']][$dev_version_parts['minor']]);
                                }
                        }
-                       // then it is a qa version (alpha|beta|rc)
-                       else {
-                               
$versions[$dev_version_parts['major']][$dev_version_parts['minor']][$dev_version_parts['micro']]
 = $dev_version_parts;
-                               
ksort($versions[$dev_version_parts['major']][$dev_version_parts['minor']]);
-                       }
-               }
 
-               $stable_releases = 
json_decode(file_get_contents('http://us3.php.net/releases/active.php'), true);
-               foreach ($stable_releases as $major => $major_releases) {
-                       foreach ($major_releases as $release) {
-                               $version_parts = 
parseVersion($release['version']);
-                               
$versions[$version_parts['major']][$version_parts['minor']][$version_parts['micro']]
 = $version_parts;
-                               
ksort($versions[$version_parts['major']][$version_parts['minor']]);
+                       $stable_releases = 
json_decode(file_get_contents('http://us3.php.net/releases/active.php'), true);
+                       foreach ($stable_releases as $major => $major_releases) 
{
+                               foreach ($major_releases as $release) {
+                                       $version_parts = 
parseVersion($release['version']);
+                                       
$versions[$version_parts['major']][$version_parts['minor']][$version_parts['micro']]
 = $version_parts;
+                                       
ksort($versions[$version_parts['major']][$version_parts['minor']]);
+                               }
                        }
-               }
 
-               $flat_versions = array();
+                       $flat_versions = array();
 
-               // add master to the end of the list
-               foreach ($default_versions as $default_version) {
-                       $flat_versions[] = 'master-'.$default_version;
-               }
+                       // add master to the end of the list
+                       foreach ($default_versions as $default_version) {
+                               $flat_versions[] = 'master-'.$default_version;
+                       }
 
-               // add the fetched versions to the list
-               foreach ($versions as $major_number => $major) {
-                       foreach ($major as $minor_number => $minor) {
-                               // add the default versions to ever minor branch
-                               foreach ($default_versions as $default_version) 
{
-                                       $flat_versions[] = 
$major_number.'.'.$minor_number.$default_version;
-                               }
-                               foreach ($minor as $micro_number => $micro) {
-                                       $flat_versions[] = 
$micro['original_version'];
+                       // add the fetched versions to the list
+                       foreach ($versions as $major_number => $major) {
+                               foreach ($major as $minor_number => $minor) {
+                                       // add the default versions to ever 
minor branch
+                                       foreach ($default_versions as 
$default_version) {
+                                               $flat_versions[] = 
$major_number.'.'.$minor_number.$default_version;
+                                       }
+                                       foreach ($minor as $micro_number => 
$micro) {
+                                               $flat_versions[] = 
$micro['original_version'];
+                                       }
                                }
                        }
-               }
 
-               // reverse the order, this makes it descending
-               $flat_versions = array_reverse($flat_versions);
+                       // reverse the order, this makes it descending
+                       $flat_versions = array_reverse($flat_versions);
 
-               return $flat_versions;
+                       return $flat_versions;
+               }
        }
 
-
-       function parseVersion($version){
-               $version_parts  = array();
-               $raw_parts      = array();
-               
preg_match('#(?P<major>\d+)\.(?P<minor>\d+).(?P<micro>\d+)[-]?(?P<type>RC|alpha|beta|dev)?(?P<number>[\d]?).*#ui',
 $version, $raw_parts);
-               $version_parts = array(
-                       'major'                 => $raw_parts['major'],
-                       'minor'                 => $raw_parts['minor'],
-                       'micro'                 => $raw_parts['micro'],
-                       'type'                  => 
strtolower($raw_parts['type']?$raw_parts['type']:'stable'),
-                       'number'                => $raw_parts['number'],
-                       'original_version'      => $version,
-               );
-               return $version_parts;
+       if (!function_exists('parseVersion')) {
+               function parseVersion($version){
+                       $version_parts  = array();
+                       $raw_parts      = array();
+                       
preg_match('#(?P<major>\d+)\.(?P<minor>\d+).(?P<micro>\d+)[-]?(?P<type>RC|alpha|beta|dev)?(?P<number>[\d]?).*#ui',
 $version, $raw_parts);
+                       $version_parts = array(
+                               'major'                 => $raw_parts['major'],
+                               'minor'                 => $raw_parts['minor'],
+                               'micro'                 => $raw_parts['micro'],
+                               'type'                  => 
strtolower($raw_parts['type']?$raw_parts['type']:'stable'),
+                               'number'                => $raw_parts['number'],
+                               'original_version'      => $version,
+                       );
+                       return $version_parts;
+               }
        }
diff --git a/www/report.php b/www/report.php
index 80b13f5..a36397a 100644
--- a/www/report.php
+++ b/www/report.php
@@ -19,8 +19,6 @@ bugs_authenticate($user, $pw, $logged_in, $user_flags);
 $is_trusted_developer = ($user_flags & BUGS_TRUSTED_DEV);
 $is_security_developer = ($user_flags & BUGS_SECURITY_DEV);
 
-require "{$ROOT_DIR}/include/php_versions.php";
-
 // captcha is not necessary if the user is logged in
 if (!$logged_in) {
        require_once 'Text/CAPTCHA/Numeral.php';


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to