/**
  * {@inheritdoc}
  */
 protected function handle()
 {
     $plugins = elgg_get_plugins('inactive');
     if (empty($plugins)) {
         system_message('All plugins are active');
         return;
     }
     $ids = array_map(function (ElggPlugin $plugin) {
         return $plugin->getID();
     }, $plugins);
     $ids = array_values($ids);
     if ($this->option('all')) {
         $activate_ids = $ids;
     } else {
         $helper = $this->getHelper('question');
         $question = new ChoiceQuestion('Please select plugins you would like to activate (comma-separated list of indexes)', $ids);
         $question->setMultiselect(true);
         $activate_ids = $helper->ask($this->input, $this->output, $question);
     }
     if (empty($activate_ids)) {
         throw new \RuntimeException('You must select at least one plugin');
     }
     $plugins = [];
     foreach ($activate_ids as $plugin_id) {
         $plugins[] = elgg_get_plugin_from_id($plugin_id);
     }
     do {
         $additional_plugins_activated = false;
         foreach ($plugins as $key => $plugin) {
             if ($plugin->isActive()) {
                 unset($plugins[$key]);
                 continue;
             }
             if (!$plugin->activate()) {
                 // plugin could not be activated in this loop, maybe in the next loop
                 continue;
             }
             $ids = array('cannot_start' . $plugin->getID(), 'invalid_and_deactivated_' . $plugin->getID());
             foreach ($ids as $id) {
                 elgg_delete_admin_notice($id);
             }
             // mark that something has changed in this loop
             $additional_plugins_activated = true;
             unset($plugins[$key]);
             system_message("Plugin {$plugin->getFriendlyName()} has been activated");
         }
         if (!$additional_plugins_activated) {
             // no updates in this pass, break the loop
             break;
         }
     } while (count($plugins) > 0);
     if (count($plugins) > 0) {
         foreach ($plugins as $plugin) {
             $msg = $plugin->getError();
             $string = $msg ? 'admin:plugins:activate:no_with_msg' : 'admin:plugins:activate:no';
             register_error(elgg_echo($string, array($plugin->getFriendlyName())));
         }
     }
     elgg_flush_caches();
 }
Example #2
0
/**
 * Saves the site categories.
 *
 * @param type $hook
 * @param type $type
 * @param type $value
 * @param type $params
 */
function categories_save_site_categories($hook, $type, $value, $params)
{
    $plugin_id = get_input('plugin_id');
    if ($plugin_id != 'categories') {
        return $value;
    }
    $categories = get_input('categories');
    $categories = string_to_tag_array($categories);
    $site = elgg_get_site_entity();
    $site->categories = $categories;
    system_message(elgg_echo("categories:save:success"));
    elgg_delete_admin_notice('categories_admin_notice_no_categories');
    forward(REFERER);
}
Example #3
0
$plugin_guids = get_input('plugin_guids');
if (!is_array($plugin_guids)) {
    $plugin_guids = array($plugin_guids);
}
$activated_guids = array();
foreach ($plugin_guids as $guid) {
    $plugin = get_entity($guid);
    if (!$plugin instanceof ElggPlugin) {
        register_error(elgg_echo('admin:plugins:activate:no', array($guid)));
        continue;
    }
    if ($plugin->activate()) {
        $activated_guids[] = $guid;
        $ids = array('cannot_start' . $plugin->getID(), 'invalid_and_deactivated_' . $plugin->getID());
        foreach ($ids as $id) {
            elgg_delete_admin_notice($id);
        }
    } else {
        $msg = $plugin->getError();
        $string = $msg ? 'admin:plugins:activate:no_with_msg' : 'admin:plugins:activate:no';
        register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
    }
}
// don't regenerate the simplecache because the plugin won't be
// loaded until next run.  Just invalidate and let it regenerate as needed
elgg_flush_caches();
if (count($activated_guids) === 1) {
    $url = 'admin/plugins';
    $query = (string) parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
    if ($query) {
        $url .= "?{$query}";
                register_error(elgg_echo('upgrade:comments:timestamp_update_fail', array($annotation->id)));
                $error_count++;
            }
        } else {
            register_error(elgg_echo('upgrade:comments:create_failed', array($annotation->id)));
            $error_count++;
        }
    }
    if ($annotations_to_delete) {
        $annotation_ids = implode(",", $annotations_to_delete);
        $delete_query = "DELETE FROM {$db_prefix}annotations WHERE id IN ({$annotation_ids})";
        delete_data($delete_query);
    }
    // update the last action on containers to be the max of all its comments
    // or its own last action
    $comment_subtype_id = get_subtype_id('object', 'comment');
    foreach (array_unique($container_guids) as $guid) {
        // can't use a subquery in an update clause without hard to read tricks.
        $max = get_data_row("SELECT MAX(time_updated) as max_time_updated\n\t\t\t\t\tFROM {$db_prefix}entities e\n\t\t\t\t\tWHERE e.container_guid = {$guid}\n\t\t\t\t\tAND e.subtype = {$comment_subtype_id}");
        $query = "\n\t\tUPDATE {$db_prefix}entities\n\t\t\tSET last_action = '{$max->max_time_updated}'\n\t\t\tWHERE guid = {$guid}\n\t\t\tAND last_action < '{$max->max_time_updated}'\n\t\t";
        update_data($query);
    }
} while (microtime(true) - $START_MICROTIME < $batch_run_time_in_secs);
access_show_hidden_entities($access_status);
// replace events and hooks
_elgg_services()->events = $original_events;
_elgg_services()->hooks = $original_hooks;
// remove the admin notice
elgg_delete_admin_notice('comment_upgrade_needed');
// Give some feedback for the UI
echo json_encode(array('numSuccess' => $success_count, 'numErrors' => $error_count));
Example #5
0
} else {
    unset_config('debug', $site->getGUID());
}
// allow new user registration?
$allow_registration = 'on' === get_input('allow_registration', false);
set_config('allow_registration', $allow_registration, $site->getGUID());
// setup walled garden
$walled_garden = 'on' === get_input('walled_garden', false);
set_config('walled_garden', $walled_garden, $site->getGUID());
if ('on' === get_input('https_login')) {
    set_config('https_login', 1, $site->getGUID());
} else {
    unset_config('https_login', $site->getGUID());
}
$regenerate_site_secret = get_input('regenerate_site_secret', false);
if ($regenerate_site_secret) {
    // if you cancel this even you should present a message to the user
    if (elgg_trigger_before_event('regenerate_site_secret', 'system')) {
        init_site_secret();
        elgg_reset_system_cache();
        elgg_trigger_after_event('regenerate_site_secret', 'system');
        system_message(elgg_echo('admin:site:secret_regenerated'));
        elgg_delete_admin_notice('weak_site_key');
    }
}
if ($site->save()) {
    system_message(elgg_echo("admin:configuration:success"));
} else {
    register_error(elgg_echo("admin:configuration:fail"));
}
forward(REFERER);
Example #6
0
<?php

