| oc | 
					 | 
			
|---|---|
| 
					 (If I posted this in the wrong section, sorry. I didn't know where to post) 
						
					This is the only contribution I made so far for this community, sorry Trustmaster, sorry all. This is basically an ajax poll with a core hack and some stupid effects I saw on the other sites and see no reason to not to steal the ideas. Inspired by JQuery plugins, thanks whoever did it, but code belongs to me, I found out it is bullshit to code that much, Normal plugins would have create queries and pick up datas one by one, but I tested it, and this is faster. --This is a core hack. I will never release another plugin about this, this is 2008 my babies :) -I know Trustmaster stopped believing me doing something about this, but I simplified the code, I am using this also in my personal site, so I believe this is bug-free. -Use UTF8 (without bom) -Also you need JQuery. Well, the code is: plugins/recentitems/recentsitems.php -- change the whole poll function with: /* ------------------ */
function sed_get_latestpolls($limit, $mask)
	{
	global $L, $db_polls, $db_polls_voters, $db_polls_options, $usr, $plu_empty;
	require("plugins/recentitems/lang/recentitems.en.lang.php");
	
	$sql_p = sed_sql_query("SELECT poll_id, poll_text FROM $db_polls WHERE 1 AND poll_state=0  AND poll_type=0 ORDER by poll_creationdate DESC LIMIT $limit");
	while ($row_p = sed_sql_fetcharray($sql_p))
		{
		unset($res);
		$poll_id = $row_p['poll_id'];
		if ($usr['id']>0)
	 		{ $sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$poll_id' AND (pv_userid='".$usr['id']."' OR pv_userip='".$usr['ip']."') LIMIT 1"); }
	       else
	 		{ $sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$poll_id' AND pv_userip='".$usr['ip']."' LIMIT 1"); }
		if (sed_sql_numrows($sql2)>0)
			{
			$alreadyvoted =1;
			$sql2 = sed_sql_query("SELECT SUM(po_count) FROM $db_polls_options WHERE po_pollid='$poll_id'");
			$totalvotes = sed_sql_result($sql2,0,"SUM(po_count)");
			}
		else
			{ $alreadyvoted =0; }
		$res .= (!$alreadyvoted) ? "<script type=\"text/javascript\">
function postp()
	{
		var id = $(\"input[@name='id']\").attr(\"value\");
		var a = $(\"input[@name='a']\").attr(\"value\");
		var vote = $(\"input[@name='vote']:checked\").attr(\"value\");
	$.ajax({
		type: 'GET',
		url: 'polls.php?',
		data: 'id='+id+'&a='+a+'&vote='+vote+'&mode=ajax',
		beforeSend: function(){
			if (!vote) {
			alert('".$L_idx['vote_opt']."');
			return false;
			}
			$('#poll-container').addClass('loading');
			},
		success: function(msg){
		$('#poll-container').removeClass('loading');
		$('#poll-container').html(msg).hide().stop().fadeIn('slow');
			},
		error: function(msg){
		$('#poll-container').removeClass('loading');
		alert('".$L_idx['vote_failed']."');
			}
		});
		return false;
	}
	</script>" : '';
		$res .= "<h5>".sed_parse(sed_cc($row_p['poll_text']), 1, 1, 1)."</h5>";
		$res .= "<div id='poll-container'>";
		$res .= ($alreadyvoted) ? '<table class="cells">' : '';
		$sql = sed_sql_query("SELECT po_id, po_text, po_count FROM $db_polls_options WHERE po_pollid='$poll_id' ORDER by po_id ASC");
		while ($row = sed_sql_fetcharray($sql))
			{
			if ($alreadyvoted)
				{
				$percentbar = floor(($row['po_count'] / $totalvotes) * 100);
				$res .= "<tr><td>".sed_parse(sed_cc($row['po_text']), 1, 1, 1)."</td><td width=\"100\"><div style=\"width:95%;\"><div class=\"bar_back\"><div class=\"bar_front\" style=\"width:".$percentbar."%;\"></div></div></div></td><td>$percentbar%</td><td>(".$row['po_count'].")</td></tr>";
				}
			else
				{
				$res .= "<input type='radio' name='vote' id='o".$row['po_id']."' value='".$row['po_id']."' /><label for='o".$row['po_id']."'> ".stripslashes($row['po_text'])."</label><br />";
				}
			}
if (!$alreadyvoted)
		{ 
        $res .= "<input type=\"hidden\" name=\"id\" value=\"".$poll_id."\" />";
        $res .= "<input type=\"hidden\" name=\"a\" value=\"send\" />";
		}
        if (!$alreadyvoted)
		{ $res .= "<p style=\"text-align: center; \"><input type=\"submit\" onclick=\"postp();\" class=\"submit\" value=\"".$L_idx['voteit']."\" /></p>"; }
	$res .= ($alreadyvoted) ? '</table>' : '';
	$res .= "</div>";
        $res .= "<p style=\"text-align: center; \"><a href=\"javascript:polls('".$poll_id."')\">".$L['polls_viewresults']."</a>    <a href=\"javascript:polls('viewall')\">".$L['polls_viewarchives']."</a></p>";
		$res_all .= sprintf($mask, $res);
		}
//		{ $res = $plu_empty; }
	return($res_all);
	}
/* ============= */
Also, Trustmaster asked me to create an extra file, for words, language file. Please create a file and folder plugins/recentitems/lang/recentitems.en.lang.php -- (i couldn't creating a new copyright, thanks riptide!) <?PHP /* ==================== Seditio - Website engine Copyright Neocrome http:/www.neocrome.net [BEGIN_SED] File=plugins/calendar/lang/calendar.en.lang.php Version=1.1 Updated=2006-Nov-12 Type=Plugin Author=riptide & friends (me) Description=Plugin to display the events in a calendar [END_SED] ==================== */ $L_idx['vote_failed'] = 'Vote failed'; //If you have problems with submitting the vote $L_idx['vote_opt'] = 'Where is your opinion ?'; //If vote:checked false $L_idx['voteit'] = 'Vote it!'; ?> system/core/polls/polls.inc.php --the real action find: $ratings = sed_import('ratings','G','BOL');
add below:$mode = sed_import('mode','G','TXT');
(add this code right before): $t = new XTemplate("skins/".$skin."/polls.tpl");
if ($mode=='ajax')
	{
	$result .= '
	<script type="text/javascript">
	function anim(){
	$(".bar_front").each(function(){
	var percentage = $(this).attr("id");
	$(this).css({width: "0%"}).animate({width: percentage}, "slow");
	});}
	$(document).ready(function(){  
	anim();
		});
	</script>';
	$result .= "<table class=\"cells\">";
		$sql2 = sed_sql_query("SELECT SUM(po_count) FROM $db_polls_options WHERE po_pollid='$id'");
		$totalvotes = sed_sql_result($sql2,0,"SUM(po_count)");
		$sql1 = sed_sql_query("SELECT po_id,po_text,po_count FROM $db_polls_options WHERE po_pollid='$id' ORDER by po_id ASC ");
	while ($row1 = sed_sql_fetcharray($sql1))
		{
		$po_id = $row1['po_id'];
		$po_count = $row1['po_count'];
		$percent = @round(100 * ($po_count / $totalvotes),1);
		$percentbar = floor($percent * 2.24);
		$row1['po_text'] = $row1['po_text'];
		$result .= "<tr><td>";
		$result .= sed_parse(sed_cc($row1['po_text']), 1, 1, 1);
		$result .= "</td><td><div style=\"width:100px;\"><div class=\"bar_back\"><div class=\"bar_front\" id=\"$percent%\" style=\"width:0%;\"></div></div></div></td><td>$percent%</td><td>(".$po_count.")</td></tr>";
		}
	$result .= "</table>";
	echo $result;
	exit;
	}
There are also css stuff, add this to your css file(s): #poll-container.loading {
  background: url('img/spinner.gif') no-repeat center center;
}
Spinner is something like this: http://www.scribd.com/spinner_bigger.gif -- (to the skins/yourskin/img/)  | 
			
| Trustmaster | 
					 | 
			
|---|---|
| 
					 Thanks oc, I will check it, test it and include in N-0.0.1. Probably it will be a "recentpolls" plugin because we want to split recentitems into 3 plugins: recentpages, recenttopics and recentpolls. 
						May the Source be with you! 
					 | 
			
| Trustmaster | 
					 | 
			
|---|---|
| 
					 Great contribution! I eliminated corehacks and made it a new "recentpolls" plugin. 
						May the Source be with you! 
					 |