plugin

You are currently browsing articles tagged plugin.

A long sought after calendar plugin for Elgg has been created by Kevin Jardine. This add-on, commissioned by the Royal Society of Architects, provides an event calendar for each group created in the Elgg installation.

Event Calendar requires Elgg 1.1 or higher. The only departure for a standard installation is that the plugin’s directory should be changed from event_calendar_0.6 to event_calendar before activating. There is no configuration—the group calendar just appears in the owner’s block as a link when you are in a group.

cal1

Clicking on the calendar link brings up the following page.

Click to enlarge

Click to enlarge

In the main content area, there are options for viewing the list of events for a given day, week, or month. In addition there is an interactive calendar/datepicker. The large blank area displays the events. Right now there aren’t any, but to create an event, one clicks the Add Event link on the owner’s block

Click to enlarge

Click to enlarge

There are several fields for information about the event. Note the popup calendar for selecting dates. There is no option for a time, so I put the time in the title. Once an event is created the event appears in the main content area

Click to enlarge

Click to enlarge

This displays all the information entered about the event. And you now have some new options in the owner’s block.

cal5

Beyond the options to edit or delete the event, you can add the event to your personal calendar. The entire site’s event calendar can be access through the tools menu of the top bar. In addition, the Events Calendar plugin provides a widget that can appear on your dashboard of profile list the events that you added to your personal calendar.

cal6

Returning to the Group’s page reveals an event calendar list all the events for that group in the main content area.

Click to enlarge

Click to enlarge

One last great feature appears as you return to an individual event. Once you are on an event page, a personal event calendars button appears on the owner’s block. If you click on that, you get a list of each user that added the event to their personal calendar.

cal8

To customize the appearance of the calendar on the page, edit:

event_calendar/datepicker.css

To change messages, spellings, or wordings, edit:

event_calendar/languages/en.php

This is clearly a well developed plugin width a great depth of presence in the installation in that includes, not only group event calendars, but a sitewide calendar, and a widget to display individuals’ event calendars. The ability to view who else has added an event to their personal calendar is also a great addition.

This is an outstanding extension to the Elgg core and goes far in fleshing out Elgg’s functionality. It is currently version 0.6 beta. I wouldn’t be surprised to see further enhancements of this plugin as new version emerge.

Tags: , , , ,

Matt Leifer commented on my post about the advent of BuddyPress wondering if there was some sort of integration with a wiki and WordPress. His question aroused my curiousity as I use WordPress and MediaWiki. Indeed there is a very interesting WordPress plugin that works MediaWiki.

Append Wiki Page by Enej Bajgoric at the University of British Columbia is a WordPress extension that allows users to actually embed a MediaWiki page within an individual blog post. Install this plugin and a new option appears at the bottom of the edit post page.

wiki-inc

Simply type in the url of the desired wikipage and it appears in the post when you publish it. Here is a screencast illustrating its use. It includes edit links to the wiki, so that a reader could actually move from the blog post to the actual MediaWiki page and edit it if they have those priviledges. I first saw this on Jim Groom’s post/wiki on installing BuddyPress and wondered how he did it.  In a round about way, I found out how.

I like this plugin and it generally works well. I think that it has a great deal of potential in education and documentation. My only problem is that it, for some reason, will not work correctly when I use it with wikis on my server. If I link to any other wiki page, it works fine. I can only assume it is because of some setting on my server. I certainly would like to resolve this (any offers for help gracefully accepted) as the Append Wiki Page plugin is a great tool.

Tags: , ,

Ibo, from the Elgg Developer Google Group, just updated my Tinymce with TinyBrowser implementation. I’d like to thank him as I have been very busy.

It implements the new version of TinyBrowser 1.40 beta. New features include:

  • Multiple Folder support with ability to create, change, and delete folders.
  • Action for moving files between folders
  • Height and width values in the pop up window.

It also fixes a number of bugs. In addition, it allows TinyBrowser to create a full upload path.

This remains a way to upload files from within the image and media embed functions in tinymce, while we wait for the new text area embedding tool being developed for Elgg 1.5 slated for February.

Tags: , , ,

Since I work in a k12 environment, I needed to make a plugin that removed “Public” as an option when users post content. I didn’t take me long to locate the file engine/lib/access.php as the file that controls these functions.

