November 2008

You are currently browsing the monthly archive for November 2008.

I first realized that something was awry when I started getting comments on posts that have long been quiet stating that the links to various extensions were not working. Checking out the links, I found that the common element in these broken links were Elgg’s Google Groups. I logged into Developers’ group and began looking for the files finding this:

That’s it. Where there used to be scores of files, there are now a few. Checking the Users’ group. I found the same only there just one file.

Why this has happened, I have no idea. I do know one thing—there are files that can no longer be found either in the groups or the Elgg community site. It is puzzling because the oldest file in each group still exists. It appears that they were deleted. Perhaps I am missing something. If so, please set me straight!

My fear is that we are going to lose several extensions that may have been left in the groups by people who haven’t moved over to the community. Perhaps they have developed these projects and moved on to something else.

We need to find out which extensions are missing and search through our collective hard drives and repost them to the Elgg community so this body of work is not lost. Beyond that, I think we should consider a second repository just in case something goes wrong in the future. It appears that nothing can be taken for granted. I would like to hear others’ take on this issue. Also, please post the names of any extensions that you believe are missing so we can recover them.

Tags: ,

Social bookmarking tools allow users to store and share bookmarks on the Internet so that they are accessible from any computer connected to the net. There are a number of popular free commercial social bookmarking sites including del.icio.us, Furl, Digg, Stumbleupon, and others. Of course, my emphasis has been upon open source alternatives to these sites so that students are not exposed to inappropriate content, advertising, and analysis of browsing habits. Of the tools that I have covered extensively on this site, Pligg, Elgg, and Posh have social bookmarking capabilities.

Potential Uses for Social Bookmarking in Education

Students and educators can benefit from the use of social bookmarking. Teachers could create a bookmark category for an individual class. Rather than passing out paper with links, students would be referred to the bookmarks residing on the bookmarking site for easy access by clicking links. Taking this concept yet further, a teacher could allow students to submit bookmarks for sites that they find useful and pertinent to the class.

Collaborative groups could share an account, or create a unique tag so that all members could have access to what the others have bookmarked.

Individuals conducting research could simply use social bookmarking to keep track of useful sites. This will allow the individual to access his bookmarks regardless of location or what computer he is using.

Bookmarking with Pligg

Pligg is a free and open source application designed to function similarly to the commercial social bookmarking service DIgg. Unlike many other options, social bookmarking is central to Pligg’s functionality. It is fully functional social bookmarking software with means of submitting bookmarks with descriptions and tags. It also provides ratings in which, depending on the template, users can rate a bookmark Digg-style with a thumbs up or thumbs down, or with a star rating system.

Here’s a step by step look at how bookmarks are submitted in Pligg. Navigating to the site, once users log in they are given the option of submitting a new “story.”

Once  the user clicks the tab, they will see a page similar to the one below.

From this point, the user needs to pste the url into the field. Note the guidelines to submitting quality bookmarks.You may alter these messages and indeed add more by going into the the admin interface, selecting Modigy Language and change these fields:

An educator who is grading students’ bookmarks might alter this to provide clear criteria by which they will be evaluated. The next step prompts the user to describe, tag, and categorize the bookmark.

Once this is completed, it enters the administrator’s queue to be approved. Once it appears and depending upon how Pligg is configured, the bookmark can be rated. It also can be commented upon, however admins may want to remove that option as the comments cannot be moderated.

Bookmarking with Elgg

Unlike Pligg, Elgg is not specifically a bookmarking application. Rather it is a social networking platform that can include bookmarking if the extension is installed and enabled. In Elgg, there is a different set of options. You can view your own bookmark collection, those of friends and site bookmarks.

Unlike Pligg, bookmark urls cannot be copied and pasted into a field, rather they are handled via a “bookmarklet.” The bookmarklet icon is dragged to the browser’s link bar.

Once you click the bookmarklet, it grabs the Page title and url and sends you to the Elgg site to complete the bookmarking process.

The bookmark can be described, tagged, and sent to any friends’ bookmark inbox. You can also set the access to public, private, or to logged in users.

Once the bookmark is submitted, other users can comment upon the bookmark.

Bookmarking in Posh

While Posh has bookmarks, their functionality is quite limited.

Click on add a bookmark, and you are give a field for the title, the url, and tags.

Evaluating Student Bookmarks

