]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3312, #3632. Added class elgg-plugin-category-<category> to the plugin div...
authorBrett Profitt <brett.profitt@gmail.com>
Sat, 25 Feb 2012 21:45:15 +0000 (13:45 -0800)
committerBrett Profitt <brett.profitt@gmail.com>
Sat, 25 Feb 2012 21:45:15 +0000 (13:45 -0800)
engine/classes/ElggPluginManifest.php
views/default/admin/plugins.php
views/default/css/admin.php
views/default/object/plugin/full.php

index 7592eb6676c7191ff016c1e51544f5cab67e919b..7aa702d4750e947f03912cfb735f133ee0ab1435 100644 (file)
@@ -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;
+       }
 }
index b793175e06f5bfa97de7a83c41f5492a8045bc87..42f153d0f57e89337a31c7c9eb1977f8878fb692 100644 (file)
@@ -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);
                        }
                }
        }
index 6deceb14e64f9c4a0115a58928e5fed92eff991d..7e55c510d69dc663fe6bb35355ae7bcb79a431cb 100644 (file)
@@ -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
index 74bd31d1c6128eeec08e6c958bdd438a18462f09..db0a5241633b6794d419fdfe1471185f7663928e 100644 (file)
@@ -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
                }