I hacked the core code and indeed it functioned as I wanted it to. Hacks to the core are undesireable because it complicates upgrading, so I wanted to create an override. I worked many hours trying to create a hack of the core access.php, but I was unsuccessful. I just couldn’t figure out how to write a start.php that would function. Finally, I had a break through, but it had nothing to do with overriding engine/lib/access.php.

Diego Andrés Ramírez Aragón and Jens von der Heydt suggested that the key to this may reside in the views directory. I knew how to write an override of elgg views. First I created the initial directories for the plugin:

nopublic/
nopublic/views

To find the rest of the pathway, I had to find where the access file was in the views directory and mirror it. Since it was in

views/default/input/access.php

I created

nopublic/views/default/input/

Next I opened created a copy of the original access.php, made my hacks and inserted it plugins’s input folder.

$class = $vars['class'];
if (!$class) $class = “input-access”;

if (!is_array($vars['options']))
{
$vars['options'] = array();
$vars['options'] = get_write_access_array();
}

if (is_array($vars['options']) && sizeof($vars['options']) > 0) {

?>

was changed to:

$class = $vars['class'];
if (!$class) $class = “input-access”;

if (!is_array($vars['options']))
{
$vars['options'] = array();
$vars['options'] = get_write_access_array();
unset($vars['options'][2]);
}

if (is_array($vars['options']) && sizeof($vars['options']) > 0) {

?>

The start.php requires no hooks. Simply initialize and register the plugin:

<?php
function nopublic_init() {

}

register_elgg_event_handler(‘init’,'system’,’nopublic_init’);
?>

I put that in my plugin directory, along with an manifest.xml file so now I had:

nopublic/start.php
nopublic/manifest.xml
nopublic/views/default/input/access.php

That disables the public access option–the basic nopublic plugin. There are many directories in the views folder that can be overridden this easily.

Clearly, there is much to explore with views overrides. I look forward to learning more about the manifestations of each file. They provide important customization options beyond themes.

I’d like to hear how others are using views overrides!

Tags: , , , ,

Many people have asked how to change the ways things are worded on their Elgg sites. For example, where the word friends appears, the word colleagues may be more appropriate. This is easily achieved by editing the languages/en.php file (In the case of English). The problem is that this is editing the core. If you are careless about your upgrade, all your customizations disappear. This is best achieved using an override.

The languageoverride plugin allows you to edit the file using a plugin, leaving the core intact. Simply download and unpack the plugin, then upload it to the mod folder. Now you can customize mod/languageoverride/languages/en.php to achieve the same thing. Of course, the customizations can be made before uploading.

Open the en.php file in a text editor. You will see a well commented, tidily organized file:

Click to enlarge

Find the text you want to change by browsing the appropriate headings of by using the find function.

Lets take a closer look at the friends section of the code.

Click to enlarge

Click to enlarge

If you look at the left side of the arrow, you will see the code that calls for a string of text to display. The text actually displayed to the user is on the right side of the arrow. For example:

‘friends:yours’ => “Your friends”,

The code ‘friends:yours’ displays Your friends. If you want it to display Your colleague, you would change the line to:

‘friends:yours’ => “Your colleague”,

Note that the text to the left of the arrow remains the same.

Sometimes you may see a %s sign in the message. This is a call to a variable.

‘friends:add:successful’ => “You have successfully added %s as a friend.”,

Had you just added “John” as a friend, the text displayed would be: You have successfully added John as a friend. Do not remove the %s! For our colleague example it would be changed to:

‘friends:add:successful’ => “You have successfully added %s as a colleague.”,

Once you have made the changes, save the file. Provided the plugin is activated, the new terms will display.

You do not necessarily have to use this plugin to achieve the changes. You could put a languages file in any number of existing plugins including themes. Merely create a language folder for the plugin and put the en.php file in the languages folder:

myplugin/languages/en.php

Make you changes to the en.php as you would with the plugin.

Some text may not reside in the languages/en.php folder. In some cases plugins have their own languages/en.php files extending the core. In that case, it is appropriate to edit the languages/en.php file for the individual plugin. I am not sure if there is a way to override the plugin’s language file. When upgrading a mod, be sure to save copies of any changes to language/en.php.

While this is a fairly simple plugin, I’m sure that many will find it useful. Download the file here.

Read the comments for more good information!

Tags: , , , ,

« Older entries