示例#1
0
/**
 * Depending who and where you are, the plugin view is different
 *
 * @param string	$hook			What hook is fired
 * @param string	$type			Of what type
 * @param string	$returnvalue	The default return value
 * @param array		$params			Provided parameters
 * @return string
 */
function subsite_manager_plugin_view_hook($hook, $type, $returnvalue, $params)
{
    $result = $returnvalue;
    // restrict the displayed plugin for subsite admins (on subsites)
    if (subsite_manager_on_subsite() && !subsite_manager_is_superadmin_logged_in()) {
        if (!empty($params) && is_array($params)) {
            $vars = elgg_extract("vars", $params);
            $entity = elgg_extract("entity", $vars);
            if (!empty($entity) && elgg_instanceof($entity, "object", "plugin")) {
                if (!subsite_manager_show_plugin($entity)) {
                    $result = "<div class='hidden'></div>";
                }
            }
        }
    }
    return $result;
}
示例#2
0
<?php

/**
 * Change the plugin categories for Plugin Manager
 * because some plugin will not always be displayed
 *
 */
// restrict the displayed plugin for subsite admins (on subsites)
if (subsite_manager_on_subsite() && !subsite_manager_is_superadmin_logged_in()) {
    $plugins = elgg_get_plugins("any");
    $categories = array();
    foreach ($plugins as $id => $plugin) {
        $show_plugin = subsite_manager_show_plugin($plugin);
        if ($show_plugin) {
            $plugin_categories = $plugin->getManifest()->getCategories();
            if (isset($plugin_categories)) {
                foreach ($plugin_categories as $category) {
                    if (!array_key_exists($category, $categories)) {
                        $categories[$category] = ElggPluginManifest::getFriendlyCategory($category);
                    }
                }
            }
        }
    }
    asort($categories);
    // we want bundled/nonbundled pulled to be at the top of the list
    unset($categories['bundled']);
    unset($categories['nonbundled']);
    $common_categories = array('all' => elgg_echo('admin:plugins:category:all'), 'active' => elgg_echo('admin:plugins:category:active'), 'inactive' => elgg_echo('admin:plugins:category:inactive'), 'bundled' => elgg_echo('admin:plugins:category:bundled'), 'nonbundled' => elgg_echo('admin:plugins:category:nonbundled'));
    $categories = array_merge($common_categories, $categories);
    $vars["category_options"] = $categories;
示例#3
0
$installed_plugins = elgg_extract("installed_plugins", $vars);
// Get a list of the all categories
// and trim down the plugin list if we're not viewing all categories.
// @todo this could be cached somewhere after have the manifest loaded
$plugin_list = array();
foreach ($installed_plugins as $id => $plugin) {
    if (!$plugin->isValid()) {
        if ($plugin->isActive()) {
            // force disable and warn
            elgg_add_admin_notice('invalid_and_deactivated_' . $plugin->getID(), elgg_echo('ElggPlugin:InvalidAndDeactivated', array($plugin->getId())));
            $plugin->deactivate();
        }
        continue;
    }
    // valid plugin, can it be managed
    if (subsite_manager_show_plugin($plugin)) {
        $plugin_list[] = $plugin;
    }
}
if (subsite_manager_is_superadmin_logged_in()) {
    $url = "<br />" . elgg_view("output/url", array("href" => "admin/plugins?advanced=yes", "text" => elgg_echo("subsite_manager:plugins:simple:switch")));
}
echo elgg_view_module("info", "", elgg_echo("subsite_manager:plugins:description") . $url);
?>
<div id="elgg-plugin-list">
	<?php 
$options = array('limit' => 0, 'full_view' => true, 'list_type_toggle' => false, 'pagination' => false);
echo elgg_view_entity_list($plugin_list, $options);
?>
</div>