//
// Display list of all extensions - installed and available from repository
//
-function display_extensions()
+function display_extensions($mods)
{
global $installed_extensions;
table_header($th);
$k = 0;
- $mods = get_extensions_list('extension');
foreach($mods as $pkg_name => $ext)
{
$result = true;
foreach($exts as $i => $ext) {
- if ($ext['package'] && ($ext['active'] ^ check_value('Active'.$i))) {
+ if ($ext['package'] && ($ext['active'] ^ check_value('Active'.$i)))
+ {
if (check_value('Active'.$i) && !check_src_ext_version($ext['version']))
{
display_warning(sprintf(_("Package '%s' is incompatible with current application version and cannot be activated.\n")
. _("Check Install/Activate page for newer package version."), $ext['name']));
continue;
}
- if (!$ext['active'])
- $activated = activate_hooks($ext['package'], $comp);
- else
- $activated = hook_invoke($ext['package'], check_value('Active'.$i) ?
- 'activate_extension':'deactivate_extension', $comp, false);
+ $activated = activate_hooks($ext['package'], $comp, !$ext['active']); // change active state
+
if ($activated !== null)
$result &= $activated;
if ($activated || ($activated === null))
echo "</center><br>";
if ($set == -1)
- display_extensions();
-else
+{
+ $mods = get_extensions_list('extension');
+ if (!$mods)
+ display_note(_("No optional extension module is currently available."));
+ else
+ display_extensions($mods);
+} else
company_extensions($set);
//---------------------------------------------------------------------------------------------