Goolge Summer of Code 2012 – Ambassador/Event plugin for openSUSE Connect – Event#2

Event #2 (07/05-25/05) [Community Bonding period begins]

What did i do

This period was a bit hard than the last one. I had a twist on my right hand so some days i was not available to carry on to fast with the project. Furthermore i participated in KDE Akademy Es and presented openSUSE Project to people there. So now let’s focus on my progress. The coding st started at 21 of May so until the “Community perod” took place. So i focused on the current documentation. My first step was to read “getting Started with Development” . Getting involved Development means to understand better the Elgg’s event system. Talking about Elgg’s event system means to focus on the “events” and “plugin hooks” that Elgg provides. Furthermore Elgg has a “Views” system. Views are creating a section of presentation code from input data , in other words view  is the templating system of Elgg.

Elgg’s documentation provides useful information about how the Elgg’s Engine works.

More detailed Elgg’s Data Engine is formed by the following parts :

a) Entities , where ElggEntity is the base class for the Elgg data model.

b) Metadata, where you  can add extra data on your entity

c) Annotations, which are pieces of data attached to your  entity that allow users to leave comments, ratings, or other relevant feedback.

d) Relationships

e) Access controls , where you define the accessibility of annotations, entities and metadata.

f) Database schema

Plugin structure

Event calendar plugins structure is simple. Let’s have a look inside :

Actions – Where the actions of event calndar are stored into files (add_to_group , add_to_calendar, killrequest , manage , remove_from_group , request_personal_calendar, toggle_personal_calendar)

Images – Where images used by the plugin are stored here

Languages – All the available languages for the plugin

Models – Where is stored the Elgg event model

Pages – Where review_request.php file is placed.

Views – Where the views are divided into two categories , “rss” and “default”.

In “default” folder appear the “widgets” , “objects” , “input” , “settings” folders and others as well. This view contains many folders and files , so as to be editable .

Many of us we use rss , so as to be up to date . openSUSE Connect and Event calendar. provides “rss” view which is also can be configured.

Furthermore there are some other files , which are very important. These files are “start.php” , “show_event.php” , “show_events.php”. I have to mention that the “model.php” file (from models  folder) is being called on those 3 files above.

My first hacks and feelings

Begin hacking is very interesting. In other words start writing source code and make the first “hacks” , is the first step for the contribution. First you plan the process and then you begin to implement your thoughts and your plan. Moreover “hacking” for an open source project means that all your “hacks” will interact  with the community. So my first hacks for Google Summer of Code are more than interesting for me.

So focusing more on the hacks , my first hack was to read the start.php file of the plugin and understand how it works. For that reason i add comments on how functions and the source code works.

Furthermore i followed all the changes shown on event_calendar_submenu_css.patch file.

Making hacks means that you have also fix the bugs on the source code. After creating a new event , and try to show it you see like this [1]. So you can see that the bullet point which calendar plugin adds to the navigation box  (“View all events”) miss the css layout. In order to solve it and be like this [2] , i had to search for the appropiate css file. After searching and making some test commits , the final commit which solves the problem is this one.

What i am going to do

This week i will focus more on searching which features can be added during creating a new event. Furthermore i will try to add a map locator for each event. This will make the events more attractive to the users.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s