]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
removed buttons logic from content header view, created convenience function rather...
authorcash <cash.costello@gmail.com>
Sun, 26 Jun 2011 19:13:50 +0000 (15:13 -0400)
committercash <cash.costello@gmail.com>
Sun, 26 Jun 2011 19:13:50 +0000 (15:13 -0400)
engine/lib/navigation.php
mod/blog/lib/blog.php
views/default/page/layouts/content.php
views/default/page/layouts/content/header.php

index 4b2c998a23ce26a98b1c4bbf1c0212b3d944c62e..1cb2896542d1c60d3b71a8d9d3bdaad38f059118 100644 (file)
@@ -153,6 +153,41 @@ function elgg_is_menu_item_registered($menu_name, $item_name) {
        return false;
 }
 
+/**
+ * Convenience function for registering an add content button to title menu
+ *
+ * The add URL must be $handler/add/$guid where $guid is the guid of the page owner.
+ * The label of the button is "$handler:add" so that must be defined in a
+ * language file.
+ *
+ * @param string $handler The handler to use or null to autodetect from context
+ * @return void
+ * @since 1.8.0
+ */
+function elgg_register_add_button($handler = null) {
+       if (elgg_is_logged_in()) {
+
+               if (!$handler) {
+                       $handler = elgg_get_context();
+               }
+
+               $owner = elgg_get_page_owner_entity();
+               if (!$owner) {
+                       // no owns the page so this is probably an all site list page
+                       $owner = elgg_get_logged_in_user_entity();
+               }
+               if ($owner && $owner->canWriteToContainer()) {
+                       $guid = $owner->getGUID();
+                       elgg_register_menu_item('title', array(
+                               'name' => 'add',
+                               'href' => "$handler/add/$guid",
+                               'text' => elgg_echo("$handler:add"),
+                               'link_class' => 'elgg-button elgg-button-action',
+                       ));
+               }
+       }
+}
+
 /**
  * Adds a breadcrumb to the breadcrumbs stack.
  *
index 4d1edd50ebf610128c63a088f546663c169d69e6..d13b2244e2cf5e46972bbc123642a16b8168ef34 100644 (file)
@@ -92,6 +92,8 @@ function blog_get_page_content_list($container_guid = NULL) {
                elgg_push_breadcrumb(elgg_echo('blog:blogs'));
        }
 
+       elgg_register_add_button();
+
        // show all posts for admin or users looking at their own blogs
        // show only published posts for other users.
        if (!(elgg_is_admin_logged_in() || (elgg_is_logged_in() && $container_guid == $loggedin_userid))) {
@@ -129,6 +131,8 @@ function blog_get_page_content_friends($user_guid) {
        elgg_push_breadcrumb($crumbs_title, "blog/owner/{$user->username}");
        elgg_push_breadcrumb(elgg_echo('friends'));
 
+       elgg_register_add_button();
+
        if (!$friends = get_user_friends($user_guid, ELGG_ENTITIES_ANY_VALUE, 0)) {
                $return['content'] .= elgg_echo('friends:none:you');
                return $return;
@@ -235,7 +239,6 @@ function blog_get_page_content_archive($owner_guid, $lower = 0, $upper = 0) {
        return array(
                'content' => $content,
                'title' => $title,
-               'buttons' => '',
                'filter' => '',
        );
 }
@@ -253,7 +256,6 @@ function blog_get_page_content_edit($page, $guid = 0, $revision = NULL) {
        elgg_load_js('elgg.blog');
 
        $return = array(
-               'buttons' => '',
                'filter' => '',
        );
 
index 35d695f0ae9fa2581eceae017c6c5d7b8497c460..c406c9fafb470b6f966f5bbd4d9d937baf485033 100644 (file)
@@ -10,7 +10,6 @@
  * @uses $vars['filter']         HTML of the content area filter (override)
  * @uses $vars['title']          Title text (override)
  * @uses $vars['context']        Page context (override)
- * @uses $vars['buttons']        Content header buttons (override)
  * @uses $vars['filter_context'] Filter context: everyone, friends, mine
  * @uses $vars['class']          Additional class to apply to layout
  */
index 403da8a0a3dd9de5fa171fbe97a3e686f429d08d..345163bdd659a3ef364d0640958826a06c7c66f4 100644 (file)
@@ -7,9 +7,13 @@
  * @uses $vars['header_override'] HTML for overriding the default header (override)
  * @uses $vars['title']           Title text (override)
  * @uses $vars['context']         Page context (override)
- * @uses $vars['buttons']         Content header buttons (override)
  */
 
+if (isset($vars['buttons'])) {
+       // it was a bad idea to implement buttons with a pass through
+       elgg_deprecated_notice("Use elgg_register_menu_item() to register for the title menu", 1.0);
+}
+
 if (isset($vars['header_override'])) {
        echo $vars['header_override'];
        return true;
@@ -22,27 +26,13 @@ if ($context) {
                $title = elgg_echo($context);
        }
 
-       if (isset($vars['buttons'])) {
+       if (isset($vars['buttons']) && $vars['buttons']) {
                $buttons = $vars['buttons'];
        } else {
-               if (elgg_is_logged_in() && $context) {
-                       $owner = elgg_get_page_owner_entity();
-                       if (!$owner) {
-                               // this is probably an all page
-                               $owner = elgg_get_logged_in_user_entity();
-                       }
-                       if ($owner && $owner->canWriteToContainer()) {
-                               $guid = $owner->getGUID();
-                               elgg_register_menu_item('title', array(
-                                       'name' => 'add',
-                                       'href' => elgg_extract('new_link', $vars, "$context/add/$guid"),
-                                       'text' => elgg_echo("$context:add"),
-                                       'link_class' => 'elgg-button elgg-button-action',
-                               ));
-                       }
-               }
-               
-               $buttons = elgg_view_menu('title', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz'));
+               $buttons = elgg_view_menu('title', array(
+                       'sort_by' => 'priority',
+                       'class' => 'elgg-menu-hz',
+               ));
        }
        echo <<<HTML
 <div class="elgg-head clearfix">