Example #1
0
function widget_manager_pagesetup()
{
    $context = elgg_get_context();
    if (elgg_is_admin_logged_in() && $context == "admin") {
        // move defaultwidgets menu item
        elgg_unregister_menu_item("page", "appearance:default_widgets");
        elgg_register_menu_item('page', array('name' => "appearance:default_widgets", 'href' => "admin/appearance/default_widgets", 'text' => elgg_echo("admin:appearance:default_widgets"), 'context' => 'admin', 'parent_name' => "widgets", 'section' => "configure"));
        // add own menu items
        elgg_register_admin_menu_item('configure', 'manage', 'widgets');
        if (elgg_get_plugin_setting("custom_index", "widget_manager") == "1|0") {
            // a special link to manage homepages that are only available if logged out
            elgg_register_menu_item('page', array('name' => "admin:widgets:manage:index", 'href' => elgg_get_site_url() . "?override=true", 'text' => elgg_echo("admin:widgets:manage:index"), 'context' => 'admin', 'parent_name' => "widgets", 'section' => "configure"));
        }
    }
    // update fixed widgets if needed
    if (in_array($context, array("profile", "dashboard")) && ($page_owner_guid = elgg_get_page_owner_guid())) {
        // only check things if you are viewing a profile or dashboard page
        $fixed_ts = elgg_get_plugin_setting($context . "_fixed_ts", "widget_manager");
        if (empty($fixed_ts)) {
            // there should always be a fixed ts, so fix it now. This situation only occurs after activating widget_manager the first time.
            $fixed_ts = time();
            elgg_set_plugin_setting($context . "_fixed_ts", $fixed_ts, "widget_manager");
        }
        // get the ts of the profile/dashboard you are viewing
        $user_fixed_ts = elgg_get_plugin_user_setting($context . "_fixed_ts", $page_owner_guid, "widget_manager");
        if ($user_fixed_ts < $fixed_ts) {
            widget_manager_update_fixed_widgets($context, $page_owner_guid);
        }
    }
    if (widget_manager_multi_dashboard_enabled()) {
        if (get_input("internal_dashboard") == "yes") {
            elgg_set_view_location("page/default", dirname(__FILE__) . "/views_alt/");
        }
    }
}
Example #2
0
function upgrade_20141125()
{
    $version = (int) elgg_get_plugin_setting('version', PLUGIN_ID);
    if ($version == 2011111502) {
        // this didn't happen correctly in the last upgrade
        // due to some legacy setting
        elgg_set_plugin_setting('version', 20141121, PLUGIN_ID);
        $version = 20141121;
    }
    if ($version >= UPGRADE_VERSION) {
        return true;
    }
    $options = array('type' => 'object', 'subtype' => 'plugin_project', 'limit' => false);
    $batch = new ElggBatch('elgg_get_entities', $options);
    foreach ($batch as $plugin) {
        // get most recent release
        $releases = elgg_get_entities(array('type' => 'object', 'subtype' => 'plugin_release', 'container_guid' => $plugin->guid, 'limit' => 1, 'callback' => false));
        if ($releases[0]->time_created) {
            update_entity_last_action($plugin->guid, $releases[0]->time_created);
        } else {
            update_entity_last_action($plugin->guid, $plugin->time_created);
        }
    }
    elgg_set_plugin_setting('version', 20141125, PLUGIN_ID);
}
Example #3
0
function language_selector_get_allowed_translations()
{
    $configured_allowed = elgg_get_plugin_setting("allowed_languages", "language_selector");
    if (empty($configured_allowed)) {
        $allowed = array("en");
        $installed_languages = get_installed_translations();
        $min_completeness = (int) elgg_get_plugin_setting("min_completeness", "language_selector");
        if ($min_completeness > 0) {
            $update_completeness = false;
            if (elgg_is_active_plugin("translation_editor")) {
                if (elgg_is_admin_logged_in()) {
                    $update_completeness = true;
                }
                $completeness_function = "translation_editor_get_language_completeness";
            } else {
                $completeness_function = "get_language_completeness";
            }
            foreach ($installed_languages as $lang_id => $lang_description) {
                if ($lang_id != "en") {
                    if (($completeness = $completeness_function($lang_id)) >= $min_completeness) {
                        $allowed[] = $lang_id;
                    }
                }
            }
        }
        elgg_set_plugin_setting("allowed_languages", implode(",", $allowed), "language_selector");
    } else {
        $allowed = string_to_tag_array($configured_allowed);
    }
    return $allowed;
}
/**
 * Sleep for a while to slow things down.
 *
 * @param int $multiplier A time multipler to tarpit repeat offending IPs
 */