Teachers may require bookmarks as part of a student’s participation in class. One simple way of doing this would require students to submit a certain number of sites. While this is a reasonable requirement, a good evaluation would consider the quality of the bookmark and the resource it references.The bookmark could be rated in part by the quality of the description according to clear criteria (which can be explicitely stated in the software with Pligg). These might include:

  • Evaluation of site’s authority
  • Good summary of the site’s content
  • Valid and rich use of tags
  • Appropriate categorization
  • Ratings and comments from peers

Conclusion

Social Bookmarking has clear value in education. While self hosted solutions lack the potential for world-wide collaboration that the big commercial sites have, they certainly allow for collaboration with a group, class, or school. The open source options will protect privacy and avoid inappropriate content, and they are more likely to pass muster with afdministration and community.

Of these tools, Pligg stands out as the best because of it’s rich feature set devoted to social bookmarking. Elgg, on the other hand has privacy settings and sharing functions that Pligg lacks and comes as part of a broader social networking platform. Both are suitable for use in the K12 setting. Posh, while useful, is rather limited; thus, a convenience, yet a less valuable social bookmarking tool.

Tags: , , , , , ,

On Tuesday, November 25, I presented Open Source Web 2.0 Applications at the New York State Association for Computers and Technology in Education (NYSCATE). I was very excited to share some of what I have learned in the past year regarding web based applications such as WordPress, Elgg, Pligg, Posh, Gallery, and many others.

I was concerned about the timeslot–the last session on the last day of the conference. I was delighted to find the conference room nearly full when I began to present. I was also pleased to see a few people that attended my presentation last year.

You can hear the presentation Open Source Web 2.0.

Click through the presentation as you listen. (It will toggle between the first two slides until it has loaded. It’s a large file, so give it a minute.)

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: , , ,

The popular “free” educational blogging site Edublogs has begun inserting inline content link ads in the posts of their free blogs. Once users are logged in, they no longer appear, but anyone view the blog sees the ads.

To disable the ads, one must become an Edublogs supporter costing $25 per year. There are other benefits such as more server space and Twitter integration. Alternatively, schools can set up Campus subscriptions starting at $900 per year for 100 blogs.

On the popular Classroom 2.0 site, teachers are registering shock and dismay at this unannounced development, saying that they feel “bamboozled.” Concern has been expressed about control over the content of these ads. Teachers and students have invested much into this blog platform and suddenly find the landscape has changed.

In fairness to Edublogs, the potential for advertising has been in their terms of service for some time–I looked into it many months ago. (You DO read the TOS before clicking I accept, don’t you?). In this tightening economy, the flow of easy captial has been shut off. The free hosted social applications need to pay their bills to keep their servers up and running and to pay staff.

I have always expressed concern about hosted Web 2.0 solutions for these very reasons. There is also the issue of data ownership. If one of these companies goes belly up overnight as has been the case with so many major corporations of late, what happens to your data?

The solution is free and open source software on either rented web server space, or on in-house servers. No, these are not “free” solutions, but they are inexpensive. Webhosting accounts can be had for as little as $5 a month and most offer ample resources for hosting your own Web 2.0 solutions. Furthermore, you will not find yourself blindsided by changes in policies and terms.

There are many options for software. Multiple blogs can be hosted on WordPressMU, Social Networks on Elgg, and the list goes on.

Stay tuned for more such developments and start studying up on free and open source Web 2.0 applications. As has been said so many times before: there is no such thing as a free lunch!

Tags: , , , , ,

This is one of the most frequently unanswered questions with Elgg users. I’ve seen it numerous times in the various Elgg support venues, and I have been asked many times.

The short answer is that within the Elgg user and administrative interfaces, there is no way. If I am wrong, please correct me. The only approach that I have found is to delete it in the database. Access phpMyAdmin through your cpanel or whatever other way you may have to access your database.

Find elgggroup_entity and select the browse button.

Select the red X to delete the group. That’s it, the group is gone from the user interface. I honestly don’t know if remnants remain in other tables. Hopefully the garbage collector will deal with that.

This is the only answer that I have found. If someone has a better solution, let me know. Hopefully, over time, this will be built into the interface.

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: , , , ,

By request, I have written another access plugin. This one eliminates the “private” and “logged in users” options leaving only “public.”

That’s all it does. Not much else to say but download here.

Tags: , , ,

I have had several requests for the Higherwalls plugin with out the walled garden functionality. I decided to make the plugin with two flavors.

The original version also overrode the owner’s block so that the links to create RSS and OpenDD feeds were deleted. I created another version that retains the ability to click on the links to get the feeds.

