Example #1
0
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);
                }
            }
        }
    }
}
Example #2
0
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;
}
Example #3
0
 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;
 }
Example #4
0
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;
}
Example #5
0
/**
 * 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 "&nbsp;" . 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>';
}
Example #6
0
</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>
Example #7
0
 $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 . " />";