function registration_randomizer_tarpit($wait = 5)
{
    $ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
    $setting_name = "{$ip}_tarpit_count";
    $count = (int) elgg_get_plugin_setting($setting_name, 'registration_randomizer');
    if ($count > 4) {
        $wait = pow(4, 4);
    } else {
        $wait = pow($count, 4);
    }
    // now limit it to something reasonable, like 90% of max execution time
    $max_execution_time = ini_get('max_execution_time');
    if ($max_execution_time === false) {
        $max_execution_time = 30;
    }
    $max_execution_time = floor(0.9 * $max_execution_time);
    if ($max_execution_time && $wait > $max_execution_time) {
        $wait = $max_execution_time;
    }
    elgg_set_plugin_setting($setting_name, $count + 1, 'registration_randomizer');
    registration_randomizer_log("Tarpitting {$ip} for {$wait} seconds after {$count} failures.", false);
    if ($wait > 0) {
        // close mysql connections for the time of a sleep
        mysql_close(_elgg_services()->db->getLink('read'));
        mysql_close(_elgg_services()->db->getLink('write'));
        sleep($wait);
        //restore connections
        _elgg_services()->db->setupConnections();
    }
}
Example #5
0
/**
 * Initial upgrade to set plugin versioning
 * @return boolean
 */
function upgrade20151017()
{
    $version = (int) elgg_get_plugin_setting('version', PLUGIN_ID);
    if ($version >= 20151017) {
        return true;
    }
    elgg_set_plugin_setting('version', 20151017, PLUGIN);
}
function upgrade20150911()
{
    $version = (int) elgg_get_plugin_setting('version', PLUGIN_ID);
    if ($version >= 20150911) {
        return;
    }
    elgg_set_plugin_setting('version', 20150911, PLUGIN_ID);
}
Example #7
0
File: upgrades.php Project: n8b/VMN
/**
 * add version tracking number to upgraded installations
 * 
 * @return boolean
 */
function upgrade_20150321()
{
    $version = (int) elgg_get_plugin_setting('version', PLUGIN_ID);
    if ($version && $version >= PLUGIN_VERSION) {
        return true;
    }
    elgg_set_plugin_setting('version', 20150321, PLUGIN_ID);
}
Example #8
0
/**
 * Initialise the plugin.
 *
 */
function expirationdate_init()
{
    // Register cron hook
    if (!elgg_get_plugin_setting('period', 'expirationdate')) {
        elgg_set_plugin_setting('period', 'fiveminute', 'expirationdate');
    }
    elgg_register_plugin_hook_handler('cron', elgg_get_plugin_setting('period', 'expirationdate'), 'expirationdate_cron');
}
Example #9
0
function elgg_solr_upgrade_20141205()
{
    $version = (int) elgg_get_plugin_setting('upgrade_version', 'elgg_solr');
    if ($version >= ELGG_SOLR_UPGRADE_VERSION) {
        return true;
    }
    elgg_set_plugin_setting('reindex_batch_size', 1000, 'elgg_solr');
    elgg_set_plugin_setting('upgrade_version', 20141205);
}
Example #10
0
File: upgrades.php Project: n8b/VMN
function upgrade_20150323()
{
    $version = (int) elgg_get_plugin_setting('version', PLUGIN_ID);
    if ($version >= PLUGIN_VERSION) {
        return true;
        // already up to date
    }
    elgg_set_plugin_setting('version', 20150323, PLUGIN_ID);
}
Example #11
0
function widget_manager_set_configured_widgets($context, $column, $value)
{
    $result = false;
    if (!empty($context) && !empty($column)) {
        if (elgg_set_plugin_setting($context . "_" . $column, $value, "widget_manager")) {
            $result = true;
        }
    }
    return $result;
}
Example #12
0
/**
 * Saves a widget setting
 *
 * @param string $widget_handler handler of the widget
 * @param string $setting        name of the setting
 * @param string $context        context of the widget (default current context)
 * @param string $value          value of the setting
 *
 * @return boolean
 */
