diff options
-rw-r--r-- | engine/classes/ElggPluginManifest.php | 19 | ||||
-rw-r--r-- | views/default/admin/plugins.php | 8 | ||||
-rw-r--r-- | views/default/css/admin.php | 7 | ||||
-rw-r--r-- | views/default/object/plugin/full.php | 35 |
4 files changed, 44 insertions, 25 deletions
diff --git a/engine/classes/ElggPluginManifest.php b/engine/classes/ElggPluginManifest.php index 7592eb667..7aa702d47 100644 --- a/engine/classes/ElggPluginManifest.php +++ b/engine/classes/ElggPluginManifest.php @@ -592,4 +592,23 @@ class ElggPluginManifest { return $return; } + + /** + * Returns a category's friendly name. This can be localized by + * defining the string 'admin:plugins:category:<category>'. If no + * localization is found, returns the category with _ and - converted to ' ' + * and then ucwords()'d. + * + * @param str $category The category as defined in the manifest. + * @return str A human-readable category + */ + static public function getFriendlyCategory($category) { + $cat_raw_string = "admin:plugins:category:$category"; + $cat_display_string = elgg_echo($cat_raw_string); + if ($cat_display_string == $cat_raw_string) { + $category = str_replace(array('-', '_'), ' ', $category); + $cat_display_string = ucwords($category); + } + return $cat_display_string; + } } diff --git a/views/default/admin/plugins.php b/views/default/admin/plugins.php index b793175e0..42f153d0f 100644 --- a/views/default/admin/plugins.php +++ b/views/default/admin/plugins.php @@ -64,13 +64,7 @@ foreach ($installed_plugins as $id => $plugin) { if (isset($plugin_categories)) { foreach ($plugin_categories as $category) { if (!array_key_exists($category, $categories)) { - // if localization string not defined, fall back to original category string - $cat_raw_string = "admin:plugins:category:$category"; - $cat_display_string = elgg_echo($cat_raw_string); - if ($cat_display_string == $cat_raw_string) { - $cat_display_string = ucwords($category); - } - $categories[$category] = $cat_display_string; + $categories[$category] = ElggPluginManifest::getFriendlyCategory($category); } } } diff --git a/views/default/css/admin.php b/views/default/css/admin.php index 6deceb14e..7e55c510d 100644 --- a/views/default/css/admin.php +++ b/views/default/css/admin.php @@ -1260,6 +1260,13 @@ a.elgg-widget-collapsed:before { padding: 5px 10px; margin: 4px 0; } +ul.elgg-plugin-categories, ul.elgg-plugin-categories > li { + display: inline; +} +.elgg-plugin-category-bundled { + border-width: 2px; + border-color: #DAA520; +} /**************************************** MARKDOWN diff --git a/views/default/object/plugin/full.php b/views/default/object/plugin/full.php index 74bd31d1c..db0a52416 100644 --- a/views/default/object/plugin/full.php +++ b/views/default/object/plugin/full.php @@ -17,20 +17,17 @@ $reordering = elgg_extract('display_reordering', $vars, false); $priority = $plugin->getPriority(); $active = $plugin->isActive(); -$name = $plugin->getManifest()->getName(); $can_activate = $plugin->canActivate(); $max_priority = elgg_get_max_plugin_priority(); $actions_base = '/action/admin/plugins/'; $css_id = preg_replace('/[^a-z0-9-]/i', '-', $plugin->getID()); -$ts = time(); -$token = generate_action_token($ts); - // build reordering links $links = ''; +$classes = array('elgg-plugin'); if ($reordering) { - $draggable = 'elgg-state-draggable'; + $classes[] = 'elgg-state-draggable'; // top and up link only if not at top if ($priority > 1) { @@ -90,7 +87,7 @@ if ($reordering) { )) . "</li>"; } } else { - $draggable = 'elgg-state-undraggable'; + $classes[] = 'elgg-state-undraggable'; } @@ -102,22 +99,22 @@ $options = array( 'is_trusted' => true, ); if ($active) { - $active_class = 'elgg-state-active'; + $classes[] = 'elgg-state-active'; $action = 'deactivate'; $options['text'] = elgg_echo('admin:plugins:deactivate'); $options['class'] = "elgg-button elgg-button-cancel"; if (!$can_activate) { - $active_class = 'elgg-state-active'; + $classes[] = 'elgg-state-active'; $options['class'] = 'elgg-button elgg-state-warning'; } } else if ($can_activate) { - $active_class = 'elgg-state-inactive'; + $classes[] = 'elgg-state-inactive'; $action = 'activate'; $options['text'] = elgg_echo('admin:plugins:activate'); $options['class'] = "elgg-button elgg-button-submit"; } else { - $active_class = 'elgg-state-inactive'; + $classes[] = 'elgg-state-inactive'; $action = ''; $options['text'] = elgg_echo('admin:plugins:cannot_activate'); $options['class'] = "elgg-button elgg-button-disabled"; @@ -133,18 +130,20 @@ if ($action) { } $action_button = elgg_view('output/url', $options); -// Display categories +// Display categories and make category classes +$categories = $plugin->getManifest()->getCategories(); $categories_html = ''; if ($categories) { - $categories_arr = array(); $base_url = elgg_get_site_url() . "admin/plugins?category="; foreach ($categories as $category) { + $css_class = preg_replace('/[^a-z0-9-]/i', '-', $category); + $classes[] = "elgg-plugin-category-$css_class"; + $url = $base_url . urlencode($category); - $categories_arr[] = "<a href=\"$url\">" . htmlspecialchars($category) . '</a>'; + $friendly_category = htmlspecialchars(ElggPluginManifest::getFriendlyCategory($category)); + $categories_html .= "<li class=\"elgg-plugin-category prm\"><a href=\"$url\">$friendly_category</a></li>"; } - - $categories_html = implode(', ', $categories_arr); } $screenshots_html = ''; @@ -197,7 +196,7 @@ if ($files) { ?> -<div class="<?php echo $draggable; ?> elgg-plugin <?php echo $active_class ?>" id="<?php echo $css_id; ?>"> +<div class="<?php echo implode(' ', $classes); ?>" id="<?php echo $css_id; ?>"> <div class="elgg-image-block"> <div class="elgg-image-alt"> <?php if ($links) : ?> @@ -219,7 +218,7 @@ if (elgg_view_exists($settings_view_old) || elgg_view_exists($settings_view_new) } ?> <div class="elgg-head"> - <h3><?php echo $plugin->getManifest()->getName(). " $version $settings_link"; ?></h3> + <h3><?php echo $plugin->getManifest()->getName() . " $version $settings_link"; ?></h3> </div> <?php if ($plugin->getManifest()->getApiVersion() < 1.8) { @@ -267,7 +266,7 @@ if (elgg_view_exists($settings_view_old) || elgg_view_exists($settings_view_new) if ($categories_html) { ?> - <div><?php echo elgg_echo('admin:plugins:label:categories') . ": " . $categories_html; ?></div> + <div><?php echo elgg_echo('admin:plugins:label:categories') . ": <ul class=\"elgg-plugin-categories\">$categories_html</ul>"; ?></div> <?php } |