<!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][8056] trunk: Groups: When fetching a new group object, default 'populate_extras' to false.</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/8056">8056</a></dd>
<dt>Author</dt> <dd>r-a-y</dd>
<dt>Date</dt> <dd>2014-03-06 01:40:03 +0000 (Thu, 06 Mar 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Groups: When fetching a new group object, default 'populate_extras' to false.

In <a href="http://buddypress.trac.wordpress.org/changeset/7934">r7934</a>, the 'populate_extras' parameter was set to true.  This
parameter queries additional info about the group including group
admins, moderators and member status.

There are very few instances where we need this extra information.  We
only need this data when on a single group or in a group loop.

Therefore, this commit sets the 'populate_extras' parameter to false
by default and sets it to true when setting up the current group
object.

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

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkbpgroupsbpgroupsclassesphp">trunk/bp-groups/bp-groups-classes.php</a></li>
<li><a href="#trunkbpgroupsbpgroupsfunctionsphp">trunk/bp-groups/bp-groups-functions.php</a></li>
<li><a href="#trunkbpgroupsbpgroupsloaderphp">trunk/bp-groups/bp-groups-loader.php</a></li>
<li><a href="#trunkteststestcasesgroupsfunctionsphp">trunk/tests/testcases/groups/functions.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkbpgroupsbpgroupsclassesphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-groups/bp-groups-classes.php (8055 => 8056)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-groups/bp-groups-classes.php    2014-03-06 01:35:16 UTC (rev 8055)
+++ trunk/bp-groups/bp-groups-classes.php       2014-03-06 01:40:03 UTC (rev 8056)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">   */
</span><span class="cx">  public function __construct( $id = null, $args = array() ) {
</span><span class="cx">          $this->args = wp_parse_args( $args, array(
</span><del>-                       'populate_extras' => true,
</del><ins>+                        'populate_extras' => false,
</ins><span class="cx">           ) );
</span><span class="cx"> 
</span><span class="cx">          if ( !empty( $id ) ) {
</span></span></pre></div>
<a id="trunkbpgroupsbpgroupsfunctionsphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-groups/bp-groups-functions.php (8055 => 8056)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-groups/bp-groups-functions.php  2014-03-06 01:35:16 UTC (rev 8055)
+++ trunk/bp-groups/bp-groups-functions.php     2014-03-06 01:40:03 UTC (rev 8056)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">  $r = wp_parse_args( $args, array(
</span><span class="cx">          'group_id'          => false,
</span><span class="cx">          'load_users'        => false,
</span><del>-               'populate_extras'   => true,
</del><ins>+                'populate_extras'   => false,
</ins><span class="cx">   ) );
</span><span class="cx"> 
</span><span class="cx">  $group_args = array(
</span></span></pre></div>
<a id="trunkbpgroupsbpgroupsloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-groups/bp-groups-loader.php (8055 => 8056)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-groups/bp-groups-loader.php     2014-03-06 01:35:16 UTC (rev 8055)
+++ trunk/bp-groups/bp-groups-loader.php        2014-03-06 01:40:03 UTC (rev 8056)
</span><span class="lines">@@ -162,8 +162,17 @@
</span><span class="cx"> 
</span><span class="cx">                  $bp->is_single_item  = true;
</span><span class="cx">                  $current_group_class = apply_filters( 'bp_groups_current_group_class', 'BP_Groups_Group' );
</span><del>-                       $this->current_group = apply_filters( 'bp_groups_current_group_object', new $current_group_class( $group_id ) );
</del><span class="cx"> 
</span><ins>+                       if ( $current_group_class == 'BP_Groups_Group' ) {
+                               $this->current_group = groups_get_group( array(
+                                       'group_id'        => $group_id,
+                                       'populate_extras' => true,
+                               ) );
+
+                       } else {
+                               $this->current_group = apply_filters( 'bp_groups_current_group_object', new $current_group_class( $group_id ) );
+                       }
+
</ins><span class="cx">                   // When in a single group, the first action is bumped down one because of the
</span><span class="cx">                  // group name, so we need to adjust this and set the group name to current_item.
</span><span class="cx">                  $bp->current_item   = bp_current_action();
</span></span></pre></div>
<a id="trunkteststestcasesgroupsfunctionsphp"></a>
<div class="modfile"><h4>Modified: trunk/tests/testcases/groups/functions.php (8055 => 8056)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/tests/testcases/groups/functions.php       2014-03-06 01:35:16 UTC (rev 8055)
+++ trunk/tests/testcases/groups/functions.php  2014-03-06 01:40:03 UTC (rev 8056)
</span><span class="lines">@@ -562,11 +562,11 @@
</span><span class="cx">          $old_user = get_current_user_id();
</span><span class="cx">          $this->set_current_user( $u1 );
</span><span class="cx"> 
</span><del>-               $group1 = groups_get_group( array( 'group_id' => $g, ) );
</del><ins>+                $group1 = groups_get_group( array( 'group_id' => $g, 'populate_extras' => true ) );
</ins><span class="cx"> 
</span><span class="cx">          $this->set_current_user( $u2 );
</span><span class="cx"> 
</span><del>-               $group2 = groups_get_group( array( 'group_id' => $g, ) );
</del><ins>+                $group2 = groups_get_group( array( 'group_id' => $g, 'populate_extras' => true ) );
</ins><span class="cx"> 
</span><span class="cx">          $this->assertNotEquals( $group1, $group2 );
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>