August 2008

You are currently browsing the monthly archive for August 2008.

The extended Elgg includes the Tinymce wysiwyg editor with a well selected, yet limited set of tools. Many have asked about extending the options and, in fact, there are several more tools waiting to to activated. Some are very simple to implement, while others are more complex. We will start with the simple changes and deal with more complex modifications in the future.

The default Tinymce text editor in Elgg 1.0 appears like this:

This gives you the following tools:

  • Bold
  • Italic
  • Underline
  • Strikethrough
  • Bullet List  (bullist)
  • Number list (numlist)
  • Undo
  • Redo
  • Link
  • Unlink
  • Image
  • Quote (blockquote)
  • Source (code)

Many have grown fond of a larger tool set with other applications or would like to see more features suited to their use of Elgg. Most of these tools are already loaded on your Elgg installation just waiting to be activated. Some can be activated by typing a single word into a file.

Looking at moxiecode’s documentation, I found that I can easily configure tinymce by editing a file containing:

tinyMCE.init({

Which file is that? It’s hidden deep in the mod/tinymce directory (grep is your friend!):

mod/tinymce/views/default/input/longtext.php

Elgg’s default tinymce configuration is as follows:

tinyMCE.init({ mode : "textareas", theme : "advanced", theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,bullist,numlist,undo,redo,link,unlink,image,blockquote,code", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]" });

Note the text in above in blue. Those call up the options seen in the bulleted list above. Each of the lines starting with theme_advanced_buttons represent a row of buttons in the editor:

theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,bullist,numlist,undo,redo,link,unlink,image,blockquote,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",

As configured above, there are only tools in the first row of buttons. Additional options can be added by inserting text in any of the three rows, depending upon where you weant them to appear.

There are many functions you can add to any of these three rows by adding words to bring up buttons. For example:

Text Justification:

  • justifyleft
  • justifycenter
  • justifyright
  • justifyfull

Basic Copy/Paste

  • cut
  • copy
  • paste

Indents:

  • indent
  • outdent

Fonts/styles:

  • removeformat
  • formatselect
  • fontselect
  • fontsizeselect
  • sytyleselect

Super/subscript:

  • sub
  • super

Color:

  • forecolor
  • backcolor
  • forecolorpicker
  • backcolorpicker

Here is one possible configuration:

 tinyMCE.init({

    mode : "textareas",
    theme : "advanced",
    plugins : "media, emotions, fullscreen",
    media_use_script : "true",
    cleanup : "true",
    theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,bullist,numlist,undo,redo,link,unlink,image,blockquote,code",
    theme_advanced_buttons2 : "media, emotions, fullscreen, forecolor, cleanup",
    theme_advanced_buttons3 : "fontselect, justifyleft, justifycenter, justifyright",
    theme_advanced_toolbar_location : "top",

Resulting in this:

More information may be found about options and functions here.

This should get you started. There are even more options that need further configuration–some simple, others complex.  I have found some vexing, but I plan on discussing more complex plugins allowing spell checking, embedding media, and other functions in the near future.

Tags: ,

I put together an Elgg 1.0 theme. Blue Gneiss (pronounced nice) represents modest changes from the default core theme. The main differences are the color scheme, an image in the header, and the use of Spotlight. Spotlight has been moved to the login page and does not appear once logged in. This can serve as a site introduction.

Blue Gneiss installs as a plugin and uses the override system. Any edits to the theme, including Spotlight contents, should be done in mod/blue_gneiss_theme/ directories. While I didn’t include all the core default view files, I included several that I had edited and yet others that I suspect some may want to edit. It also includes a full set of graphics from the core, allowing you to make changes to the theme while leaving the core intact.

This theme includes edits to:

views/default.css.php (several changes)
views/default/pageshell/pageshell.php (moved spotlight and made it load not logged in)
views/default/page_elements/footer.php
views/default/spotlight/default.php

In the graphics I added:

graphics/header.jpg

I also altered:

footer_back.gif
spotlight_back.gif
owner_block_back.gif

To install, download, unpack and upload to elgg/mod. Log in, go to Administration–>Tools Administration, then enable. The theme’s default spotlight has some customization hints,

I’m sure there are a few bugs and tweaks that I missed. I have not tested it with Internet Explorer. I would appreciate comments!

Update September 1, 2008:

This is a new version that eliminates the ability to collapse Spotlight and an error that occurred while trying to log on with Spotlight collapsed.

You can preview here. Download here.

Hints for hacking Elgg Themes.

Explanation of theme overrides in Elgg.

Tags: ,

Elgg developer Ben Werdmuller gave a very quick overview on how to create an Elgg 1.0 theme as a plugin. This approach has the advantage of leaving the core code intact. It is also handy because using the plugin system makes it easy to enable and disable themes within the Tool Administration interface.

The first step is to create a folder for your theme plugin:

/mynewtheme/

Within that folder create a blank text document entitled start.php. While not necessary, it is best to create a manifest.xml file in the same directory. This file gives a little information about your theme. Here is an example:

<?xml version=”1.0″ encoding=”UTF-8″?>
<plugin_manifest>
<field key=”author” value=”Steve O’Connor” />
<field key=”version” value=”1.0″ />
<field key=”description” value=”This is an alternative theme for elgg 1.0.” />
<field key=”website” value=”http://www.openedweb.com/” />
<field key=”copyright” value=”(C) Steve O’Connor 2008″ />
<field key=”licence” value=”GNU Public License version 2″ />
</plugin_manifest>

Now you should have:

/mynewtheme/
/mynewtheme/start.php
/mynewtheme/manifest.xml

The next step is to add a views directory and within that a default folder:

/mynewtheme/views/default/

You changes will all reside within that directory and any needed subdirectories.

If all you have done is taken the original css.php from elgg/views/default/ folder and hacked it as suggested in the previous post, you just pop your hacked css.php into your new theme:

/mynewtheme/views/default/css.php

Your changes can go beyond just altering the css.php. Let’s go back to the elgg core:

elgg/views/default/

Besides the css,php, there are other places one can edit. One such directory of particular interest is:

elgg/views/default/page_elements

It contains the following:

elgg_topbar.php
footer.php
header.php
owner_block.php
spotlight.php
title.php

Obvious places to edit include: elgg_topbar.php, footer.php, and header.php.

Once you are done editing any of these files, you need to place copies in your theme in a way that reflects the core view folder:

/mynewtheme/views/default/page_elements

Editing the elgg/views/default/pageshells/pageshells.php file would allow you to delete elements  (or add if you know how) to be displayed on the page. Again, save the edited file to your theme:

/mynewtheme/views/default/pageshells/pageshells.php

When you are done, you may have something like this:

/mynewtheme/
/mynewtheme/start.php
/mynewtheme/manifest.xml
/mynewtheme/views/default/css.php
/mynewtheme/views/default/page_elements/elgg_topbar.php
/mynewtheme/views/default/page_elements/header.php
/mynewtheme/views/default/page_elements/footer.php
/mynewtheme/views/default/pageshells/pageshells.php

Obviously, there are more modifications that can be made, but this gives everyone a starting point.

All that remains is to upload and activate the new theme. Use an ftp client to upload your new theme into the elgg/mods directory. Log in to Elgg as an administrator, Go to the Administration section and select Tools Administration. Click to enable your new theme. Now your changed files will override the core Elgg files.

That should get users started. You can do quite a bit by simply working with the css.php and packaging it as a plugin. I will continue to explore other options for customizing new themes.

Tags: ,

Now that Elgg 1.0 is released, administrators may want to distinguish their site for all the other installations. As of this writing, there are no Elgg1.0 themes available nor has the Elgg Documentation Wiki yet been updated with instructions on theme development. There are some quick and easy ways to significantly change the appearance of your site.

The first thing you need to do is grab your ftp client and access yourelggdirectory/views/default/css.php and open it in your text editor. This is the heart of the appearance of your Elgg site. Now that you are looking at the code, it’s time to start hacking. Make sure you are working on a copy of css.php. If you mess things up, you can always upload your backup and restore the original theme.

Where do you start? First of all, the file is well commented by the elgg developers. There are also some cool tools can be a lot of help. One great free tool is a Firefox Plugin called Web Developer. Once you install Web Developer you will see a new tool bar on your browser.

Click to enlarge

Click to enlarge

Look for the CSS button, click it and select “View Style Information.”

Now, as you mouse over elements of the page, Web Developer will display the CSS style information for that element, giving you a pretty good idea where to alter the code to change its appearance.

Note the element is outlined in red above and the styles impacting it displayed directly below the tool bar. A quick peak at the code under those divisions should quickly reveal which needs to be edited.

Some elements such as the background are based upon graphics:

body {
	text-align:left;
	margin:0 auto;
	padding:0;
	background: #4690d6;
	font: 80%/1.4  "Lucida Grande", Verdana, sans-serif;
	color: #333333;
	background: url(<?php echo $vars['url']; ?>_graphics/page_back_linen.gif) repeat left 1px;
}

In that case you have the option of finding another graphic, or in some cases simply replacing it with a color.

Another handy option is to use your find/replace command to change colors en masse. This css file makes it easy because around line 70, you will find:

70 /* ***************************************
  71 	DEFAULTS
  72 *************************************** */
  73
  74 /* elgg open source		blue 			#4690d6 */
  75 /* elgg open source		dark blue 		#0054a7 */
  76 /* elgg open source		light yellow 	#FDFFC3 */

These are color elements that repeat many times in the file. By choosing a replacement color appropriate for each of the three is a quick and easy way to make changes to the theme.

Once you have made your changes, you can overwrite the css.php file to see the results, but a better approach is to use the override system. Simply save the file as css.css and upload it to yourelggdirectory/_css. This way, you still have the default available to fall back on if things did not work out as expected. Please refer to this post on installing themes as plugins.

You may want to change a few elements at a time then upload and view results. There are also some really handy css editors out that give real time feedback. CSSEdit for the Mac makes this process even easier! I’m sure there is something similar on other platforms.

Another thing that you may want to change is the text within Spotlight at the bottom of pages. One option is to write plugins to populate Spotlight, but that is beyond the scope of this post. The other way to edit it is to go to yourelggdirectory/views/default/spotlight/default.php. The commenting makes it clear where to edit.

While this in all probability does not represent the full procedure for developing an Elgg theme, this information will help change the look of your installation. You can do so with very little knowledge of CSS, but of course, the more you know, the easier it will be to make more significant changes.

Tags: ,

In my previous post about Web publishing security, I proposed the following security matrix:

While this is an oversimplification of the options, I think it gives a framework for making decisions on what web publishing software to deploy, when to deploy it as well as how. As an illustration of how this framework can be used and the potential complexity, we will examine the popular multiple blog platform WordPress MU. Another reason is that we have deployed WPMU in the past and there has been some debate about how it should be used if it should be used at all.

Out of the box, WPMU has two options for access to content: Open to the world and open, but blocking search engines and archivers. It has four options for moderation: Unmoderated, Posts only moderated, comments only moderated, and both posts and comments moderated. With WPMU, then, our matrix looks like this:

As one can see, there are already eight potential options in terms of access to publishing and content. While all the content can be accessed by anyone in the world through both choices, blocking search engines and archivers would significantly reduce access unless one has a link, or goes to the site directly.

WPMU has a plugin that I discussed in an earlier post called More Security Options. This plugin offers three more content access options: Community members (all users with accounts on the WPMU installation), Blog (People who are at least subscribers of an individual blog), and Administrators (only the administrators of an individual blog). The security matrix with this plugin appears:

There are now 20 options in terms of publishing and content access! Arguable, there are even more. For example one could choose to allow unmoderated comments, but restrict comments to logged in members of a blog. Clearly there is enough flexibility in WPMU to accommodate a wide range of Web Publishing Policies.

It is up to school tech committees to consider the ramifications of all of these options in terms of security, audience, and ownership and weigh the pros and cons of each before committing to a particular configuration. Teachers can then decide within the constraints of the school web publishing policy which option best suits their class. Publishing student content to the web is not simply as choice of yes or no. There are several shades of gray. These are not the only considerations and options for deploying this software. For further discussion, refer to my other posts about WPMU for more information on managing and securing the software.

Tags: , , , ,

Team Elgg released their code for testing on August 8 through their Subversion repository. Naturally I grabbed the code and installed it on my server for a test run. This gave me a chance to look into the admin interface, as wells as help them identify bugs.

When the admin user logs in the view is much the same as the users’ interface with the exception of the Administration button on the navigation bar.

Once you click on the button, you are offered an overview of the site statistics and a left side menu of administrative options.

Click to enlarge

Site administration allows to to change many of the parameters that were requested in the installation such as Site Name, paths to data, language, etc.

Click to enlarge

Click to enlarge

The user administration Includes a link to add new users (highlighted in red), a field for a user search for users, and a list of users.

Click to enlarge

Click to enlarge

The main administrative functions with users can be access here, or on any other page by Clicking on and individual users or by mousing over and clicking the triangle on a user’s avatar–very handy and clever.

The options in red are those that appear to administrators only. Again, these options can be accessed through the avatar on any page, not just in the Users Admin Page.

The Tool Administration allows you to enable and disable plugins or tools for the site. Enabled tools are surrounded by a green rectangle.

Click to enlarge

Click to enlarge

By default, there are very few tools installed. Additional tools or Plugins must be installed via ftp to the elgg/mod folder before enabled through the admin interface. In my experience, most tools do not require configuration. Any configuration instructions are found in the README.txt within the plugin’s folder and done by editing code to specific files.

The final option displayed is the log browser, which was actually a tool that I enabled. This allows the admin to view any events that have ocurred giving options for filter display by users and by time periods by clicking “Refine results.”

Click to enlarge

Click to enlarge

Other administrative changes appear to be configured by editing the code. For example, the spotlight area at the bottom of each page is altered by editing elgg/views/default/spotlight/default.php (grep is your friend!).

Click to enlarge

Click to enlarge

That’s a general overview of the Elgg 1.0 Administrative Interface. In general it works and is intuitive. Much of what you will need to do from day to day as an admin is in the graphical user interface. Some other configuration must be done by editing code. The code is well commented making editing easier, and I anticipate more documentation coming on line soon. Meanwhile, it is easy enough to find which files to edit by using grep through ssh access.

Tags: ,

Out of the box, the open source portal Posh has administrative controls that make it appropriate for use in a K-12 school setting. An administrator can set the portal so that one must be logged in to view content. In addition, it may be set up so that any feeds must be moderated. By default, visitors cannot register an account. An administrator must create any accounts.

To force a log in to view content, and administrator needs to go to the configuration tab, then select “General Settings.” Simply check the option Portaneo starts with: login screen as indicated below:

Click to enlarge

Click to enlarge

Also of note on this page is the ability to use pseudonyms as opposed to email addresses. This is handy for teachers with students without email addresses.

By default, users can subscribe to any feed that they want. This may not be acceptable for a school setting. This is also easily changed. Again click the Configuration tab when logged in as an admin, then select “Personalize the users’ interface menus.” Simply uncheck “Users can add RSS feeds in their pages” and all feeds that students want to add must be submitted a widget and as such subject to administrative approval.

Click to enlarge

Click to enlarge

As you can see, Posh is simple to secure for use in the K12 school setting. On another note, Posh 2.0 is due to be released this month. I look forward to further refinements to the user interface as well as new features. This tool is definitely appropriate for school use.

Tags: , , , ,

I’ve been wracking my brains trying to formulate a comprehensive web policy for my PK-12 school. There are boiler-plates out there, but most don’t get into the subtlety and nuance of various new technologies. In my previous post It’s got to play in Peoria, I discussed some rationale for integrating Web 2.0 into our instruction. I also outlined some strategies for enhancing student safety: moderation and keeping access to published material limited.

The options I mention can be best displayed on this grid:

Moderated and unmoderated refer to control over publication of content. In a moderated environment, a student may submit something for publication that must be approved by an adult in terms of policy, appropriateness, and content, before it is actually published. Unmoderated means that the student can publish without approval.

Moderation has impact other than security, it affects the ownership that the creator has over the content.

When content is moderated, the user must wait for someone else has viewed and approved what they have done. This can delay the display of the materials resulting in less user satisfaction and reduces spontaneity. Students feel less ownership and empowerment.

Public and private represent an oversimplification of access to the content. At one end of the spectrum what is published is available to the world at large, including search engines and archives. On the other end, whatever is published can only be viewed by the creator.

The choices have consequences beyond security. They also impact the creator’s sense of audience.

Audience is an important motivation to create. It also makes the creator more mindful of quality. A volunteer working after school with a student told me how he wanted to show off his blog and how much more motivated he was to do a writing assignment because of it. Another very poor writer found her voice and the skills fell into place. Others just wrote more. A wider audience also increases opportunity for collaboration.  Private access, while safer, limits the audience and conteracts the benefits.

If access is further controlled by putting the data on an intranet rather than the Internet it is even safer. It may, depending upon how it is configured limits the students’ access to the content to the school setting making it unavailable from home and other places outside school.

These are a few parameters in web publishing policy that one might consider for student web publishing, as well as their consequences. Again, as we will see in future posts, these matrices represent gross over simplifications and that these dichotomies are more realistically represented with shades of gray.

Tags: , , ,

Elgg developers recently rolled out a new test installation of Elgg 1.0 with the new Friends features. Yesterday, they added the Groups. Between these features much has been added to controls over access to content.

Now friends includes the ability to create collections of friends from your list of friends. This allows you incredible flexibility in configuring access to any specific content that a user may create. These collections of friends then appear on the access control options when creating new content. For example, I created a collection of friends called “Elgg Developers” consists of Ben, Dave, and Pete. Now when I set access to a file I uploaded, for example, my access options include not only private, logged in users, and public, but also “Elgg Developers” or any other collection that I may have created.

Groups can also be created easily. Once created, a group has it’s own “Profile” page along with a forum and the option of creating additional pages for the group. Membership can be controlled just like access to a given file upload.

It looks like the features are coming together quickly now as we approach the August 18 release date. I see a robust, top-notch, open source, social network platform coming soon! I will post more details including screen shots shortly!

Tags: , ,

Elgg just posted an August 18 release date for Elgg 1.0. Elgg core developers have been beleaguered by requests for releases and release dates for several days. I know some of the developers that have worked with Elgg in the past have had the code about a week and are making progress squashing bugs. Hopefully this will help clear the air.

Click to enlarge

Click to enlarge

There are also indications that some new features will appear when they update their test site in the near future. Core developer Ben Werdmuller stated that the site would soon feature groups and friends collections with an upcoming upgrade. Currently on the test installations users can set access to their content to:

  • Public
  • Logged in users
  • Private

This upgrade will give users the ability to add various friends collections and groups to these options giving incredible flexibility with access control. Once we see these features, we should have much more insight into the workings of Elgg 1.0. Here’s a link to what Ben says about access control.

I’ll have screenshots and an overview of the features as possible.

The Elgg Blog is also a great source of information about this upcoming release.

Tags: , ,