function widget_manager_set_widget_setting($widget_handler, $setting, $context, $value)
{
    $result = false;
    if (!empty($widget_handler) && !empty($setting)) {
        $widget_setting = $context . "_" . $widget_handler . "_" . $setting;
        if (elgg_set_plugin_setting($widget_setting, $value, "widget_manager")) {
            $result = true;
        }
    }
    return $result;
}
/**
 * Import relevant hypeAlive plugin settings
 * @return void
 */
function interactions_20141227a()
{
    $settings = array('max_comment_depth', 'comment_form_position', 'comments_order', 'comments_load_style', 'comments_limit', 'comments_load_limit');
    foreach ($settings as $setting) {
        if (is_null(elgg_get_plugin_setting($setting, 'hypeInteractions'))) {
            $value = elgg_get_plugin_setting($setting, 'hypeAlive');
            if ($value) {
                elgg_set_plugin_setting($setting, $value, 'hypeInteractions');
            }
        }
    }
}
Example #14
0
/**
 * Run upgrade scripts
 */
function upgrade()
{
    if (!elgg_is_admin_logged_in()) {
        return true;
    }
    $release = HYPECATEGORIES_RELEASE;
    $old_release = elgg_get_plugin_setting('release', PLUGIN_ID);
    if ($release > $old_release) {
        include_once dirname(dirname(__FILE__)) . '/lib/upgrade.php';
        elgg_set_plugin_setting('release', $release, PLUGIN_ID);
    }
    return true;
}
Example #15
0
/**
 * Migrates notifications to private messages
 */
function inbox_upgrade_20162209()
{
    $setting = elgg_get_plugin_setting('default_message_types', 'hypeInbox');
    if ($setting) {
        $setting = unserialize($setting);
        unset($setting['__notification']);
        elgg_set_plugin_setting('default_message_types', serialize($setting), 'hypeInbox');
    }
    $messages = new ElggBatch('elgg_get_entities_from_metadata', ['types' => 'object', 'subtypes' => 'messages', 'metadata_name_value_pairs' => ['name' => 'msgType', 'value' => '__notification'], 'limit' => 0]);
    $messages->setIncrementOffset(false);
    foreach ($messages as $message) {
        $message->msgType = hypeJunction\Inbox\Message::TYPE_PRIVATE;
    }
}
Example #16
0
 public static function urlPostfix($event, $type, $object)
 {
     $url_postfix_name = elgg_get_plugin_setting('url_postfix_name', 'newsletter');
     $url_postfix_value = elgg_get_plugin_setting('url_postfix_value', 'newsletter');
     if (!is_null($url_postfix_name) && $url_postfix_name !== false && !is_null($url_postfix_value) && $url_postfix_value !== false) {
         $new_setting = elgg_get_plugin_setting('url_postfix', 'newsletter');
         $new_setting .= "\n{$url_postfix_name}={$url_postfix_value}";
         // save old setting to new setting
         elgg_set_plugin_setting('url_postfix', $new_setting, 'newsletter');
         // remove old settings
         elgg_unset_plugin_setting('url_postfix_name', 'newsletter');
         elgg_unset_plugin_setting('url_postfix_value', 'newsletter');
     }
 }
Example #17
0
/**
 * Run upgrade scripts
 *
 * @param string $event Equals 'upgrade'
 * @param string $type Equals 'system'
 * @param type $params
 * @return boolean
 */
function hj_inbox_check_release($event, $type, $params)
{
    if (!elgg_is_admin_logged_in()) {
        return true;
    }
    $release = HYPECATEGORIES_RELEASE;
    $old_release = elgg_get_plugin_setting('release', 'hypeInbox');
    if ($release > $old_release) {
        elgg_register_library("inbox:library:upgrade", elgg_get_plugins_path() . 'hypeInbox/lib/upgrade.php');
        elgg_load_library("inbox:library:upgrade");
        elgg_set_plugin_setting('release', $release, 'hypeCategories');
    }
    return true;
}
Example #18
0
/**
 * Check the current plugin release and load $plugin_id/lib/upgrade.php script if the release is newer
 *
 * @param str		$plugin_id		Plugin Name
 * @param str		$release		Release timestamp
 */
