Extension:AjaxRatingScript

From MediaWiki.org

Jump to: navigation, search

               

Manual on MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
Ajax RatingScript Unobtrusive

Release status: beta

Ratingscript.gif
Implementation  Page action, Ajax
Description Ajax script with 2 to 10 stars Review/Rating possibilities
Author(s)  User:Dynasource
Last Version  2.0 (2007-09-13)
MediaWiki  1.10.1, 1.11, 1.14
License GPL Licence
Download Version 2
Version 1.x
Example  Live Example

check usage (experimental)

Extension:AjaxRatingScript is a social rating extension.

Contents

[edit] AjaxRatingScript V2 tested on different versions of MediaWiki

  • MediaWiki 1.15 - Working
  • MediaWiki 1.14 - Working
  • MediaWiki 1.6.12 - error: unexpected T_OBJECT_OPERATOR in RateArticle.php on line 21: if $wgArticle->getTitle()->mNamespace != 0) return $out;

[edit] Installation

For installation of version 1.x follow instructions on http://www.leerwiki.nl/How_to_get_rating_script_work
For older versions of MediaWiki try this link or check the instructions at the end of the RateArticle.php V2 file.

For installation of version 2:

  • Create the RateArticle.php (www.leerwiki.nl - author's site) file and include it in your mediawiki extensions directory
  • Set the $pathToRating variable in RateArticle.php according to your mediawiki path
  • Download the Unobtrusive AJAX Star Rating Bar files to your mediawiki extensions/Ratings folder
  • Edit _config-rating.php in the extensions/Ratings folder according to your database user settings
  • Add the usual line to the end of your LocalSettings.php:
require_once("$IP/extensions/RateArticle/RateArticle.php");
  • Create the table ratings in your mediawiki db
CREATE TABLE `ratings` (
`id` varchar(11) NOT NULL,
`total_votes` int(11) NOT NULL DEFAULT '0',
`total_value` int(11) NOT NULL DEFAULT '0',
`used_ips` longtext,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
  • TADAA

The script's code is not prepared to be invoked from any other directory than where it is placed, so you'll need to adjust some values to make it work on your MediaWiki implementation transparently:

  • _config-rating.php: Update your MySQL connection info.
  • _drawrating.php: Prefix your MW full path to db.php. In my case, it would be /mediawiki/extensions/Ratings/db.php
  • js/rating.js: Prefix your MW full path to rpc.php. In my case, /mediawiki/extensions/Ratings/rpc.php

In order to translate the script to other language you'll have to work with: _drawrating.php, js/rating.js, db.php and rpc.php.



[edit] RateArticle.php V2

<?php
require('Ratings/_drawrating.php'); 
if ( ! defined( 'MEDIAWIKI' ) )
	die();
 
$wgExtensionCredits['parserhook'][] = array(
'name' => 'AJAX RATING BAR V2 14-07-2007 Based on Masugadesign',
'author' => 'Boudewijn Vahrmeijer',
'url' => 'http://www.leerwiki.nl',
'version' => '1.11,1.10.1/1.9.3/1.9.2/1.8.2',
'description' => 'Ajax Rating Bar for MediaWiki',
);
 
$pathToRating='/mediawiki/extensions/Ratings/';
 
 
$wgHooks['BeforePageDisplay'][] = array("wfRateArticleForm");
function wfRateArticleForm(&$out) {
	global $wgArticle,$pathToRating;
	if ($wgArticle == null) return $out;	
	if ($wgArticle->getTitle()->mNamespace != 0) return  $out;
 
	$out->mBodytext.='<script type="text/javascript" language="javascript" src="'.$pathToRating.'js/behavior.js"></script>';
	$out->mBodytext.='<script type="text/javascript" language="javascript" src="'.$pathToRating.'js/rating.js"></script>';
	$out->mBodytext.='<link rel="stylesheet" type="text/css" href="'.$pathToRating.'css/rating.css" />';
	$out->mBodytext.=rating_bar($wgArticle->getID(),5);
 
	return $out;
}
 
$wgExtensionFunctions[] = 'setupSpecialToprating';
function setupSpecialToprating() {
    global $IP, $wgMessageCache;
    require_once($IP.'/includes/SpecialPage.php');
    SpecialPage::addPage(new SpecialPage('RatingOverview', '', true, 'spTopList', false));
 
    # Messages used in this extension
$wgMessageCache->addMessage('ratingoverview', 'A Top Rating Overview');
}
 
function spTopList() {
    global $wgOut, $wgParser, $wgUser;
require('Ratings/_config-rating.php');
$result=mysql_query("SELECT * FROM $rating_dbname.$rating_tableName ORDER BY total_value DESC")or die(" Error: ".mysql_error());
 
$i='<table border="1" style="border:1px;border-color:black;">
<tr><td>Position</td><td>Title</td><td>Value</td><td>Total Votes</td></tr>';
 
while ($row = mysql_fetch_assoc($result)) {
 
#####FOR VERSIONS 1.11 #################:
    $title=Title::newFromID($row["id"]);
 
#####FOR LOWER VERSIONS AS 1.93
//	 $atitle=Title::newFromID($row["id"]);
//	 if(is_object($atitle)){
//	    $title=$atitle->getIndexTitle();
//		}
 
#######################################
    if(!$title==''){
    $a=$a+1;
    $i.= '<tr><td>'.$a.'</td>';
    $i.= '<td>[['.$title.']]</td>';
    $i.= '<td>'.$row["total_value"].'</td>';
    $i.= '<td>'.$row["total_votes"].'</td></tr>';
    }
}
$i.='</table>';
 
$wgOut->addWikiText($i);
 
}
?>

[edit] Who's using it?

Please add your working-wiki here!

Creator:

Users:

[edit] See Also