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/"); } } }
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); }
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(); } }
/** * 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); }
/** * 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); }
/** * 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'); }
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); }
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); }
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; }
/** * 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'); } } } }
/** * 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; }
/** * 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; } }
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'); } }
/** * 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; }
/** * 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; }
/** * 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; }
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'); }
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; } } }
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'); } }
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'); }
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"); } } } }
/** * 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'); } }
/** * 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'); }
/** * 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); } }
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"); } } }
/** * 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'); } }
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; } } }