Bebop progress log – 09/07/2012 & 16/07/2012

Weeks: 09/07/2012 & 16/07/2012

Throughout the two weeks I have been developing a filter system to allow specific OER’s to be added to the activity stream filters. This involved looking into the BuddyPress files to find out what hooks there are and what can be added. Once the new filters were in place in the main activity streams, we decided that putting the activity stream for the OER’s of a specific user into a member’s OER page would a good idea.

I have then worked on this for the weeks trying to get only that specific members OER’s from the activity stream feed with the correct filter options. This has proven to be difficult due to the lack of hooks and filters within BP for creating your own activity filter query “all OERs”. The end result was to override the function which is creating the cookies for the activity stream on start of entering the OER page in order to allow the multiple page views to work correctly with the “LL OERs” . An extra addition was also added so that if the user leaves the OER profile page it resets their activity stream to default “everything” rather than being on the same as their OER profile. See the images attached below further information.

Throughout the two weeks, Dale has been focussing on providing user functionality to manage OER content within the plugin. This means that users will be able to hand pick the resources pulled in through our extension methods, an either verify or delete them as necessary. This also means no data will be accidentally displayed if the user does not want it sharing in their activity stream. Essentially, data is pulled in using the WordPress cron routine, and added to our our manager table. Each OER has it’s own identification number and status, which determine its usage.


Bebop progress log – 25/06/2012

Week: 25/06/2012


I have been learning how the system works and installing it locally onto the machine. I have been following the process through to understand how each of the hooks work. After getting an understanding of how things are working, myself and Dale worked on different OER feeds for authentication in order to pull in the data from different sources. This was done by learning how different OER sources are pulled into WordPress via using methods such as RSS, API.

In order to make Bebop easily extensible for future sources, we have decided to stick with the method of using a master import file for the cron job. This runs through all the different extension sources with their own import file for that specific data pulling. This ensures that if a new extension was to be created it would simply have to be put into the extension folder in the specified file format and the plugin would automatically incorporate it into Bebop without the need for extra changes.

By the end of the week we both managed to pull data and it is now a case of refining the code and looking at how we should managed and output this information that we have obtained. We have also been looking at setting up the cron job as we are currently (for testing purposes) running the master import manually.

See below for an image of the Youtube pulling.




David Whitehead.


Beginning with WordPress and BuddyPress

The fundamental outcome of this project is to design and build a WordPress/BuddyPress plugin which ‘consumes’ OER’s from 3rd party content providers. To accomplish this the developers should have an understanding of these platforms, and how they can be extended and modified. As a first time user of WordPress and BuddyPress, I needed to learn how to use them, and how to develop on them. This was originally a daunting challenge. Fortunately, I am set next to Alex Bilbie, who I can learn from, as he is already experienced in WordPress development.

I began by downloading WordPress and BuddyPress, and spent several hours rummaging through the filesystems to understand how they are structured, and what each file does. My first impressions were that both WordPress and BuddyPress seemed to be very large and complex, with some files containing just 20 lines of code, while other files contain 15,000 lines of code (the WordPress class-simplepie.php for example). However, tracing through each file and seeing how they link together is one of the best ways for me to learn, and I picked up the structure pretty quickly.

I then installed WordPress and BuddyPress onto my personal web domain, which went smoothly. I then decided to research the plugin creation process, which led to me developing my own simple (and functionally useless!) plugin. The plugin I created is  much a “Hello World!” style plugin, simply outputting text to the WordPress header element. I developed this to use the WordPress database, saving a random phrase to the ‘wp_options’ table, which is then retrieved and outputted to the web browser when the user accesses the blog main page. For a working example, see The black element at the top of the page labelled “Bebop Test Plugin” shows the plugin working. I then implemented some admin functionality, adding an item to the “Settings” tab in the WordPress admin section, enabling the saved phrase to be changed easily.

While I am yet to produce anything of real value for this project, I believe that the research I have performed will be vital (we all have to start somewhere, right?). However, I now feel comfortable using and developing on the WordPress and BuddyPress platforms. We can now concentrate on defining what our Bebop plugin is going to include, and what are the most useful OER hosting platforms to incorporate into our BuddyPress profiles. Joss’ last post, regarding this matter, looked into the RSS endpoints for each potential OER hosting platform. Our next task is to select the relevant OER hosting platforms, so we can begin development.