function hj_framework_check_release($plugin_id, $release)
{
    if (!elgg_is_admin_logged_in()) {
        return false;
    }
    $old_release = elgg_get_plugin_setting('release', $plugin_id);
    if ($release > $old_release) {
        $shortcuts = hj_framework_path_shortcuts($plugin_id);
        $lib = "{$shortcuts['lib']}upgrade.php";
        elgg_register_library("hj:{$plugin_id}:upgrade", $lib);
        elgg_load_library("hj:{$plugin_id}:upgrade");
        elgg_set_plugin_setting('release', $release, $plugin_id);
    }
    return true;
}
Example #19
0
/**
 * Gets the value of a setting for a specific widget handler in a specific widget context
 *
 * @param string $widget_handler handler of the widget
 * @param string $setting        name of the setting
 * @param string $context        context of the widget (default current context)
 *
 * @return boolean|array|void
 */
function widget_manager_get_widget_setting($widget_handler, $setting, $context = null)
{
    if (empty($widget_handler) || empty($setting)) {
        return false;
    }
    if (is_null($context)) {
        $context = elgg_get_context();
    }
    static $widgets_config;
    if (!isset($widgets_config)) {
        $widgets_config = elgg_get_plugin_setting('widgets_config', 'widget_manager');
        if ($widgets_config === null) {
            $widgets_config = [];
        } else {
            $widgets_config = json_decode($widgets_config, true);
        }
    }
    if (!isset($widgets_config[$widget_handler])) {
        $widgets_config[$widget_handler] = ['contexts' => []];
    }
    if (!isset($widgets_config[$widget_handler]['contexts'][$context])) {
        $widgets_config[$widget_handler]['contexts'][$context] = [];
    }
    if ($setting == 'all') {
        return $widgets_config[$widget_handler];
    }
    if (isset($widgets_config[$widget_handler]['contexts'][$context][$setting])) {
        return (bool) $widgets_config[$widget_handler]['contexts'][$context][$setting];
    }
    if (!in_array($setting, ['can_add', 'hide'])) {
        return null;
    }
    $result = false;
    // check for old pre Widget Manager 7.0 plugin setting
    $plugin_setting = elgg_get_plugin_setting("{$context}_{$widget_handler}_{$setting}", 'widget_manager', null);
    if ($plugin_setting !== null) {
        if ($plugin_setting == 'yes') {
            $result = true;
        }
    } elseif ($setting == 'can_add') {
        $result = true;
    }
    $widgets_config[$widget_handler]['contexts'][$context][$setting] = (int) $result;
    elgg_set_plugin_setting('widgets_config', json_encode($widgets_config), 'widget_manager');
    // remove old plugin setting
    elgg_unset_plugin_setting("{$context}_{$widget_handler}_{$setting}", 'widget_manager');
    return $result;
}
Example #20
0
function granular_access_20150513()
{
    $version = elgg_get_plugin_setting('version', 'granular_access');
    if ($version >= GranularAccess\PLUGIN_VERSION) {
        return;
        // no need to run this upgrade
    }
    // need to make sure people who have joined groups are in the right acl
    $options = array('type' => 'object', 'subtype' => 'granular_access', 'limit' => false);
    $batch = new ElggBatch('elgg_get_entities', $options);
    foreach ($batch as $e) {
        error_log('repopulating ' . $e->guid);
        \GranularAccess\repopulate_acl($e);
    }
    elgg_set_plugin_setting('version', 20150513, 'granular_access');
}
Example #21
0
function subsite_manager_fix_piwik_settings()
{
    global $SUBSITE_MANAGER_IGNORE_WRITE_ACCESS;
    if (subsite_manager_on_subsite()) {
        $site = elgg_get_site_entity();
        if ($piwik_settings = $site->phloor_analytics_piwik_settings) {
            $SUBSITE_MANAGER_IGNORE_WRITE_ACCESS = true;
            if ($site->canEdit()) {
                // log to the error log that we did something
                error_log("PIWIK saving settings for " . $site->name . " (" . $site->getGUID() . ")");
                error_log("PIWIK settings: " . $piwik_settings);
                if ($piwik_settings = json_decode($piwik_settings, true)) {
                    if (!empty($piwik_settings) && is_array($piwik_settings)) {
                        $enabled = elgg_extract("enable_tracking", $piwik_settings);
                        $piwik_url = elgg_extract("path_to_piwik", $piwik_settings);
                        $piwik_site_id = elgg_extract("site_guid", $piwik_settings);
                        if ($enabled == "true") {
                            if (!empty($piwik_url) && !empty($piwik_site_id)) {
                                // check if analytics is enabled
                                if (!elgg_is_active_plugin("analytics")) {
                                    // not active so enable
                                    if ($plugin = elgg_get_plugin_from_id("analytics")) {
                                        $plugin->activate();
                                        elgg_invalidate_simplecache();
                                        elgg_reset_system_cache();
                                    }
                                }
                                // save settings, if not exists
                                if (!elgg_get_plugin_setting("piwik_url", "analytics") && !elgg_get_plugin_setting("piwik_site_id", "analytics")) {
                                    elgg_set_plugin_setting("piwik_url", $piwik_url, "analytics");
                                    elgg_set_plugin_setting("piwik_site_id", $piwik_site_id, "analytics");
                                }
                            }
                        }
                    }
                }
                // remove the settings so we don't do this again
                unset($site->phloor_analytics_piwik_settings);
            }
            // unset write access
            $SUBSITE_MANAGER_IGNORE_WRITE_ACCESS = false;
        }
    }
}
Example #22
0
function elgg_update_services_cron($hook, $entity_type, $returnvalue, $params)
{
    // Retrieve the next execution date
    $execution_date = elgg_get_plugin_setting('execution_date', 'elgg_update_services');
    if ($execution_date) {
        if ($execution_date <= time()) {
            // Run the task
            elgg_update_services_check_update();
            // Set the next execution date
            $hour = rand(1, 24);
            $minute = rand(1, 60);
            $execution_date = time() + 604800 + $hour * $minute * 60;
            // One week plus random hour and minute (= maximum of 8 days between automatic checks)
            elgg_set_plugin_setting('execution_date', $execution_date, 'elgg_update_services');
        }
    } else {
        elgg_set_plugin_setting('execution_date', time(), 'elgg_update_services');
    }
}
Example #23
0
function lti_init()
{
    elgg_register_library('BasicLTI_Tool_Provider', elgg_get_plugins_path() . 'blti/lib/BasicLTI_Tool_Provider.php');
    elgg_register_library('Utility', elgg_get_plugins_path() . 'blti/lib/Utility.php');
    elgg_register_library('LTIGroup', elgg_get_plugins_path() . 'blti/lib/LTIGroup.php');
    elgg_register_library('LTIUser', elgg_get_plugins_path() . 'blti/lib/LTIUser.php');
    elgg_load_library('BasicLTI_Tool_Provider');
    elgg_load_library('Utility');
    elgg_load_library('LTIGroup');
    elgg_load_library('LTIUser');
    // Check DB
    CheckDB();
    // Set log file
    $logfile = elgg_get_config('ltipath') . 'logs/LTI.log';
    elgg_set_plugin_setting('logfile', $logfile, 'blti');
    $action_path = elgg_get_plugins_path() . 'blti/actions';
    // Mechanisms to register and unregister LTI actions
    elgg_register_action('blti/return', $action_path . '/return.php');
    elgg_register_action('blti/createconsumer', $action_path . '/createconsumer.php');
    elgg_register_action('blti/saveconsumer', $action_path . '/saveconsumer.php');
    elgg_register_action('blti/enable', $action_path . '/enable.php');
    elgg_register_action('blti/createshare', $action_path . '/createshare.php');
    elgg_register_action('blti/sync', $action_path . '/sync.php');
    elgg_register_action('blti/dosync', $action_path . '/dosync.php');
    elgg_register_action('blti/approve', $action_path . '/approve.php');
    // Page handler
    elgg_register_page_handler(elgg_get_config('ltiname'), 'LTI_page_handler');
    elgg_register_plugin_hook_handler('plugin:setting', 'all', 'LTI_ValidateGroupProvision');
    // Allow instructors to have owner access
    elgg_register_plugin_hook_handler('permissions_check', 'group', 'LTIgroup_operators_permissions_hook');
    // Allow instructors to update user details but within context of group
    elgg_register_plugin_hook_handler('permissions_check', 'user', 'LTIgroup_operators_permissions_hook');
    elgg_register_css('blti_css', '/mod/blti/css/style.css');
    if (!empty($_SESSION['return_url'])) {
        $url = elgg_add_action_tokens_to_url(elgg_get_config('wwwroot') . 'action/' . elgg_get_config('ltiname') . '/return');
        elgg_register_menu_item('topbar', array('href' => $url, 'name' => 'moodle_return', 'priority' => 2, 'section' => 'alt', 'text' => $_SESSION['return_name']));
        elgg_load_css('blti_css');
    }
    elgg_register_admin_menu_item('administer', 'blti', 'administer_utilities');
    // Extend the elgg topbar. See views/default/lti/topbar.php for the code run by this function
    // elgg_extend_view('topbar','lti/topbar');
}
Example #24
0
function widget_manager_update_widget($event, $object_type, $object)
{
    if ($object instanceof ElggWidget && in_array($event, array("create", "update", "delete"))) {
        if (stristr($_SERVER["HTTP_REFERER"], "/admin/appearance/default_widgets")) {
            // on create set a parent guid
            if ($event == "create") {
                $object->fixed_parent_guid = $object->guid;
            }
            // update time stamp
            $context = $object->context;
            if (empty($context)) {
                // only situation is on create probably, as context is metadata and saved after creation of the object, this is the fallback
                $context = get_input("context", false);
            }
            if ($context) {
                elgg_set_plugin_setting($context . "_fixed_ts", time(), "widget_manager");
            }
        }
    }
}
Example #25
0
 /**
  * Sets the fixed parent guid to default widgets to be used when cloning, so relationship can stay intact.
  *
  * @param string $event       name of the system event
  * @param string $object_type type of the event
  * @param mixed  $object      object related to the event
  *
  * @return void
  */
 public static function createFixedParentMetadata($event, $object_type, $object)
 {
     if (!$object instanceof \ElggWidget || !in_array($event, ['create', 'update', 'delete'])) {
         return;
     }
     if (!stristr($_SERVER['HTTP_REFERER'], '/admin/appearance/default_widgets')) {
         return;
     }
     // on create set a parent guid
     if ($event == 'create') {
         $object->fixed_parent_guid = $object->guid;
     }
     // update time stamp
     $context = $object->context;
     if (empty($context)) {
         // only situation is on create probably, as context is metadata and saved after creation of the object, this is the fallback
         $context = get_input('context', false);
     }
     if ($context) {
         elgg_set_plugin_setting($context . '_fixed_ts', time(), 'widget_manager');
     }
 }
