All posts in “CMS”

LimeSurvey – an open-source survey/quiz tool

LimeSurvey - open-source survey and quiz tool

With so many LMS (Learning Management System) to pick from lately, sometimes we tend to choose not quite the best one for our needs. Of course since we absolutely love open source virtual platforms we consider mostly presenting just tools that fits this area. Today we are going to write about an open source platform called LimeSurvey. LimeSurvey is a perfect tool for creating surveys and quizzes and of course it’s free and open source.


  • Unlimited number of surveys at the same time
  • Unlimited number of questions in a survey (only limited by your database)
  • Unlimited number of participants to a survey
  • Multi-lingual surveys
  • User-management
  • 28 different question types with more to come
  • WYSIWYG HTML editor
  • Quotas management
  • Integration of pictures and movies into a survey
  • Creation of a printable survey version
  • Conditions for questions depending on earlier answers (Skip Logic / Branching)
  • Piping and Micro-tailoring using a powerful expression engine
  • Re-usable editable answer sets
  • Ready-made importable questions
  • Assessment surveys
  • Anonymous and Not-Anonymous survey
  • Open and closed group of participant surveys
  • Optional public registration for surveys
  • Sending of invitations, reminders and tokens by email
  • Option for participants to buffer answers to continue survey at a later time
  • Cookie or session based surveys
  • Template editor for creating your own page layout
  • Extended and user-friendly administration interface
  • Back-office data entry possibility
  • Survey expiry dates for automation
  • Enhanced import and export functions to text, CSV, PDF, SPSS, R, queXML and MS Excel format
  • Basic statistical and graphical analysis with export facility
  • Screen Reader Accessiblity
  • W3C compliance
  • Supporting more than 50 different languages in frontend and backend
  • A detailed manual is available in several languages in our Online Manual
  • WordPress integration (SurveyPress)
  • Drupal integration (LimeSurvey Sync)

Areas of application

  • Ordinary marketing surveys
  • Psychological tests
  • Customer satisfaction surveys after buying from an online shop
  • General data collection for example by phone at call centers
  • Quality management (inter alia in the field)
  • Query of candidate qualifications
  • Order Form for Product Samples
  • Invitation management for events (“I come with X people, we would like to eat Y and Z need overnight accommodations)
  • Theory test for Driving School
  • Review of lectures at universities
  • Event tool like for college fests

We can confidently say that this open source virtual system is one of our favorite picks when it comes to building a survey or quiz.

Incoming search terms:

Magento: Display related products block on checkout step

Related products in cart - Magento

Let’s show some love for the Magento developers with a quick but really useful tip: How to display a related products block on checkout step, or more precisely how to a show related products block on the cart view (first step of the checkout process).

1.) Edit the cart.phtml file located at /app/design/frontend/your_template/default/template/checkout

2.) Find getChildHtml(‘crosssell’) ?>

3.) Add the following code right before:

<!-- Related products block START -->
	$array_added_product = array();
	$total_product= "";
	$last_product= "";

