Esempio n. 1
0
function group_tools_pagesetup()
{
    $user = elgg_get_logged_in_user_entity();
    $page_owner = elgg_get_page_owner_entity();
    if (elgg_in_context("groups") && $page_owner instanceof ElggGroup) {
        if (!empty($user)) {
            // check for admin transfer
            $admin_transfer = elgg_get_plugin_setting("admin_transfer", "group_tools");
            if ($admin_transfer == "admin" && $user->isAdmin()) {
                elgg_extend_view("groups/edit", "group_tools/forms/admin_transfer", 400);
            } elseif ($admin_transfer == "owner" && ($page_owner->getOwnerGUID() == $user->getGUID() || $user->isAdmin())) {
                elgg_extend_view("groups/edit", "group_tools/forms/admin_transfer", 400);
            }
            // check multiple admin
            if (elgg_get_plugin_setting("multiple_admin", "group_tools") == "yes") {
                // extend group members sidebar list
                elgg_extend_view("groups/sidebar/members", "group_tools/group_admins", 400);
                // remove group tool options for group admins
                if ($page_owner->getOwnerGUID() != $user->getGUID() && !$user->isAdmin()) {
                    remove_group_tool_option("group_multiple_admin_allow");
                }
            }
            // invitation management
            if ($page_owner->canEdit()) {
                $request_options = array("type" => "user", "relationship" => "membership_request", "relationship_guid" => $page_owner->getGUID(), "inverse_relationship" => true, "count" => true);
                $invite_options = array("type" => "user", "relationship" => "invited", "relationship_guid" => $page_owner->getGUID(), "count" => true);
                $postfix = "";
                if ($requests = elgg_get_entities_from_relationship($request_options)) {
                    $postfix = " [" . $requests . "]";
                } elseif ($invited = elgg_get_entities_from_relationship($invite_options)) {
                    $postfix = " [" . $invited . "]";
                }
                if (!$page_owner->isPublicMembership() || !empty($requests)) {
                    elgg_register_menu_item('page', array('name' => 'membership_requests', 'text' => elgg_echo('groups:membershiprequests') . $postfix, 'href' => "groups/requests/" . $page_owner->getGUID()));
                } elseif (!empty($invited)) {
                    elgg_register_menu_item('page', array('name' => 'membership_requests', 'text' => elgg_echo('group_tools:menu:invitations') . $postfix, 'href' => "groups/requests/" . $page_owner->getGUID()));
                }
            }
            // group mail options
            if ($page_owner->canEdit() && elgg_get_plugin_setting("mail", "group_tools") == "yes") {
                elgg_register_menu_item('page', array('name' => 'mail', 'text' => elgg_echo('group_tools:menu:mail'), 'href' => "groups/mail/" . $page_owner->getGUID()));
            }
        }
    }
    if ($page_owner instanceof ElggGroup) {
        if (!$page_owner->isPublicMembership()) {
            if (elgg_get_plugin_setting("search_index", "group_tools") != "yes") {
                // closed groups should be indexed by search engines
                elgg_extend_view("page/elements/head", "metatags/noindex");
            }
        }
    }
}
Esempio n. 2
0
/**
 * Init admin_blog plugin.
 */
function init()
{
    elgg_register_plugin_hook_handler('register', 'menu:owner_block', __NAMESPACE__ . '\\owner_block_menu');
    elgg_register_action('blog/save', elgg_get_config('pluginspath') . 'blog/actions/blog/save.php', 'admin');
    elgg_register_action('blog/auto_save_revision', elgg_get_config('pluginspath') . 'blog/actions/blog/auto_save_revision.php', 'admin');
    elgg_register_action('blog/delete', elgg_get_config('pluginspath') . 'blog/actions/blog/delete.php', 'admin');
    $group_blogs = (int) elgg_get_plugin_setting('group_blog', PLUGIN_ID);
    $widget_contexts = array('profile', 'dashboard', 'index');
    if (!$group_blogs) {
        elgg_unextend_view('groups/tool_latest', 'blog/group_module');
        remove_group_tool_option('blog');
    } else {
        $widget_contexts[] = 'group';
    }
    elgg_unregister_widget_type('blog');
    elgg_register_widget_type('blog', elgg_echo('blog'), elgg_echo('blog:widget:description'), $widget_contexts);
}
Esempio n. 3
0
File: start.php Progetto: n8b/VMN
/**
 * called just before a page starts with output
 *
 * @return void
 */
