22

Kudos – Open Source GetKudos Alternative

Easiest way to manage testimonials

Kudos makes it easy for you to manage testimonials via multiple sources like Facebook, Twitter, Zendesk and forms. Kudos is a PHP based testimonials management script with many time saving features!

Features

1. Automated Source Pulling

There are multiple sources from which you can pull testimonials into Kudos; I have added the most common sources so that management is extremely simple and quick. Once setup, a team member will take only 5-10 minutes a week to quick accept/reject testimonials. Although most source pulling is automatic, every testimonial must go through a manual acceptance/rejection to ensure only the best testimonials appear on your site.

Multiple Sources for Testimonials

Source: Twitter
– Automatically pull latest Twitter posts talking about your product/service
– Manually decide to showcase it to the world

Source: Facebook
– Automatically pull latest Facebook posts talking about your product/service
– Manually decide to showcase it to the world

Source: Zendesk
– Automatically pull latest Zendesk customer satisfaction reviews
– Manually decide to showcase it to the world

Source: App Store
– Manually add apps from the App Store (not reviews)
– Automatically pulls app information (icon & description)

Source: Form
– Manually (or via API) add entries into Kudos

Source: Showcase
– Manually highlight key clients (logo & name)

2. Team

You can add multiple team members to Kudos and enable them to accept/reject posts.

Manage Team Members

There are three different user roles.

User Role: Member
A member can only add entries into Kudos but cannot make them live.

User Role: Manager
A manager can add entries as well as make them live.

User Role: Administrator
The administrator can do all of the above + manage teams + add new sources. The administrator can restrict access to certain sources as well for each member/manager.

3. Posts

Posts - Managing Testimonials

Posts is where all the magic happens. On the left side you will be able to see all the channels (i.e. sources) you have access to. For each source there are 3 tabs- Live, Inbox & Add.

Live
These posts (i.e. testimonials) are live and visible to public.

Inbox
These are the incoming posts and need moderation. You can edit them, hide them or make them live.

Add
For certain sources like Form & Showcase, the input is manual. So you will have to manually add an entry. However, for sources like Twitter, Zendesk and Facebook, it is automatic; so no entry is required.

4. Displaying Testimonials

Displaying testimonials requires a little bit of PHP experience. This is because the output is via API only. In future releases, I will write a method to show it directly using Javascript. But for now, it’s via API.

Add the following two functions to your code:


define('KUDOS_URL','URL_WITH_TRAILING_SLASH');
define('KUDOS_API','API_KEY_MENTIONED_IN_CONFIG_FILE');

function kudos($url, $data) {
    $params = '';
	foreach ($data as $key => $value) {
		$params .= $key.'='.$value.'&';
	}

	$params = trim($params, '&');

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
		curl_setopt($ch, CURLOPT_URL, KUDOS_URL.$url.'/'.KUDOS_API.'?'.$params);
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
		curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		$output = curl_exec($ch);
		curl_close($ch);
		$decoded = json_decode($output);

		return $decoded;
}

function kudos_post($url, $data) {
    $params = '';
	foreach ($data as $key => $value) {
		$params .= $key.'='.urlencode($value).'&';
	}

	$params = trim($params, '&');

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
	curl_setopt($ch, CURLOPT_URL, KUDOS_URL.$url.'/'.KUDOS_API.'?'.$params);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
	curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);
	$output = curl_exec($ch);
	curl_close($ch);
	$decoded = $output;

	return $decoded;

}

The first function is to pull results and the second function is to send posts (e.g. for manual entry).

Once this is done, you can pull results using the following function:

$testimonials = kudos('posts',array('id'=>KUDOSID,'limit'=>'50', 'offset'=>'0', 'orderby' => ''));

The KUDOSID will have to be manually found out. In Posts section (in Kudos), you can see the links with the ID (the number after the last / in the URL). Once you have the data, you can iterate through the array and display it wherever you like on your site. Since all the processing is done at PHP level, the code is super SEO friendly (unlike some Javascript).

Requirements
1. PHP 5+
2. mySQL

Download

Kudos is hosted at GitHub

Getting Started

Download and follow the instructions in install.md file

Next Steps

Feel free to contribute to the code. I have added some next steps in the todo.md file. Eventually I will create a testimonials plugin for WordPress.

Comments/Suggestions?
Do let me know your suggestions on how we can improve this code or any other features you would like to add.

Spread The Word
If you like what you are reading, then please help spread the word by re-tweeting, blogging or using the ShareThis button below. Thank you.


817 Words
1722 Views