The Content Voting plugin encourages good content, not just content, on your Wiki. It allows users to vote pages and comments up or down. Each page, comment and user then logs an overall score indicating whether people liked and found that content useful.
It provides a social mechanism to encourage positive use of your wiki.
Encourage good content, not just content, on your Wiki
Allow users to vote pages and comments up or down. Each page/comment then logs an overall score, with that and the split of votes up/down being displayed.
Save time and focus on the good stuff in your Wiki
Users can set a threshold at which to show/hide comments on a page. Don't waste time reading through all comments on a page - have the crowd save you time and only read the interesting comments.
Reward the champions, contributors and gnomes in your Wiki, and fend off the trolls
Individuals have an aggregated score based on the votes made on content they have created. This provides a visible indication of the contribution that user has made to the Wiki - a social mechanism to encourage positive use of it.
You're in control
You can customise the voting controls easily with CSS and embed scores within pages and themes.
Enable page and comment voting individually, on a per-space or global basis
With Advanced Search plugin integration you can customise the output - Want to show all user scores or perhaps just the the Top 10 users or content? It's up to you. You can display whatever results you like in the way that you like.
Set a default comment threshold for your end-users
Prices in US Dollars, excluding VAT. Plugin license sizes need to match your Confluence license size.
Places the the voting controls on a page, comment or blog post. This macro is designed to be used as part of a custom layout but can be placed on any pages, comment, blog post or user profile.
This macro shows the score for an individual.
Set to false to show a break down of up and down scores.
The username to display the score for.
Places the comment threshold on a page. This macro is designed to be used as part of a custom layout to show and hide comments with particular thresholds.
acvUserVotes:[DEVI:1 TO 40000000]
show all users that have a score of 1-40000000
shows all users with between 50 and 100 up votes
shows all users with move than 100 down votes
shows all content that contributes to the jmort user's score
shows all content that has greater than 1 score
shows all content with more than 100 up votes
shows all content with between 50 and 100 down votes
If scores get out of sync then running a re-index will fix any issues with votes that have been applied to content.
Scores can be rebuilt by visiting _<Base Url>_admin/acv/viewrebuildvotes.action
If vote logging is enabled each vote will be logged in <CONFLUENCE_HOME>/logs/content-voting.log. This file can be used to reapply all the votes cast to the content in a batch job. This can be useful for testing and recovering from a failure. On a cluster each log file should be uploaded as each cluster logs the votes that are directed at it. On the first file "Reset Content Vote Scores" should be selected to set all scores to 0 and on subsequent files it should be un-checked so that the previous scores are not removed.
Replacing the Thumb voting images with CSS
You can replace the thumb images with your own using CSS. The plugin has specific classes around the voting controls to enable this. You can change either the page voting control images, the comment voting control images or both.
Some example CSS which replaces just the comment voting control images only is as follows:
You can repeat the same using span.acv-page to change those for the page too.
Example Advanced Search Configuration
The following advanced search configuration searches for the top voted content in the site and sorts it highest to lowest showing the score, up, down votes and the owner of the content (the user which collects the score of the document)
<config id="content_vote" title="Top Content"><scripts><preSearch>
from org.apache.lucene.search import BooleanClause
labelSubQuery = searcher.buildStandardQuery(["acvVotes"], "[1 TO 40000000]")
bean.getLuceneQuery().add( labelSubQuery, BooleanClause.Occur.MUST )
</preSearch></scripts><query><sort><sortField reverse="true">acvVotes</sortField></sort><retrieveAllResults>false</retrieveAllResults></query><output><columns><column title="Title" renderer="ceo-title" /><column title="Score" renderer="text" field="acvVotes" /><column title="Votes Up" renderer="text" field="acvVotesUp" /><column title="Votes Down" renderer="text" field="acvVotesDown" /><column title="Document Owner" renderer="text" field="acvOwner" /></columns><template>
#foreach ($column in $bean.columns)
## Extract the renderers for this display
#set($columnCount = 0)
#foreach($column in $bean.columns)
#foreach ($column in $bean.columns)
#set($veloCount = $velocityCount - 1)
#if($columnCount == $veloCount)
#set($columnCount = $columnCount + 1)
#if ($bean.getPaginationSupport().getItems() && $bean.getPaginationSupport().getPage().size() > 0)
#foreach ($result in $bean.getPaginationSupport().getPage())
#foreach($columnRenderer in $columnRenderers)
#set($colCount = $velocityCount - 1)
$columnRenderer.renderField($result, $columnParams.get($colCount), $bean)
There were no results for your search criteria.
#set($pageId = $bean.entityId)
#pagination( $bean.paginationSupport "viewpage.action?pageId=$pageId$searchParams" )
Adaptavist are global experts in consultancy, plugin development, training, support services and Enterprise solutions for Atlassian's Confluence, JIRA and Dev Tools.
We're a Platinum Expert whose creations have been included in Confluence itself. With 6 years experience, we've helped over 5000 customers to integrate and collaborate, including over half of the Fortune 50.
Try for Free
You can try our Plugin Packs for free, no credit card required. Then keep the essentials pack for free too!