Strict Standards: Declaration of action_plugin_discussion::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/opinian/public_html/wiki/lib/plugins/discussion/action.php on line 16

Strict Standards: Declaration of action_plugin_translation::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /home/opinian/public_html/wiki/lib/plugins/translation/action.php on line 90

Strict Standards: Declaration of cache_instructions::retrieveCache() should be compatible with cache::retrieveCache($clean = true) in /home/opinian/public_html/wiki/inc/cache.php on line 289

Warning: Cannot modify header information - headers already sent by (output started at /home/opinian/public_html/wiki/lib/plugins/discussion/action.php:16) in /home/opinian/public_html/wiki/inc/auth.php on line 295

Strict Standards: Only variables should be passed by reference in /home/opinian/public_html/wiki/doku.php on line 71

Warning: Cannot modify header information - headers already sent by (output started at /home/opinian/public_html/wiki/lib/plugins/discussion/action.php:16) in /home/opinian/public_html/wiki/inc/actions.php on line 154
implementing_javascript_module [Opinian API]
 
Translations of this page:

Implementing JavaScript module

First, you have to put Opinian Cross-domain communication messenger file on your server.

Depending on what server side programming language you use, copy appropriate file to your server (.asp, .php, …).
Download it here opinian_xdm_receiver


After that, you have to include Opinian javascript library file. The beginning of your <BODY> tag is a good place for that.

<script src="http://www.opinian.com/js/OpinianApi.js" type="text/javascript"></script>


Then you have to call init method of Opinian class to init your application with second argument representing relative path to the Opinian Cross-domain communication messenger you downloaded:

<script>
	Opinian.init("my_api_key", "/opinian_xdm_receiver.php");
</script>


And that's it! You are ready to call methods for Opinian user actions!


Very basic whole example could look something like this:

<?php
	include_once 'OpinianApi/OpinianApi.php';
	$Opinian = new Opinian("my_api_key", "my_secret_key", true);
?>
<HTML>
<HEAD>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</HEAD>
<body>
	<script src="http://www.opinian.com/js/OpinianApi.js" type="text/javascript"></script>
<?php
	$item = $Opinian->getItem(array("slug"=>"paris-hilton", "category_id"=>323));
	if (!empty($Opinian->last_error))
		die($Opinian->last_error);
 
        echo "<DIV id='item_title'>";
		echo $item['Item']['title'];
	echo "</DIV>";
 
	echo "<DIV id='main_rating'>";
		echo "General rating is: ".round($item['Item']['rating_sum']/$item['Item']['rating_count'], 2);
	echo "</DIV>";
?>
Rate: 
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':1}, update_div);">1</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':2}, update_div);">2</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':3}, update_div);">3</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':4}, update_div);">4</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':5}, update_div);">5</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':6}, update_div);">6</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':7}, update_div);">7</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':8}, update_div);">8</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':9}, update_div);">9</a>
<a href="#" onClick="Opinian.call('items.rate', {'item_id':<?php echo $item['Item']['id']; ?>, 'rating_category_id':0, 'rating':10}, update_div);">10</a>
 
<script>
	Opinian.init("my_api_key", "/opinian_xdm_receiver.php");
 
	function update_div(json_str)
	{
		results = eval("(" + json_str + ")");	
		var general_rating = document.getElementById("main_rating");
		if (results.rating_count > 0)
			general_rating.innerHTML = "General rating is: " + Math.round(results.rating_sum/results.rating_count*100)/100;
		else
			general_rating.innerHTML = "General rating is: 0";
	}	
</script>
 
</body>
</HTML>


It will produce the simple page like this:

Paris Hilton
General rating is: 6
Rate: 1 2 3 4 5 6 7 8 9 10

More complex example with general rating and all other ratings with stars and boxes can be found here.
opinian_api_ratings_example.zip

 
implementing_javascript_module.txt · Last modified: 2010/01/09 14:32 by edi
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Strict Standards: Only variables should be passed by reference in /home/opinian/public_html/wiki/doku.php on line 79