function group_tools_pagesetup()
{
    $user = elgg_get_logged_in_user_entity();
    $page_owner = elgg_get_page_owner_entity();
    // admin menu item
    elgg_register_admin_menu_item("configure", "group_tool_presets", "appearance");
    elgg_register_admin_menu_item("administer", "group_bulk_delete", "administer_utilities");
    if (elgg_in_context("groups") && $page_owner instanceof ElggGroup) {
        if ($page_owner->forum_enable == "no") {
            // unset if not enabled for this plugin
            elgg_unregister_widget_type("group_forum_topics");
        }
        if (!empty($user)) {
            // check multiple admin
            if (elgg_get_plugin_setting("multiple_admin", "group_tools") == "yes") {
                // extend group members sidebar list
                elgg_extend_view("groups/sidebar/members", "group_tools/group_admins", 400);
                // remove group tool options for group admins
                if ($page_owner->getOwnerGUID() != $user->getGUID() && !$user->isAdmin()) {
                    remove_group_tool_option("group_multiple_admin_allow");
                }
            }
            // invitation management
            if ($page_owner->canEdit()) {
                $request_options = array("type" => "user", "relationship" => "membership_request", "relationship_guid" => $page_owner->getGUID(), "inverse_relationship" => true, "count" => true);
                $requests = elgg_get_entities_from_relationship($request_options);
                $postfix = "";
                if (!empty($requests)) {
                    $postfix = " [" . $requests . "]";
                }
                if (!$page_owner->isPublicMembership()) {
                    elgg_register_menu_item("page", array("name" => "membership_requests", "text" => elgg_echo("groups:membershiprequests") . $postfix, "href" => "groups/requests/" . $page_owner->getGUID()));
                } else {
                    elgg_register_menu_item("page", array("name" => "membership_requests", "text" => elgg_echo("group_tools:menu:invitations") . $postfix, "href" => "groups/requests/" . $page_owner->getGUID()));
                }
            }
            // group mail options
            if ($page_owner->canEdit() && elgg_get_plugin_setting("mail", "group_tools") == "yes") {
                elgg_register_menu_item("page", array("name" => "mail", "text" => elgg_echo("group_tools:menu:mail"), "href" => "groups/mail/" . $page_owner->getGUID()));
            }
        }
    }
    if ($page_owner instanceof ElggGroup) {
        if (!$page_owner->isPublicMembership()) {
            if (elgg_get_plugin_setting("search_index", "group_tools") != "yes") {
                // closed groups should be indexed by search engines
                elgg_extend_view("page/elements/head", "metatags/noindex");
            }
        }
        // cleanup sidebar
        elgg_extend_view("page/elements/sidebar", "group_tools/sidebar/cleanup");
    }
}
Esempio n. 4
0
<?php

/**
 * Don't allow group admins (not owner) to set the group tool
 * option for assigning other group admins
 */
if (!group_tools_multiple_admin_enabled()) {
    return;
}
$page_owner = elgg_get_page_owner_entity();
$user = elgg_get_logged_in_user_entity();
if (!$page_owner instanceof ElggGroup || !$user instanceof ElggUser) {
    // how did you get here
    return;
}
if ($page_owner->getOwnerGUID() === $user->getGUID() || $user->isAdmin()) {
    // user is the group owner
    // or a site admin
    return;
}
remove_group_tool_option('group_multiple_admin_allow');