<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[BuddyPress][7454] trunk: Add a fourth parameter to the BP_Component::start() method.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://buddypress.trac.wordpress.org/changeset/7454">7454</a></dd>
<dt>Author</dt> <dd>r-a-y</dd>
<dt>Date</dt> <dd>2013-10-22 19:31:29 +0000 (Tue, 22 Oct 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add a fourth parameter to the BP_Component::start() method.

This parameter is an array that allows extended classes to define some
properties that need to be set early one for BP_Component to be able
to work its magic.

Currently accepts 'adminbar_myaccount_order', which sets a custom
position for the component menu generated under the WP Toolbar's
"My Account" menu.  If this value isn't set, we set the value to 90,
which will generate the menu before the Settings menu is added.

Fixes <a href="http://buddypress.trac.wordpress.org/ticket/3769">#3769</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkbpactivitybpactivityloaderphp">trunk/bp-activity/bp-activity-loader.php</a></li>
<li><a href="#trunkbpblogsbpblogsloaderphp">trunk/bp-blogs/bp-blogs-loader.php</a></li>
<li><a href="#trunkbpcorebpcorecomponentphp">trunk/bp-core/bp-core-component.php</a></li>
<li><a href="#trunkbpforumsbpforumsloaderphp">trunk/bp-forums/bp-forums-loader.php</a></li>
<li><a href="#trunkbpfriendsbpfriendsloaderphp">trunk/bp-friends/bp-friends-loader.php</a></li>
<li><a href="#trunkbpgroupsbpgroupsloaderphp">trunk/bp-groups/bp-groups-loader.php</a></li>
<li><a href="#trunkbpmembersbpmembersloaderphp">trunk/bp-members/bp-members-loader.php</a></li>
<li><a href="#trunkbpmessagesbpmessagesloaderphp">trunk/bp-messages/bp-messages-loader.php</a></li>
<li><a href="#trunkbpsettingsbpsettingsloaderphp">trunk/bp-settings/bp-settings-loader.php</a></li>
<li><a href="#trunkbpxprofilebpxprofileloaderphp">trunk/bp-xprofile/bp-xprofile-loader.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkbpactivitybpactivityloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-activity/bp-activity-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-activity/bp-activity-loader.php 2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-activity/bp-activity-loader.php    2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -28,7 +28,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'activity',
</span><span class="cx">                  __( 'Activity Streams', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 10
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpblogsbpblogsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-blogs/bp-blogs-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-blogs/bp-blogs-loader.php       2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-blogs/bp-blogs-loader.php  2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -23,7 +23,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'blogs',
</span><span class="cx">                  __( 'Site Tracking', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 30
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpcorebpcorecomponentphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-core/bp-core-component.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-core/bp-core-component.php      2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-core/bp-core-component.php 2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx">   *
</span><span class="cx">   * @since BuddyPress (1.5.0)
</span><span class="cx">   *
</span><del>-        * @uses bp_Component::setup_actions() Set up the hooks and actions.
</del><ins>+         * @uses BP_Component::setup_actions() Set up the hooks and actions.
</ins><span class="cx">    *
</span><span class="cx">   * @param string $id Unique ID (for internal identification). Letters,
</span><span class="cx">   *        numbers, and underscores only.
</span><span class="lines">@@ -122,8 +122,12 @@
</span><span class="cx">   *        eg __( 'Groups', 'buddypress' ).
</span><span class="cx">   * @param string $path The file path for the component's files. Used by
</span><span class="cx">   *        {@link BP_Component::includes()}.
</span><ins>+        * @param array $params Additional parameters used by the component.
+        *        The config array supports the following values:
+        *        - 'adminbar_myaccount_order' Sets the position for our
+        *          component menu under the WP Toolbar's "My Account" menu.
</ins><span class="cx">    */
</span><del>-       public function start( $id = '', $name = '', $path = '' ) {
</del><ins>+        public function start( $id = '', $name = '', $path = '', $params = array() ) {
</ins><span class="cx"> 
</span><span class="cx">          // Internal identifier of component
</span><span class="cx">          $this->id   = $id;
</span><span class="lines">@@ -134,6 +138,19 @@
</span><span class="cx">          // Path for includes
</span><span class="cx">          $this->path = $path;
</span><span class="cx"> 
</span><ins>+               // Miscellaneous component parameters that need to be set early on
+               if ( ! empty( $params ) ) {
+                       // Sets the position for our menu under the WP Toolbar's "My Account" menu
+                       if ( ! empty( $params['adminbar_myaccount_order'] ) ) {
+                               $this->adminbar_myaccount_order = (int) $params['adminbar_myaccount_order'];
+                       }
+
+               // Set defaults if not passed
+               } else {
+                       // new component menus are added before the settings menu if not set
+                       $this->adminbar_myaccount_order = 90;
+               }
+
</ins><span class="cx">           // Move on to the next step
</span><span class="cx">          $this->setup_actions();
</span><span class="cx">  }
</span><span class="lines">@@ -304,7 +321,7 @@
</span><span class="cx">          add_action( 'bp_setup_nav',              array( $this, 'setup_nav'              ), 10 );
</span><span class="cx"> 
</span><span class="cx">          // Setup WP Toolbar menus
</span><del>-               add_action( 'bp_setup_admin_bar',        array( $this, 'setup_admin_bar'        ), 10 );
</del><ins>+                add_action( 'bp_setup_admin_bar',        array( $this, 'setup_admin_bar'        ), $this->adminbar_myaccount_order );
</ins><span class="cx"> 
</span><span class="cx">          // Setup component title
</span><span class="cx">          add_action( 'bp_setup_title',            array( $this, 'setup_title'            ), 10 );
</span></span></pre></div>
<a id="trunkbpforumsbpforumsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-forums/bp-forums-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-forums/bp-forums-loader.php     2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-forums/bp-forums-loader.php        2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -23,7 +23,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'forums',
</span><span class="cx">                  __( 'Discussion Forums', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 80
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpfriendsbpfriendsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-friends/bp-friends-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-friends/bp-friends-loader.php   2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-friends/bp-friends-loader.php      2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -22,7 +22,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'friends',
</span><span class="cx">                  __( 'Friend Connections', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 60
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpgroupsbpgroupsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-groups/bp-groups-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-groups/bp-groups-loader.php     2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-groups/bp-groups-loader.php        2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -81,7 +81,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'groups',
</span><span class="cx">                  __( 'User Groups', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 70
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpmembersbpmembersloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-members/bp-members-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-members/bp-members-loader.php   2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-members/bp-members-loader.php      2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -22,7 +22,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'members',
</span><span class="cx">                  __( 'Members', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 20
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpmessagesbpmessagesloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-messages/bp-messages-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-messages/bp-messages-loader.php 2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-messages/bp-messages-loader.php    2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -31,7 +31,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'messages',
</span><span class="cx">                  __( 'Private Messages', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 50
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpsettingsbpsettingsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-settings/bp-settings-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-settings/bp-settings-loader.php 2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-settings/bp-settings-loader.php    2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -21,7 +21,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'settings',
</span><span class="cx">                  __( 'Settings', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 100
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbpxprofilebpxprofileloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-xprofile/bp-xprofile-loader.php (7453 => 7454)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-xprofile/bp-xprofile-loader.php 2013-10-22 02:17:18 UTC (rev 7453)
+++ trunk/bp-xprofile/bp-xprofile-loader.php    2013-10-22 19:31:29 UTC (rev 7454)
</span><span class="lines">@@ -39,7 +39,10 @@
</span><span class="cx">          parent::start(
</span><span class="cx">                  'xprofile',
</span><span class="cx">                  __( 'Extended Profiles', 'buddypress' ),
</span><del>-                       BP_PLUGIN_DIR
</del><ins>+                        BP_PLUGIN_DIR,
+                       array(
+                               'adminbar_myaccount_order' => 20
+                       )
</ins><span class="cx">           );
</span><span class="cx">  }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>