Google Summer of Code 2012

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

Event #3 (25/05-06/06)

What did i do

This period of time was the continuity of the last one (ok i suffered from fever for 3 days). So the hacking is on and new features are already added. As i promised on my last post , i had to add some new useful features in the Event Calendar Plugin (while creating a new event). So i added some new fields which are useful for the ambassadors and also requested from users. These fields are :

Material ,Arrival,Departure ,Booth ,Travel,Talks [1] .

Adding these fields means that ambassadors can add more information while creating a new event. But what is going on when an ambassador or a new user wish to add extra info on these fields? In openSUSE Connect you can make comments as a general instance in a page , but by default you cannot make comments into fields. Μore detailed i made annotations for the ElggObject ($event) and then printed their value (annotation value is a comment for a example). [2] . In order to make the comments visible during “View Event” i created new fields (Material Comment,Arrival Comment, Departure Comment , Booth Comment , Travel Cmment , Talks Comment) where the annotation from the user are available [3].

Problems and Solutions

During this period i faced problems with annotation. Elgg only allows annotating ElggObject but not metadata (our fields are metadata of the object $event) . I made a lot of tries and tried many thoughts so as to reach my goal. Creating a new Object would be a disaster and with no sense. So annotating the $event and add the annotations as a new StdClass was the solution in the problem [4].

What i am going to do

This period of time i will add a map locator for the each event. Furthermore i will  find out if other fields are requested from users and try to add them to event calendar plugin.

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.

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

Introduce my self

My name is Athanasios-Ilias Rousinopoulos. I am an openSUSE Ambassador and an active member of openSUSE Community. This year i participate in Google Summer of Code with openSUSE .[0]. My project is called “Ambassador/Event plugin for openSUSE Connect”.

Introduce my project

As an openSUSE  Ambassador  [1] i participate in conferences , make presentations and promote openSUSE to the people. openSUSE Connect is the social network of openSUSE Project (based on Elgg ). In my opinion openSUSE Connect  it is more than a useful tool. Ambassadors , members of openSUSE community do use it in order to communicate , form groups , follow other people, create events ,create polls  etc. Although it is a useful tool , it does suffer from some deficiencies. As an ambassador i found using the wiki in order to manage the community events not a good idea at all. As mentioned before openSUSE Connect is based on Elgg. Elgg is an  open source social networking engine that provides a robust framework on which to build all kinds of social environments. [2]. Elgg provides well-organized documentation [3] for developers. Furthermore Bug tracker is also available [4] . Besides Elgg has its own API Reference [5] which developers can use it. Finally he goal of my project is to create a plugin (developed in Elgg) which allows the users planning of events in openSUSE Connect , instead of using the wiki pages so as to create an event. Using this plugin by the community can be more beneficial


Event #1 (23/04-07/05) [Community Bonding period begins]

What did i do

Until  now i did made my “Contact first steps” [6] which means i talked with my mentor , informed him about my plan. Furthermore i started using Trello as a project management tool. Focusing more on the project i read openSUSE connect’s main features and Installed it as well [7] , [8] , [9]. openSUSE Connect allows create and develop new widgets , plugins and new themes by using the Elgg platform. During installing openSUSE Connect i did face some problems , so i edited the documentation [10] in order to make the installation process easier and more successful. After the installation process i read Elgg’s Wiki Main page [11] , how Elgg’s Engine works , and made my firsts steps with  Elgg Plugin Development. [12] ,[13], [14]. Elgg’s offers some introduction tutorials so as to begin developing your plugin. In addition Elgg offers about 1500 plugins which you can download them and  install them as well. Finally i installed PHP plugin for Eclipse and started using it.

What i am going to do

This week i will focus more on Elgg’s Plugin Development and try to implement the first tutorials [15] . Furthermore i am going to focus on Elgg Plugin Development and read upon the current used event plugin.

Problems &  Solutions

After the installation process i wasn’t able to access Elgg due to an Error message. Also while configuring “System settings” i had to add a folder which is not placed in Connect’s installation folder. These problems are already solved and descibed more detailed here [16]


These are my first 14 days in the project. I feel very happy about participating in Google Summer of Code with openSUSE Project. In my opinion this project would be beneficial for members of openSUSE Community and Open Source community as well. Finally my reports about my progress will be posted in weekly basis and will be called “Event # “.