<!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][9372] trunk: Revert r9330 in lieu of original patch on #6099.</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" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://buddypress.trac.wordpress.org/changeset/9372">9372</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://buddypress.trac.wordpress.org/changeset/9372","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>johnjamesjacoby</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2015-01-19 18:14:47 +0000 (Mon, 19 Jan 2015)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Revert <a href="http://buddypress.trac.wordpress.org/changeset/9330">r9330</a> in lieu of original patch on <a href="http://buddypress.trac.wordpress.org/ticket/6099">#6099</a>.

When querying for various types and scopes of activity stream items, each BuddyPress component having a unique type or scope also has unique keys and filters responsible for handling the custom queries necessary to get the correct entries from the database. 

In some instances (like single groups, member favorites, etc...) these scopes are returning invalid (or empty) results, causing no activity entries to be returned from the database when entries do exist and should be displayed.

Unit tests still apply (though they get some variable clean-up here.)

Hat-tip hnla for discovery. Props r-a-y, imath. Fixes <a href="http://buddypress.trac.wordpress.org/ticket/6140">#6140</a>. Fixes <a href="http://buddypress.trac.wordpress.org/ticket/6099">#6099</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcbpactivitybpactivityclassesphp">trunk/src/bp-activity/bp-activity-classes.php</a></li>
<li><a href="#trunksrcbpactivitybpactivityfiltersphp">trunk/src/bp-activity/bp-activity-filters.php</a></li>
<li><a href="#trunksrcbpfriendsbpfriendsactivityphp">trunk/src/bp-friends/bp-friends-activity.php</a></li>
<li><a href="#trunksrcbpgroupsbpgroupsactivityphp">trunk/src/bp-groups/bp-groups-activity.php</a></li>
<li><a href="#trunktestsphpunittestcasesactivitytemplatephp">trunk/tests/phpunit/testcases/activity/template.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcbpactivitybpactivityclassesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-activity/bp-activity-classes.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-activity/bp-activity-classes.php     2015-01-19 13:53:22 UTC (rev 9371)
+++ trunk/src/bp-activity/bp-activity-classes.php       2015-01-19 18:14:47 UTC (rev 9372)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -318,7 +318,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $args      = bp_core_parse_args_array( $old_args_keys, $func_args );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $defaults = array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $r = wp_parse_args( $args, array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'page'              => 1,          // The current page
</span><span class="cx" style="display: block; padding: 0 10px">                        'per_page'          => 25,         // Activity items per page
</span><span class="cx" style="display: block; padding: 0 10px">                        'max'               => false,      // Max number of items to return
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -336,8 +336,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'spam'              => 'ham_only', // Spam status
</span><span class="cx" style="display: block; padding: 0 10px">                        'update_meta_cache' => true,
</span><span class="cx" style="display: block; padding: 0 10px">                        'count_total'       => false,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                );
-               $r = wp_parse_args( $args, $defaults );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Select conditions
</span><span class="cx" style="display: block; padding: 0 10px">                $select_sql = "SELECT DISTINCT a.id";
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -359,20 +358,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        // Add our SQL conditions if matches were found
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( ! empty( $scope_query['sql'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                $where_conditions['scope_query_sql'] = $scope_query['sql'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-                       // No matches, so we should alter the SQL statement to match nothing
-                       } else {
-                               $where_conditions['scope_no_results'] = '0 = 1';
</del><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        // override some arguments if needed
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( ! empty( $scope_query['override'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                $r = self::array_replace_recursive( $r, $scope_query['override'] );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
</ins><span class="cx" style="display: block; padding: 0 10px">                 // Advanced filtering
</span><span class="cx" style="display: block; padding: 0 10px">                } elseif ( ! empty( $r['filter_query'] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $filter_query = new BP_Activity_Query( $r['filter_query'] );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( $sql = $filter_query->get_sql() ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $sql          = $filter_query->get_sql();
+                       if ( ! empty( $sql ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $where_conditions['filter_query_sql'] = $sql;
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -402,8 +399,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Hide Hidden Items?
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ! $r['show_hidden'] )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ! $r['show_hidden'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $where_conditions['hidden_sql'] = "a.hide_sitewide = 0";
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Exclude specified items
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! empty( $r['exclude'] ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -615,8 +613,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        $total_activities     = $wpdb->get_var( $total_activities_sql );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( !empty( $r['max'] ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( (int) $total_activities > (int) $r['max'] )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         if ( (int) $total_activities > (int) $r['max'] ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                         $total_activities = $r['max'];
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                }
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        $retval['total'] = $total_activities;
</span></span></pre></div>
<a id="trunksrcbpactivitybpactivityfiltersphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-activity/bp-activity-filters.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-activity/bp-activity-filters.php     2015-01-19 13:53:22 UTC (rev 9371)
+++ trunk/src/bp-activity/bp-activity-filters.php       2015-01-19 18:14:47 UTC (rev 9372)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -677,7 +677,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> function bp_activity_filter_favorites_scope( $retval, $filter ) {
</span><span class="cx" style="display: block; padding: 0 10px">        $favs = bp_activity_get_user_favorites( $filter['user_id'] );
</span><span class="cx" style="display: block; padding: 0 10px">        if ( empty( $favs ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $retval;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $favs = array( 0 );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        $retval = array(
</span></span></pre></div>
<a id="trunksrcbpfriendsbpfriendsactivityphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-friends/bp-friends-activity.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-friends/bp-friends-activity.php      2015-01-19 13:53:22 UTC (rev 9371)
+++ trunk/src/bp-friends/bp-friends-activity.php        2015-01-19 18:14:47 UTC (rev 9372)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -242,7 +242,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        $friends = friends_get_friend_user_ids( $filter['user_id'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( empty( $friends ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $retval;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $friends = array( 0 );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        $retval= array(
</span></span></pre></div>
<a id="trunksrcbpgroupsbpgroupsactivityphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-groups/bp-groups-activity.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-groups/bp-groups-activity.php        2015-01-19 13:53:22 UTC (rev 9371)
+++ trunk/src/bp-groups/bp-groups-activity.php  2015-01-19 18:14:47 UTC (rev 9372)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -246,7 +246,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        $groups = groups_get_user_groups( $filter['user_id'] );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( empty( $groups['groups'] ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                return $retval;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $groups = array( 'groups' => 0 );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        $retval= array(
</span></span></pre></div>
<a id="trunktestsphpunittestcasesactivitytemplatephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/phpunit/testcases/activity/template.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/testcases/activity/template.php       2015-01-19 13:53:22 UTC (rev 9371)
+++ trunk/tests/phpunit/testcases/activity/template.php 2015-01-19 18:14:47 UTC (rev 9372)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -352,7 +352,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $now = time();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Create a random activity
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $a1 = $this->factory->activity->create( array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->factory->activity->create( array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'user_id' => $u1,
</span><span class="cx" style="display: block; padding: 0 10px">                        'type' => 'activity_update',
</span><span class="cx" style="display: block; padding: 0 10px">                        'recorded_time' => date( 'Y-m-d H:i:s', $now ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -385,7 +385,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $now = time();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Create a random activity
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $a1 = $this->factory->activity->create( array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->factory->activity->create( array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'user_id' => $u1,
</span><span class="cx" style="display: block; padding: 0 10px">                        'type' => 'activity_update',
</span><span class="cx" style="display: block; padding: 0 10px">                        'recorded_time' => date( 'Y-m-d H:i:s', $now ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -418,7 +418,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $now = time();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Create a random activity
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $a1 = $this->factory->activity->create( array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->factory->activity->create( array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'user_id' => $u1,
</span><span class="cx" style="display: block; padding: 0 10px">                        'type' => 'activity_update',
</span><span class="cx" style="display: block; padding: 0 10px">                        'recorded_time' => date( 'Y-m-d H:i:s', $now ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -451,7 +451,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $now = time();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Create a random activity
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $a1 = $this->factory->activity->create( array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->factory->activity->create( array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'user_id' => $u1,
</span><span class="cx" style="display: block; padding: 0 10px">                        'type' => 'activity_update',
</span><span class="cx" style="display: block; padding: 0 10px">                        'recorded_time' => date( 'Y-m-d H:i:s', $now ),
</span></span></pre>
</div>
</div>

</body>
</html>