<?php foreach($this->getItems() as $_item):
<?php endforeach ?>

	//echo "<br>".$total_product;
	if($total_product > 0){

	$nProducts = $total_product;
	$_product = Mage::getModel('catalog/product')->load($total_product-1);
	$ids = array();
		while ((count($ids) < 5) && ($nProducts > 0)){
			$nProducts --;
			$_product1 = Mage::getModel('catalog/product')->load($last_product);

			if (!$_product1->hasRelatedProductIds()) {
				foreach ($_product1->getRelatedProducts() as $product) {
					if (count($ids) < 5) $ids[] = $product->getId();
					else break;

<?php $product_per_row=5; //how many product show in a row ?>

<table width="100%" align="center" cellpadding="0" cellspacing="0" style="margin-bottom:10px; border:1px solid #dbdbdb;">
	<td  width="100%" align="left" valign="middle" colspan="<?php echo $product_per_row; ?>">Related Items</td>

foreach ($_product->getData('related_product_ids') as $r_productid) {
$_product = Mage::getModel('catalog/product')->load($r_productid);

<?php if(($product_counter%$product_per_row)==0){ ?>
<?php } ?>

<td valign="top" style="padding:15px;" width="21%">
		<a href="<?php echo $_product->getProductUrl() ?>" style="text-decoration:none;margin-left:30px;text-align:center;">
		<img src="<? echo Mage::helper('catalog/image')->init($_product, 'thumbnail')->resize(50, 50); ?>" alt="<?php echo $this->htmlEscape($_product['name']); ?>" border="0" width="50" />
		<a href="<?php echo $_product->getProductUrl() ?>" style="text-decoration:none; font-size:11px; color:#0076a3; font-weight:bold; text-align:left; ">
		<br />
		if (strlen($this->helper('catalog/output')->productAttribute($_product, $_product->getName(), 'name')) > 32) {echo substr($this->helper('catalog/output')->productAttribute($_product, $_product->getName(), 'name'),0,32)."...";}
		else echo $this->helper('catalog/output')->productAttribute($_product, $_product->getName(), 'name');
		<div style="font-size:11px; color:#6b6a6a; font-weight:bold; text-align:left;margin-top:7px;">
		List:<?php $price_mine= (float) $_product->getPrice();
		$price_mine= number_format($price_mine,2);
		<?php echo "$". $price_mine; ?>
		<div style="font-size:11px; color:#ff5907; font-weight:bold; text-align:left;">
		Our Price:<?php $final_price= (float) $_product->getFinalPrice();
		$final_price= number_format($final_price,2);
		<?php echo "$". $final_price; ?>
		<div style="margin-top:7px; text-align:left; font-size:11px !important;text-decoration:underline;color:#959595;">
		<a href="<?php echo $_product->getProductUrl() ?>" title="more info">more info</a>
<?php } ?>
<?php } ?>
<!-- Related products block END -->

Of course you can always alter the code to achieve what you exactly want. And before rushing to refresh the page to see if the code snippet works double check if the products added to the cart have any related items configured.

Good luck, share this article if you find it useful and stay tunned for more CMS goodies!

Incoming search terms:

7 open source e-Learning CMS platforms


Hello CMS fans! Today we gonna present you 7 open source e-Learning CMS platforms which can be handy for your school, institution or even if you are a freelancer professor. The possibilities are endless so enjoy this round-up and for any questions, reviews or mentions use the comment section of this article.

1. eFront

eFront is a product of cutting-edge technology, ready to satisfy your needs and help your organization be more efficient and more productive. You will discover new ways to perform educational tasks easier and faster, while keeping your people in shape. In short, eFront is an easy to use, visually attractive, SCORM compatible, eLearning and Human Capital Development system.

Quick feature highlight:

  • Easy to use: eFront was build from the scratch with the end user in mind. You will find it rather natural to get used to its interface where most options are self-explenatory.
  • Visually attractive: building the most beautiful eLearning tool.
  • Technologically advanced: eFront is an Ajax enabled, Unicode, LDAP and SCORM supporting, multilingual eLearning platform.
  • Pedagogical concepts: Integrated to eFront are sound pedagogical concepts that guide users and keep them motivated.
  • Open Source: eFront is offered as an open source software. Download it for free, customize it to your needs, add new functionalites and share them with the community. Although distributed as free software, eFront is being supported by a professional team of highly skilled developers.
  • Complete: eFront includes a wide variety of components that help you create your lesson structure and add content, build online-tests, communicate with others, track users history and progress, conduct surveys, assign projects, and create certifications. And this list just scratches the surface of the system.


2. Moodle

Moodle is an Open Source Course Management System (CMS), also known as a Learning Management System (LMS) or a Virtual Learning Environment (VLE). It has become very popular among educators around the world as a tool for creating online dynamic web sites for their students. To work, it needs to be installed on a web server somewhere, either on one of your own computers or one at a web hosting company.

The focus of the Moodle project is always on giving educators the best tools to manage and promote learning, but there are many ways to use Moodle:

  • Moodle has features that allow it to scale to very large deployments and hundreds of thousands of students, yet it can also be used for a primary school or an education hobbyist.
  • Many institutions use it as their platform to conduct fully online courses, while some use it simply to augment face-to-face courses (known as blended learning).
  • Many of our users love to use the activity modules (such as forums, databases and wikis) to build richly collaborative communities of learning around their subject matter (in the social constructionist tradition), while others prefer to use Moodle as a way to deliver content to students (such as standard SCORM packages) and assess learning using assignments or quizzes.


3. ATutor

ATutor is an Open Source Web-based Learning Content Management System (LCMS) designed with accessibility and adaptability in mind. Administrators can install or update ATutor in minutes, develop custom templates to give ATutor a new look, and easily extend its functionality with feature modules. Educators can quickly assemble, package, and redistribute Web-based instructional content, easily retrieve and import prepackaged content, and conduct their courses online. Students learn in an adaptive learning environment.

ATutor is the first inclusive LCMS, complying with the W3C WCAG 1.0 accessibility specifications at the AA+ level, allowing access to all potential learners, instructors, and administrators, including those with disabilities who may be accessing the system using assistive technologies. Conformance with W3C XHTML 1.0 specifications ensures that ATutor is presented consistently in any standards compliant technology.

ATutor has also adopted the IMS/SCORM Content Packaging specifications, allowing content developers to create reusable content that can be swapped between different e-learning systems. Content created in other IMS or SCORM comformant systems can be imported into ATutor, and visa versa. ATutor also includes a SCORM 1.2 Runtime Environment (LMS RTE3) for playing and managing SCORM based Sharable Content Objects (SCOs).


4. Docebo LMS

DoceboLMS is an open-source software package for e-learning (LMS – Learning Management System and LCMS – Learning Content Management System), entirely created and developed by Docebo Srl. The program, which is released under a GPL license, has no licensing costs.

Today, thanks to its “multi-model didactic” approach, the program is one of the most used and appreciated open-source platforms at an international level; the possibility of personalising the didactic model to the client’s needs makes DoceboLMS a sophisticated and flexible but, most of all, simple platform that can be configured for different environments that use different didactic models: large companies in the sectors of finance and insurance, health, government, universities and schools.

DoceboLMS makes it extremely easy to construct the didactic content of lessons and teachers are free to reuse files that they already have (Powerpoint, Word, PDF, film clips, etc). Users can also be managed by groups or categories and it is also possible to personalise the graphic environment for subgroups of users.

Key features:

  • User registration by administrator, moderated or free
  • User management through groups, roles or organization tree
  • Additional fields for better user cataloguing
  • Competence management module and gap analysis
  • Course and curricula management system
  • Standard and customized multilevel report
  • Generation and printing of PDF certificates
  • Track monitoring and SCORM 1.2 and 2004 support
  • Administrator management and profiling
  • Didactic multimodel support (Cognitivism, constructivism and blended learning)
  • Export report in Excel format and others, report scheduling for automatic sending
  • Third party software/services interfacement
  • Third party software/services import and export data
  • Web authoring
  • Pre-assessment and Post-assessment management
  • Multitemplate and Multidomain layout customization (support LTR and RTL)
  • Web browser only based, multibrowser compliance, no plugins required
  • Internal search engine for content library
  • Course catalog
  • Automatic course subscription based on company role, group or tree position
  • User registration or subscription through codes or cards
  • Browser compatibility: Explorer (6,7,8,9), Chrome, Firefox, Safari
  • Operating systems: Windows (XP, Vista, 7), Linux, Mac


5. Open Conference Systems

Open Conference Systems (OCS) is a free Web publishing tool that will create a complete Web presence for your scholarly conference. OCS will allow you to:

  • create a conference Web site
  • compose and send a call for papers
  • electronically accept paper and abstract submissions
  • allow paper submitters to edit their work
  • post conference proceedings and papers in a searchable format
  • post, if you wish, the original data sets
  • register participants
  • integrate post-conference online discussions

The demo account credentials are: username – admin; password – testdrive



General features:

  • Course and Group Management
  • Personal Desktop and Repository
  • Forums, Chat, Wikis
  • Content authoring
  • SCORM 1.2 and 2004 support (certified)
  • Test & Assessment
  • Survey
  • Exercises
  • LDAP, CAS, Shibboleth, DB, SOAP authentication
  • WebDav support
  • Plugins
  • SOAP Webservices
  • Google Maps



OLAT is an open source Learning Management System offering a flexible online course system along with extensive features to guarantee learning and teaching independent of time and place. It has been created especially for public institutions such as universities, academies or colleges, however, it is also suitable for other businesses since OLAT can easily represent any didactic concept or be used in any kind of learning environment.

OLAT means ‘Online Learning And Training’ and is a Learning Management System (LMS) based on the open source model. It has been developed modularly as well as course-based to offer you a maximum of flexibility and didactic freedom as respects the preparation of learning contents. By means of a vast user and group management on the one hand and a multitude of collaborative tools on the other it is possible to realize any teaching scenario without restriction.

Apart from a flexible course system OLAT also comprises various course-independent as well as course-comprehensive features. This includes particularly a general management of learning resources including indexing as well as the provision of editor tools to create courses, tests, and questionnaires.


Incoming search terms:

Review: Collabtive – web-based project management

Collabtive Project Management_review

If you are a member of a web development team or you coordinate a group or simply you are just a freelancer you probably use a project management software. Some of them can be very heavy if we talk about UI/UX so for those who think about a change or if you just haven’t picked one yet here is our staff pick for this topic: Collabtive.


Collabtive is web-based project management software. The project was started in November 2007.  It is Open Source software and provides an alternative to proprietary tools like Basecamp. Collabtive is written in PHP and JavaScript.

Why our favorite? Best interface between all (open source/free) platforms, easy to customize (PHP/JS), great features, straight forward and of course it’s open source.


  • Unlimited projects, milestones, tasklists, and tasks
  • Unlimited members with user profiles
  • Role-based permission management
  • Messaging and instant messaging
  • File management
  • Timetracking
  • Timetracker reports, activity logs and messages in PDF format
  • Export user profiles as vCard
  • RSS feeds for messages and tasks
  • Synchronization of calendars via iCal task export
  • Excel files from activity logs and timetracker reports
  • E-mail notifications
  • Search, tags
  • Basecamp import
  • Fully themeable
  • Available in more than 30 languages
  • Full UTF8 support


Incoming search terms:

WordPress plugin template: Shortcodes Toolbox

Wordpress plugin template shortcodes toolbox

WordPress is one of the web’s most beloved and used CMS platform. And we cannot agree more with this,… why? It’s easy to use, great free themes, huge support community and the best of them, it’s open source. For those who are not so familiar with WP, or maybe they need just another reason to switch to WP, WDC brings you an exclusive tutorial/freebie.

In this article we will try to explain the process of creating a WordPress plugin and also give you an exclusive plugin template freebie on which you can work, extend the plugin according your needs or use it for learning purposes. In the tutorial part we will cover a simple yet very useful topic called “shortcodes”. We all love those quick tags right? They make our publisher life easier so why not to built a custom plugin, personalized for our needs.

For an easier comprehension of the process we will name this base plugin “Shortcodes Toolbox”. Enjoy and share this article!

1. Plugin presentation and file structure

Introduced in WordPress 2.5 is the Shortcode API, a simple set of functions for creating macro codes for use in post content. ”Shortcodes Toolbox” allows you to add shortcodes into WordPress pages and/or post using short tags. Add buttons, links, related posts etc. without any HTML or CSS knowledge.

Let’s dive into it: Firstly we need to create the file structure. Create  a directory called shortcodes-toolbox. In this directory create a file called shortcodes-toolbox.php.

2. Basic plugin information and format

In order to proceed creating a WordPress plugin we need to keep in mind some basic rules. The most important step is adding the plugin information. Edit the previously created shortcodes-toolbox.php file and add the following lines:

<?php /*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A license name e.g. GPL2
If you wish to publish the plugin on the official repository too you will need to follow some guidelines. For more information follow this link. For personal use, these are all the steps you need to make to have a functional plugin.


3. Functions and WP path definitions

It’s time to get into some PHP coding. First we need to define the WP paths and any CSS or JS files we intend to use. To have an example let’s create a file called style.css and place it into a directory called css (located in the main directory we created in the first step). So we end up with a file structure like shortcodes-toolbox/css/style.css
Let’s continue with the shortcodes-toolbox.php file editing and more precisely let’s add the WP paths. Add the following lines:
define('WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
define('WP_CONTENT_DIR', ABSPATH . 'wp-content');
define('WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins');
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');

class STbox {
function cssStyles() {
$stPath = WP_PLUGIN_URL.'/'.plugin_basename(dirname(__FILE__)).'/styles/'.'/';
echo ' 			'."\n";

4. Plugin functionality

We can call this the heart of the plugin: the functionality part. To keep it dead simple let’s add some basic functionality like links, custom download buttons (styled via CSS) and a related posts feature. Keep in mind that these are just some basic examples and you have the freedom to add anything you like, or modify it according you needs.

Now let’s add some more PHP sparkle into the shortcodes-toolbox.php file:

/* Simple URL function */
function URL($atts, $content = null) {
		"url" => 'http://'
	), $atts));
	return '<a href="'.$url.'">'.$content.'</a>';

/* Download button function, with multiple style posibilities (via CSS) */
function DownloadButton($atts, $content = null) {
		"url" => 'http://',
        "color" => ''
	), $atts));
	return '<a href="'.$url.'">'.$content.'</a>';