Example #26
0
/**
 * Cache the tangram vacancy xml
 *
 * @return void
 */
function haarlem_tangram_cache_xml()
{
    $last_try = (int) haarlem_tangram_get_setting('tangram_last_update');
    $tangram_url = haarlem_tangram_get_setting('tangram_url');
    if (empty($tangram_url)) {
        return;
    }
    if ($last_try > time() - 60 * 60) {
        // prevent deadloop tries
        return;
    }
    // store last try to prevent deadloops
    elgg_set_plugin_setting('tangram_last_update', time(), 'haarlem_tangram');
    // prepare cURL call
    $ch = curl_init($tangram_url);
    // settings
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    // do the request
    $content = curl_exec($ch);
    $curl_info = curl_getinfo($ch);
    // close curl
    curl_close($ch);
    // verify output
    if (elgg_extract('http_code', $curl_info) !== 200 || stristr(elgg_extract('content_type', $curl_info), 'text/xml') === false) {
        // something went wrong
        return;
    }
    // save output
    $plugin = elgg_get_plugin_from_id('haarlem_tangram');
    $fh = new ElggFile();
    $fh->owner_guid = $plugin->getGUID();
    $fh->setFilename('tangram.xml');
    $fh->open('write');
    $fh->write($content);
    $fh->close();
    // set last success update
    elgg_set_plugin_setting('tangram_last_update_success', time(), 'haarlem_tangram');
}
Example #27
0
 /**
  * Updates fixed widgets on profile and dashboard
  *
  * @param string  $hook_name    name of the hook
  * @param string  $entity_type  type of the hook
  * @param unknown $return_value return value
  * @param unknown $params       hook parameters
  *
  * @return void
  */
 public static function checkFixedWidgets($hook_name, $entity_type, $return_value, $params)
 {
     $context = elgg_get_context();
     if (!in_array($context, ['profile', 'dashboard'])) {
         // only check things if you are viewing a profile or dashboard page
         return;
     }
     $page_owner_guid = elgg_get_page_owner_guid();
     if (empty($page_owner_guid)) {
         return;
     }
     $fixed_ts = elgg_get_plugin_setting($context . '_fixed_ts', 'widget_manager');
     if (empty($fixed_ts)) {
         // there should always be a fixed ts, so fix it now. This situation only occurs after activating widget_manager the first time.
         $fixed_ts = time();
         elgg_set_plugin_setting($context . '_fixed_ts', $fixed_ts, 'widget_manager');
     }
     // get the ts of the profile/dashboard you are viewing
     $user_fixed_ts = elgg_get_plugin_user_setting($context . '_fixed_ts', $page_owner_guid, 'widget_manager');
     if ($user_fixed_ts < $fixed_ts) {
         widget_manager_update_fixed_widgets($context, $page_owner_guid);
     }
 }