Again, to totally disable the feeds, you will need to go to your elgg/views folder and delete the rss and opendd folders.

Tags: , , , , ,

I plan on using Elgg in a K12 environment, particularly my fifth graders. In order to do this in a manner that complies with our school policies and culture, I had to make some changes. Since the Elgg environment is unmoderated, I had to remove all public access to content.

Elgg’s “Walled Garden” does part of the job in that it disables public registration, but any content that users created had the option of public access which would be visible to individuals not logged in.

I created a plugin with a view override that removes this option. Now users have the choice of private or logged in users (along with any friends’ collections) when setting the access to content.

Still, access to the site could be had by RSS feeds and OpenDD. I’m not sure how big an issue this is, but I’d like to be able to do it. Dave Tosh suggested, I created an override of owners’ block eliminating those options. I believe access to these can be had unless I delete the rss and opendd views from the core. That will work, but I wonder if I could create an override of those views that disables them. I plan on looking into this.

No links to subscribe to feeds

I combined my initial plugin, with Marcus Povey’s “Walled Garden.” With “Higher Walls,” not only is registration disabled, but so is public access. Links to RSS and OpenDD feeds are also disabled.

Another issue remains. If access to content is restricted to logged in users, then the Latest Activity on the default main page will remain as a header with nothing below it. I used Customindex plugin to change the mainpage to a login page by pasting:

$form_body = “<p><label>” . elgg_echo(’username’) . “<br />” . elgg_view(’input/text’, array(’internalname’ => ‘username’, ‘class’ => ‘login-textarea’)) . “</label><br />”;
$form_body .= “<label>” . elgg_echo(’password’) . “<br />” . elgg_view(’input/password’, array(’internalname’ => ‘password’, ‘class’ => ‘login-textarea’)) . “</label><br />”;
$form_body .= elgg_view(’input/submit’, array(’value’ => elgg_echo(’login’))) . “</p>”;
$form_body .= “<p>” . elgg_echo(”) . “</a>  <a href=\”". $vars['url'] .”account/forgotten_password.php\”>” . elgg_echo(’user:password:lost’) . “</a></p>”;
echo elgg_view(’input/form’, array(’body’ => $form_body, ‘action’ => “”. $vars['url'] .”action/login”));

into customindex/views/default/customindex/content.php.

Further modifications could be done on the custom index, but this certainly serves the purpose. It is comparable to what one would encounter in a password protected WordPressMU blog.

Now I am convinced that Elgg can be modified to work within the K12 environment. Higher Walls and removing rss and opendd views directories restricts access to the community very effectively. A better solution would disabling rss and opendd through the plugin rather than deleting core files.

Now that these matters appear worked out, I plan to focus more on Elgg in terms of pedagogy. Nonetheless, I will tweak “Higher Walls” over time.

Download

Thanks to:

  • Marcus Povey
  • Boris Glumpler
  • Jens von der Heydt
  • Diego Andrés Ramírez Aragón

Tags: , , , , ,

Jonathan Rico of Peesco.com released a Google Gadgets widget for Elgg called xgadget. Google Gadgets are snippets of code that can be inserted into widgets to present a wide variety of content. They deliver weather forecasts, rss feeds, games, videos, and more–ranging from the practical to frivolous.

Once xgadgets is installed, it appears in the widget gallery in the profile and dashboard. To get started, you need to find some suitable gadgets by going to Google’s gadget directory.

There are thousands of gadgets to choose from. Once you find a suitable gadget, click the “Add to your Webpage” button. Depending on the gadget selected, you will presented with some configuration options.

Once you have it configured as desired. click “Get the Code.” Copy the code to your clipboard and return to Elgg. If you haven’t set up your gadget widget by dragging it from the Widget Menu to one of the cloumns do so now.

(Note that you can also click on the Additional tools gadgets which brings you to Lab Pixies). Click the edit button on the upper right hand corner.

Name your Gadget in the top field, paste the Code into the code field, and adjust the height as needed (try 10-15 px more than your gadget’s size). Next set the access and click save.

You may have configuration options with your gadget. In this case, you would click edit and type in your zip code for a local weather forecast.

This is a great little plugin that makes thousands of widgets available to both the dashboard and profile in Elgg. It helps them function more like a Pageflakes or Netvibes portal. This is a great addition to the growing collection of Elgg plugins.

Tags: , ,