/* Related posts function */
function RelatedPosts( $atts ) {
	    'limit' => '5',
	), $atts));

	global $wpdb, $post, $table_prefix;

	if ($post->ID) {
		$retval = '<ul>';
 		// Get tags
		$tags = wp_get_post_tags($post->ID);
		$tagsarray = array();
		foreach ($tags as $tag) {
			$tagsarray[] = $tag->term_id;
		$tagslist = implode(',', $tagsarray);

		// Do the query
		$q = "SELECT p.*, count(tr.object_id) as count
			FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id  = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
				AND p.post_status = 'publish'
				AND p.post_date_gmt < NOW()
 			GROUP BY tr.object_id
			ORDER BY count DESC, p.post_date_gmt DESC
			LIMIT $limit;";

		$related = $wpdb->get_results($q);
 		if ( $related ) {
			foreach($related as $r) {
				$retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
		} else {
			$retval .= '
	<li>No related posts found.</li>';
		$retval .= '</ul>';
		return $retval;

We are now with the core file of this plugin. Save everything and open-up the style.css file.

6. CSS styling

In order to have some pretty download buttons we need to add some CSS styling. Open the style.css file and add the following lines:

.green a:link, .green a:visited{
text-decoration:none !important;

.black a:link, .black a:visited{
text-decoration:none !important;

.green a:hover, .black:hover{
text-decoration:none !important;

.green {
display: inline-block;
background : -webkit-gradient(linear, left top, left bottom, from(#88c841), to(#73b338));
background : -moz-linear-gradient(center top, #88c841, #73b338);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding: 5px 20px;
text-align: center;
-shadow: 0px 1px 0px #6c0909;
color:#ffffff !important;
text-decoration:none !important;

.green:hover {
background : -webkit-gradient(linear, left top, left bottom, from(#73b338), to(#88c841));
background : -moz-linear-gradient(center top, #73b338, #88c841);
color:#ffffff !important;
text-decoration:none !important;

.black {
display: inline-block;
background : -webkit-gradient(linear, left top, left bottom, from(#000000), to(#414141));
background : -moz-linear-gradient(center top, #414141, #000000);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding: 5px 20px;
text-align: center;
-shadow: 0px 1px 0px #6c0909;
color:#ffffff !important;
text-decoration:none !important;

.black:hover {
background : -webkit-gradient(linear, left top, left bottom, from(#414141), to(#000000));
background : -moz-linear-gradient(center top, #000000, #414141);
color:#ffffff !important;
text-decoration:none !important;

7. Installation and testing

We are good to go. Let’s try the newly created plugin. Create a zip archive of the main directory shortcodes-toolbox and upload it via your WPs administration panel (Plugins->Add new). After the installation is successful create a new post or page and add the following lines to test out the plugin:

[DownloadButton url="" color="green"]Download Google Chrome[/DownloadButton]
[DownloadButton url="" color="black"]Download Google Chrome[/DownloadButton]
[link href=""]Yahoo[/link]

Save the post and voila. We have two shiny download buttons and a simple link. Everything added via shortcodes.

We hope you enjoyed this quick tutorial and don’t forget to download the source files too. For any questions don’t hesitate to use the comment section and be sure to share this article with your perks. Have fun and stay tuned for more great articles!

Incoming search terms: