Skip to Content Skip to Menu

Feels like a good time to let everyone know my current active project and what to upcoming releases to expect. Currently CB Activity is the active project. This means that's the project being focused on outside of bug fixes since we will of course interrupt any active project to fix bugs. In addition to this Joomla 4 compatibility testing and fixing is still being done as issues are discovered. We've addressed the majority of Joomla 4 issues already in latest build release of CB. More details about CB Activity development below.

CB Activity 6.0.0 will be a significant rewrite. It will only migrate from CB Activity 5.0.0 so please be sure your install is up to date. CB Activity is undergoing massive performance improvements and structure changes to move it towards scaleability. CB Activity 6.0.0 has been performance tested against 5 MILLION unique activity entries and clocks in at a blazing fast 2ms (milliseconds!). This means you'll be able to put your trust into CB Activity to deliver high performance activity streams looong into the future for your site!

All the database queries have been touched.  All costly _users and _comprofiler table joins have been removed. This means posts belonging to deleted user, banned users, or blocked users are allowed. By default deleted user posts will also be deleted, banned users posts will stop linking to their profile, and blocked users posts will become unpublished. This significantly helps optimize the query away from doing these costly joins. Next all ordering has been changed to no longer be date based. This means all posts will display in the order they were created. So you may notice some posts out of order, but that's normal. This leads us into cursor based pagination. Currently CB Activity is using offset pagination. This basically fails after 30+ pages with a database of 1 million activity. This is due to how the database has to go through previous pages to reach the desired page and gets slower with each page. The cursor based pagination completely eliminates this. That means whether page 1 or page 100 you get the same performance and makes infinite scroll actually pleasant to use.

Global posts have been removed. These were always out of context and were used as a strange means of making site wide announcements that showed on every stream out of context. If you need global posts I suggest instead making a custom stream for those global posts (e.g. set its asset to "global") then add that streams asset to any stream you want those global posts shown on.

Pinned posts have been removed. This pulled a post out of its database order and pushed it to the top. This is awful on the query optimization and constantly caused expensive filesorts. There are no plans for an alternative or workaround for pinned post removal. It's officially a deprecated and removed feature.

First page paging limit has been removed. This allowed you supply a different limit for the first page of a stream (e.g. first page shows 5 for first page then 10 for next page). This was removed due to the difficulty of detecting first page during cursor based paging and hurt query caching.

Stored streams are coming. A stored stream is a preconfigured stream object that can be reused. Currently streams are dynamically generated, stored in user session, and rebuilt on each page load. This is slow, prevents linking to activity, and prevents cross-stream rebuilding (e.g. a post from Stream A shown on Stream B will display based off Stream B parameters instead of Stream A parameters). This will bring significantly improved support for UNLIMITED streams.

Likes, Follows, and Notifications "streams" will be replaced with static APIs. It never made sense for likes/follows to be their own streams. These will be changed to a generic set of FAST APIs for liking/following things. Notifications never made sense to allow different notification streams. Notifications will be reduced down purely to be profile notifications (as they are by default) and remove support for making custom notification streams.

A LOT of new features are planned that would just turn this into an even longer wall of text so I highly recommend checking out our forge below to see what's coming.

https://forge.joomlapolis.com/projects/cb-activity/issues?query_id=85

There isn't a timeline for this at this time, but it's currently under development as we speak and on its way. The primary goal of this release is optimization more than anything, but some great new things will absolutely be coming!


activha replied the topic:
1 year 3 months ago
Amazing what we could do with this !! :-)
krileon replied the topic:
1 year 3 months ago
Internal activity logging is nearly complete. My current goal is to first migrate all the CB Auto Actions usages into core CB Activity. This means you won't need CB Auto Actions for these anymore. You'll be able to simply toggle them enabled or disabled as desired. All will be default disabled.

 

You'll have a fairly decent amount of control over them. Not only can they be toggle enabled or disabled you can make them based off a field. So for example a user could have a checkbox field to decide if they want specific activity to be logged. Additionally you can override what stream the activity is created on, what comment stream the activity will use, and what likes asset to use for the activity.

Similar will be done for Notifications moving them into core CB Activity. In addition to this a new API has been implemented for easily creating activity, which will make it much easier to implement activity generation for 3rd party extensions. It's a simple chainable class. Example as follows.
Code:
( new ActivityEntity( 'event.41' ) )         ->setUserId( 31 )         ->store();

This would generate an activity entry with an asset of event.41 and belong to the user with an id of 31. By default this will be placed on their profile stream, but there's chainable functions to specify what stream to post to.
krileon replied the topic:
1 year 3 months ago
Liked and Followed views are finally being implemented. This will give you and overview of every asset you've liked and followed with context links where available to go back to what was liked or followed.

 

You'll be able to unlike and unfollow from this view as well.
krileon replied the topic:
1 year 3 months ago
The share UI is nearly complete. It comes with multiple social media platforms supported out of the box with capability to add more easily.

 

All of these can be individually toggled off globally and per-stream for easy control of sharing. Note sharing only applies to activity. There currently are no plans for comment sharing as it'd just be sharing outside of context.

Suggestions for additional social media platforms welcomed and will do by best to add share URLs for them. Note none of these load 3rd party scripts. They are strictly share URLs, which helps maintain the privacy of your users and site.
krileon replied the topic:
1 year 3 months ago
Support for activity embeds is now implemented. This is similar to other social media sites that let you embed a post using an iframe to an external site.

 

If the post doesn't exist or isn't accessible to whomever is viewing the embed a placeholder is still rendered, which is fully customizable using a template file. If the post is accessible it will display as normally with all interactivity disabled and clicking anywhere in the post will directly link to that post.

This is the first step of implementing the Share functionality which will support sharing a link, a embed, and on different social media.