function elgg_modifications_reportedcontent_hook($hook, $type, $return_value, $params) { if (!empty($params) && is_array($params)) { $report = elgg_extract("report", $params); $site = elgg_get_site_entity(); if (!subsite_manager_check_global_plugin_setting("reportedcontent", "use_global_usersettings")) { $setting = ELGG_PLUGIN_USER_SETTING_PREFIX . "reportedcontent:" . $site->getGUID() . ":notify"; } else { $setting = ELGG_PLUGIN_USER_SETTING_PREFIX . "reportedcontent:notify"; } // get users with setting $options = array("type" => "user", "limit" => false, "site_guids" => false, "private_setting_name" => $setting, "private_setting_value" => "yes"); if ($users = elgg_get_entities_from_private_settings($options)) { $filtered_users = array(); if (elgg_instanceof($site, "site", Subsite::SUBTYPE, "Subsite")) { foreach ($users as $user) { if ($user->getGUID() != $report->getOwner() && ($user->isAdmin() || $site->isAdmin($user->getGUID()))) { $filtered_users[] = $user; } } } else { foreach ($users as $user) { if ($user->getGUID() != $report->getOwner() && $user->isAdmin()) { $filtered_users[] = $user; } } } if (!empty($filtered_users)) { $subject = elgg_echo("elgg_modifications:usersettings:reportedcontent:notify:subject"); $message = elgg_echo("elgg_modifications:usersettings:reportedcontent:notify:message", array($report->getOwnerEntity()->name, $site->url . "admin/administer_utilities/reportedcontent")); foreach ($filtered_users as $user) { notify_user($user->getGUID(), $report->getOwner(), $subject, $message); } } } } }
function subsite_manager_show_plugin(ElggPlugin $plugin) { $result = false; if (!empty($plugin) && elgg_instanceof($plugin, "object", "plugin", "ElggPlugin")) { // valid plugin, can it be managed $enabled_everywhere = subsite_manager_check_global_plugin_setting($plugin->getID(), "enabled_everywhere"); $subsite_default_manageable = subsite_manager_check_global_plugin_setting($plugin->getID(), "subsite_default_manageable"); $has_settings = false; $settings_view_old = "settings/" . $plugin->getID() . "/edit"; $settings_view_new = "plugins/" . $plugin->getID() . "/settings"; if (elgg_view_exists($settings_view_new) || elgg_view_exists($settings_view_old)) { $has_settings = true; } if ($subsite_default_manageable) { $result = true; } if ($result && subsite_manager_on_subsite() && !$has_settings && $enabled_everywhere) { $result = false; } if (!$result && subsite_manager_on_subsite() && $has_settings) { $result = true; } } return $result; }
protected function getFallbackPlugin() { if (!isset($this->fallback_plugin)) { $this->fallback_plugin = false; if (($site = elgg_get_site_entity($this->site_guid)) && elgg_instanceof($site, "site", Subsite::SUBTYPE, "Subsite")) { if (subsite_manager_check_global_plugin_setting($this->getID(), "fallback_to_main_settings")) { // ignore access for this part, as plugins are public $old_ia = elgg_set_ignore_access(true); // do we already know the fallback plugin $fallback_plugin_guid = (int) parent::getPrivateSetting("fallback_plugin_guid"); if (!empty($fallback_plugin_guid)) { if ($temp_plugin = get_entity($fallback_plugin_guid)) { if (elgg_instanceof($temp_plugin, "object", "plugin")) { $this->fallback_plugin = $temp_plugin; } } // something is wrong with the guid, cleanup if (empty($this->fallback_plugin)) { parent::removePrivateSetting("fallback_plugin_guid"); } } // we haven't found a falback plugin yet (or it is invalid) if (empty($this->fallback_plugin)) { $options = array("type" => "object", "subtype" => "plugin", "limit" => 1, "site_guids" => array($site->getOwnerGUID()), "joins" => array("JOIN " . elgg_get_config("dbprefix") . "objects_entity oe ON e.guid = oe.guid"), "wheres" => array("(oe.title = '" . $this->getID() . "')")); if ($plugins = elgg_get_entities($options)) { $temp_plugin = $plugins[0]; $this->fallback_plugin = $temp_plugin; parent::setPrivateSetting("fallback_plugin_guid", $temp_plugin->getGUID()); } else { // we should have found a main plugin, but didn't log this elgg_log("Subsite plugin(" . $this->getID() . ") with fallback didnt find main plugin", "ERROR"); } } // restore access settings elgg_set_ignore_access($old_ia); } } } return $this->fallback_plugin; }
function subsite_manager_user_support_admins_hook($hook, $type, $return_value, $params) { $result = $return_value; if (!empty($params) && is_array($params)) { $ticket = elgg_extract("entity", $params); $subsite_admin_guids = array(); $site = elgg_get_site_entity($ticket->site_guid); if (elgg_instanceof($site, "site", Subsite::SUBTYPE, "Subsite")) { if ($admin_guids = $site->getAdminGuids()) { $subsite_admin_guids = $admin_guids; } } $plugin_setting_name = elgg_namespace_plugin_private_setting("user_setting", "admin_notify", "user_support"); if (!subsite_manager_check_global_plugin_setting("user_support", "use_global_usersettings")) { $plugin_setting_name = str_replace(ELGG_PLUGIN_USER_SETTING_PREFIX . "user_support:", ELGG_PLUGIN_USER_SETTING_PREFIX . "user_support:" . $site->getGUID() . ":", $plugin_setting_name); } $subsite_admin_query = ""; if (!empty($subsite_admin_guids)) { $subsite_admin_query = " OR e.guid IN (" . implode(",", $subsite_admin_guids) . ")"; } $options = array("type" => "user", "limit" => false, "site_guids" => false, "relationship" => "member_of_site", "relationship_guid" => $site->getGUID(), "inverse_relationship" => true, "joins" => array("JOIN " . get_config("dbprefix") . "private_settings ps ON e.guid = ps.entity_guid", "JOIN " . get_config("dbprefix") . "users_entity ue ON e.guid = ue.guid"), "wheres" => array("(ps.name = '" . $plugin_setting_name . "' AND ps.value = 'yes')", "(ue.admin = 'yes' " . $subsite_admin_query . ")", "(e.guid <> " . $ticket->getOwnerGUID() . ")")); if ($new_admins = elgg_get_entities_from_relationship($options)) { if (!empty($result)) { if (!is_array($result)) { $result = array($result); } $admin_guids = array(); foreach ($result as $old_admin) { $admin_guids[] = $old_admin->getGUID(); } foreach ($new_admins as $admin) { if (!in_array($admin->getGUID(), $admin_guids)) { $result[] = $admin; } } } else { // haven't found anything yet, so overrule with new value $result = $new_admins; } } } return $result; }
/** * Used to show plugin settings for both users and admins. * * @package Elgg.Core * @subpackage Plugins */ $plugin = $vars['entity']; $plugin_id = $plugin->getID(); $user_guid = elgg_extract('user_guid', $vars, elgg_get_logged_in_user_guid()); // Do we want to show admin settings or user settings $type = elgg_extract('type', $vars, ''); if ($type != 'user') { $type = ''; } if (elgg_view_exists("{$type}settings/{$plugin_id}/edit")) { elgg_deprecated_notice("{$type}settings/{$plugin_id}/edit was deprecated in favor of plugins/{$plugin_id}/{$type}settings", 1.8); $settings = elgg_view("{$type}settings/{$plugin_id}/edit", $vars); } else { $settings = elgg_view("plugins/{$plugin_id}/{$type}settings", $vars); } if (!empty($settings)) { echo $settings; echo '<div class="elgg-foot">'; echo elgg_view('input/hidden', array('name' => 'plugin_id', 'value' => $plugin_id)); echo elgg_view('input/hidden', array('name' => 'user_guid', 'value' => $user_guid)); echo elgg_view('input/submit', array('value' => elgg_echo('save'))); if (empty($type) && subsite_manager_on_subsite() && subsite_manager_check_global_plugin_setting($plugin_id, "fallback_to_main_settings")) { echo " " . elgg_view("output/confirmlink", array("text" => elgg_echo("subsite_manager:plugins:subsite:fallback"), "confirm" => elgg_echo("subsite_manager:plugins:subsite:fallback:confirm"), "href" => $vars["url"] . "action/plugins/fallback?guid=" . $plugin->getGUID())); } echo '</div>'; }
</div> <div><?php echo elgg_echo('admin:plugins:label:licence') . ": " . $license; ?> </div> <div><?php echo elgg_echo('admin:plugins:label:location') . ": " . htmlspecialchars($plugin->getPath()); ?> </div> <div><?php echo elgg_echo('admin:plugins:label:dependencies'); ?> : <?php echo elgg_view('object/plugin/elements/dependencies', array('plugin' => $plugin)); ?> </div> </div> <?php if (!subsite_manager_on_subsite() && subsite_manager_is_superadmin_logged_in()) { echo "<div class='elgg-plugin-more hidden' id='subsite-manager-plugin-super-admin-options-" . $plugin->getID() . "'>"; echo "<div><label>" . elgg_echo("subsite_manager:plugins:advanced:description") . "</label></div>"; if (!subsite_manager_check_global_plugin_setting($plugin->getID(), "enabled_everywhere")) { echo elgg_view("output/confirmlink", array("href" => "action/plugins/disable_all?plugin=" . $plugin->getID(), "text" => elgg_echo("subsite_manager:plugins:advanced:disable_all"), "title" => elgg_echo("subsite_manager:plugins:advanced:disable_all:title"), "confirm" => elgg_echo("subsite_manager:plugins:advanced:disable_all:confirm"))); } echo "</div>"; } ?> </div>
$fallback_main_settings = ""; $use_global_settings = ""; $manageable = ""; if (subsite_manager_check_global_plugin_setting($plugin->getID(), "fallback_to_main_settings")) { $fallback_main_settings = "checked='checked'"; } if (subsite_manager_check_global_plugin_setting($plugin->getID(), "use_global_usersettings")) { $use_global_settings = "checked='checked'"; } if (subsite_manager_check_global_plugin_setting($plugin->getID(), "enabled_for_new_subsites")) { $enabled_new = "checked='checked'"; } if (subsite_manager_check_global_plugin_setting($plugin->getID(), "enabled_everywhere")) { $enabled_everywhere = "checked='checked'"; } if (subsite_manager_check_global_plugin_setting($plugin->getID(), "subsite_default_manageable")) { $manageable = "checked='checked'"; } $settings = array(); // is required plugin if (in_array($plugin->getID(), $required_plugins)) { $settings["enabled_everywhere"] = "<input type='checkbox' name='enabled_everywhere[]' value='" . $plugin->getID() . "' checked='checked' disabled='disabled' />"; $settings["enabled_for_new_subsites"] = "<input type='checkbox' name='enabled_for_new_subsites[]' value='" . $plugin->getID() . "' checked='checked' disabled='disabled' />"; $settings["subsite_default_manageable"] = "<input type='checkbox' name='subsite_default_manageable[]' value='" . $plugin->getID() . "' checked='checked' disabled='disabled' />"; } else { $settings["enabled_everywhere"] = "<input type='checkbox' name='enabled_everywhere[]' value='" . $plugin->getID() . "' " . $enabled_everywhere . " />"; $settings["enabled_for_new_subsites"] = "<input type='checkbox' name='enabled_for_new_subsites[]' value='" . $plugin->getID() . "' " . $enabled_new . " />"; $settings["subsite_default_manageable"] = "<input type='checkbox' name='subsite_default_manageable[]' value='" . $plugin->getID() . "' " . $manageable . " />"; } if (elgg_view_exists("plugins/" . $plugin->getID() . "/settings") || $plugin->getAllSettings()) { $settings["fallback_to_main_settings"] = "<input type='checkbox' name='fallback_to_main_settings[]' value='" . $plugin->getID() . "' " . $fallback_main_settings . " />";