- $version_array = explode('.', $version);
- if (sizeof($version_array) != 3) continue;
-
- $a = $version_array[0];
- $b = $version_array[1];
- $c = $version_array[2];
-
- if (check_sm_version($a, $b, $c)
- && isset($requirement_overrides[$requirement])
- && !is_null($requirement_overrides[$requirement]))
- {
-
- if (empty($highest_version_array)
- || $highest_version_array[0] < $a
- || ($highest_version_array[0] == $a
- && $highest_version_array[1] < $b)
- || ($highest_version_array[0] == $a
- && $highest_version_array[1] == $b
- && $highest_version_array[2] < $c))
- {
- $highest_version_array = $version_array;
- $requirement_value_override = $requirement_overrides[$requirement];
- }
+ $version_array = explode('.', $version);
+ if (sizeof($version_array) != 3) continue;
+
+ $a = $version_array[0];
+ $b = $version_array[1];
+ $c = $version_array[2];
+
+ // complicated way to say we are interested in these overrides
+ // if the version is applicable to us and if the overrides include
+ // the requirement we are looking for, or if the plugin is not
+ // compatible with this version of SquirrelMail (unless we are
+ // told to ignore such)
+ //
+ if (check_sm_version($a, $b, $c)
+ && ((!$ignore_incompatible
+ && (!empty($requirement_overrides[SQ_INCOMPATIBLE])
+ || $requirement_overrides === SQ_INCOMPATIBLE))
+ || (is_array($requirement_overrides)
+ && isset($requirement_overrides[$requirement])
+ && !is_null($requirement_overrides[$requirement]))))
+ {
+
+ if (empty($highest_version_array)
+ || $highest_version_array[0] < $a
+ || ($highest_version_array[0] == $a
+ && $highest_version_array[1] < $b)
+ || ($highest_version_array[0] == $a
+ && $highest_version_array[1] == $b
+ && $highest_version_array[2] < $c))
+ {
+ $highest_version_array = $version_array;
+ if (!empty($requirement_overrides[SQ_INCOMPATIBLE])
+ || $requirement_overrides === SQ_INCOMPATIBLE)
+ $requirement_value_override = SQ_INCOMPATIBLE;
+ else
+ $requirement_value_override = $requirement_overrides[$requirement];
+ }