Example #28
0
function captcha_init()
{
    // Register page handler for captcha functionality
    elgg_register_page_handler('captcha', 'captcha_page_handler');
    // Extend CSS
    elgg_extend_view('css/elgg', 'captcha/css');
    // Number of background images
    elgg_set_plugin_setting('captcha_num_bg', 5, 'captcha');
    // Default length
    elgg_set_plugin_setting('captcha_length', 5, 'captcha');
    // Register a function that provides some default override actions
    elgg_register_plugin_hook_handler('actionlist', 'captcha', 'captcha_actionlist_hook');
    // Register captcha page as public page for walled-garden
    elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'captcha_public');
    // Register actions to intercept
    $actions = array();
    $actions = elgg_trigger_plugin_hook('actionlist', 'captcha', null, $actions);
    if ($actions && is_array($actions)) {
        foreach ($actions as $action) {
            elgg_register_plugin_hook_handler("action", $action, "captcha_verify_action_hook");
        }
    }
}
Example #29
0
 /**
  * Migrate the group listing settings to the new format
  *
  * @param string $event  the name of the event
  * @param string $type   the type of the event
  * @param mixed  $object supplied object
  *
  * @return void
  */
 public static function migrateListingSettings($event, $type, $object)
 {
     // check if an old tab is enabled, if so enable 'all'
     $settings = ['newest', 'popular', 'alpha'];
     foreach ($settings as $name) {
         $setting = elgg_get_plugin_setting("group_listing_{$name}_available", 'group_tools');
         if (is_null($setting)) {
             // setting doesn't exist
             continue;
         }
         // enable all
         elgg_set_plugin_setting('group_listing_all_available', '1', 'group_tools');
         // remove old setting
         elgg_unset_plugin_setting("group_listing_{$name}_available", 'group_tools');
     }
     // check default tab
     $default_tab = elgg_get_plugin_setting('group_listing', 'group_tools');
     if (in_array($default_tab, $settings)) {
         // set default to all
         elgg_set_plugin_setting('group_listing', 'all', 'group_tools');
         // set default sorting for all tab
         elgg_set_plugin_setting('group_listing_all_sorting', $default_tab, 'group_tools');
     }
 }
