/** * {@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(); }
/** * 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); }
$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));
} 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);
<?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');
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);
/** * Clean up admin notices on disable. */ function categories_on_deactivate() { elgg_delete_admin_notice('categories_admin_notice_no_categories'); }
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); } }