aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Profitt <brett.profitt@gmail.com>2012-02-25 13:45:15 -0800
committerBrett Profitt <brett.profitt@gmail.com>2012-02-25 13:45:15 -0800
commit217e79eaeb51587943376f0a1bfc68c3586af46e (patch)
treef58b618a7fe791505c07963b144cbac56d6067ee
parent6c94d823bbea21a5ab5672a3d7780ad598e1c665 (diff)
downloadelgg-217e79eaeb51587943376f0a1bfc68c3586af46e.tar.gz
elgg-217e79eaeb51587943376f0a1bfc68c3586af46e.tar.bz2
Fixes #3312, #3632. Added class elgg-plugin-category-<category> to the plugin div. Exposed plugin categories under more. Changed border color and size for bundled categories.
-rw-r--r--engine/classes/ElggPluginManifest.php19
-rw-r--r--views/default/admin/plugins.php8
-rw-r--r--views/default/css/admin.php7
-rw-r--r--views/default/object/plugin/full.php35
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
}