Example #30
0
function pleio_api_use_api_key($hook, $type, $returnvalue, $params)
{
    $site = elgg_get_site_entity();
    if ($site && $site->guid != 1) {
        $license_key = elgg_get_plugin_setting("license_key", "pleio_api");
        $last_check = intval(elgg_get_plugin_setting("last_license_check", "pleio_api"));
        $hash = hash_hmac("SHA256", $site->url, $site->guid);
        if (!$license_key || $hash != $license_key || !$last_check || $last_check < time() - 86400) {
            elgg_set_plugin_setting("last_license_check", time(), "pleio_api");
            if (!empty($params) && is_string($params)) {
                $api_user = get_api_user($site->getGUID(), $params);
                if ($api_user) {
                    $app = ws_pack_get_application_from_api_user_id($api_user->id);
                    if ($app) {
                        if ($app->application_id == "pleio_app") {
                            $data = array("id" => $site->guid, "name" => $site->name, "url" => $site->url, "email" => $site->email, "members" => $site->member_count);
                            $url = "http://appstaat.funil.nl/overheidsplein-app/license.php?" . http_build_query($data);
                            try {
                                $response = file_get_contents($url);
                                if ($response) {
                                    $response = json_decode($response);
                                    $license_key = $response->key;
                                    elgg_set_plugin_setting("license_key", $license_key, "pleio_api");
                                }
                            } catch (Exception $ex) {
                            }
                        }
                    }
                }
            }
        }
        if (!$license_key) {
            return false;
        }
    }
}