/**
 * Simple Kaltura plugin deactivate script
 *
 * @package Simplekaltura
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 * @author Jeff Tilson
 * @copyright THINK Global School 2010 - 2013
 * @link http://www.thinkglobalschool.com/
 *
 */
elgg_delete_admin_notice('simpkaltura_not_configured');
Example #7
0
    register_error(elgg_echo('event_calendar:upgrade:no_updates'));
    forward(REFERER);
}
set_time_limit(0);
$base_dir = "{$plugins_path}event_calendar/upgrades";
// taken from engine/lib/version.php
if ($handle = opendir($base_dir)) {
    $upgrades = array();
    while ($updatefile = readdir($handle)) {
        // Look for upgrades and add to upgrades list
        if (!is_dir("{$base_dir}/{$updatefile}")) {
            if (preg_match('/^([0-9]{10})\\.(php)$/', $updatefile, $matches)) {
                $plugin_version = (int) $matches[1];
                if ($plugin_version > $local_version) {
                    $upgrades[] = "{$base_dir}/{$updatefile}";
                }
            }
        }
    }
    // Sort and execute
    asort($upgrades);
    if (sizeof($upgrades) > 0) {
        foreach ($upgrades as $upgrade) {
            include $upgrade;
        }
    }
}
elgg_set_plugin_setting('version', $version, 'event_calendar');
elgg_delete_admin_notice('event_calendar_admin_notice_pending_upgrades');
system_message(elgg_echo('event_calendar:upgrade:success'));
forward(REFERER);
<?php

/**
 * Saves the available categories for the site
 *
 * @note The categories for an object are saved through an event handler: categories_save()
 *
 * @package ElggCategories
 */
$categories = get_input('categories');
$categories = string_to_tag_array($categories);
$site = elgg_get_site_entity();
$site->categories = $categories;
system_message(elgg_echo("categories:save:success"));
elgg_delete_admin_notice('categories_admin_notice_no_categories');
forward(REFERER);
Example #9
0
File: start.php Project: rasul/Elgg
/**
 * Clean up admin notices on disable.
 */
function categories_on_deactivate()
{
    elgg_delete_admin_notice('categories_admin_notice_no_categories');
}
Example #10
0
function event_calendar_check_pending_upgrades()
{
    elgg_load_library('elgg:event_calendar');
    elgg_delete_admin_notice('event_calendar_admin_notice_pending_upgrades');
    if (event_calendar_is_upgrade_available()) {
        $message = elgg_echo('event_calendar:admin_notice_pending_upgrades', array(elgg_normalize_url('admin/plugin_settings/event_calendar')));
        elgg_add_admin_notice('event_calendar_admin_notice_pending_upgrades', $message);
    }
}