MyBB Community Forums

Full Version: HTTP ERROR 500 while uninstall plugin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
<?php
// Main Plugin file for the plugin Extended Polls
// © 2014 - 2017 juventiner
// ----------------------------------------
// Last Update: 26.11.2017

if(!defined('IN_MYBB'))
{
	die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

//save voting
$plugins->add_hook('postbit','extendedpolls_save_voting');
//show poll
$plugins->add_hook('postbit','extendedpolls_show_polls');
//start pollmanager
$plugins->add_hook('editpost_end','extendedpolls_start_pollmanager');
$plugins->add_hook('newreply_end','extendedpolls_start_pollmanager');
$plugins->add_hook('newthread_end','extendedpolls_start_pollmanager');
//update poll post id
$plugins->add_hook('newthread_do_newthread_end','extendedpolls_get_pid_by_newthread');
$plugins->add_hook('newreply_do_newreply_end','extendedpolls_get_pid_by_newreply');
$plugins->add_hook('editpost_do_editpost_end','extendedpolls_updatepoll_editpost');
//delete polls while thread/post was deleted
$plugins->add_hook('class_moderation_delete_post', 'extendedpolls_deletepoll_deletepost');
$plugins->add_hook('class_moderation_delete_thread_start', 'extendedpolls_deletepoll_deletethread');


function extendedpolls_info()
{
	global $lang;
	$lang->load('extendedpolls');
	
	return array
	(
		'name'			=> $lang->info_name,
		'description'	=> $lang->info_discription,
		'website'		=> 'http://community.mybb.com/user-32469.html',
		'author'		=> 'juventiner',
		'authorsite'	=> 'https://www.mybboard.de/forum/user-5490.html',
		'version'		=> '1.5.4',
		'versioncode'	=> '1504',
		'compatibility' => '18*',
		'codename'		=> 'extendedpolls'
	);
}

// This function runs when the plugin is installed.
function extendedpolls_install()
{
	global $db;
	extendedpolls_uninstall();
	$collation = $db->build_create_table_collation();
	
	$db->write_query("CREATE TABLE ".TABLE_PREFIX."extended_polls (
						epid int(11) NOT NULL AUTO_INCREMENT,
						postid int (11) NOT NULL DEFAULT '0',
						posthash varchar(50) NOT NULL,
						puid int(11) not null,
						pipaddress varbinary(15) not null,
						pdateline int(11) not null,
						poll_question VARCHAR(200) NOT NULL,
						voteoptions text NOT NULL,
						pollvotes text NOT NULL,
						votetyp varchar (20) not null,
						multipleoptions int(10) not null,
						countoptions int (10) not null default '0',
						countvotes int (10) not null default '0',
						votestart int (11) not null default '0',
						voteend int (11) not null default '0',
						hidetoend int(1) not null default '0',
						mustvote int (1) not null default '0',
						deletedpoll int (1) not null default '0',
						PRIMARY KEY (epid)
					 ) ENGINE=MyISAM {$collation}");

	$db->write_query("CREATE TABLE ".TABLE_PREFIX."extended_pollvotes (
						pvid int(11) NOT NULL AUTO_INCREMENT,
						pollid int (15) NOT NULL,
						vuid int(11) NOT NULL default '0',
						voteoptions text NOT NULL,
						ipaddress varbinary(15) NOT NULL,
						dateline int (11) not null,
						PRIMARY KEY (pvid)
					 ) ENGINE=MyISAM {$collation}");
					 
}

// Checks to make sure plugin is installed
function extendedpolls_is_installed()
{
	global $db;
	if($db->table_exists("extended_polls") && $db->table_exists("extended_pollvotes"))
	{
		return true;
	}
	return false;
}

// This function runs when the plugin is uninstalled.
function extendedpolls_uninstall()
{
	global $db;
	
	if ($db->table_exists("extended_polls"))
	{
		$db->drop_table("extended_polls");
	}
	
	if ($db->table_exists("extended_pollvotes"))
	{
		$db->drop_table("extended_pollvotes");
	}
}

function extendedpolls_update($versioncode)
{
	global $db, $lang;
	
	if(empty($versioncode) || $versioncode <= 1503) 
	{
		$db->modify_column('extended_polls', 'postid', "INT(11) NOT NULL DEFAULT '0'");
	}
}

// This function runs when the plugin is activated.
function extendedpolls_activate()
{
	global $db, $lang, $cache;
	$lang->load('extendedpolls');

	$CacheData = $cache->read('extendedpolls');
	
	//Update durchführen
	extendedpolls_update($CacheData['versioncode']);
	
	$CacheData = extendedpolls_info();
	$contents = array(
		'version' => $CacheData['version'],
		'versioncode' => $CacheData['versioncode']
	);	
	$cache->update('extendedpolls', $contents);
	
	$insertarray = array(
		'name' => 'extendedpolls',
		'title' => $db->escape_string($lang->settings_group_name),
		'description' => $db->escape_string($lang->settings_group_discription),
		'disporder' => 3,
		'isdefault' => 0,
	);
	$gid = $db->insert_query("settinggroups", $insertarray);

	$insertarray = array(
		'name' => 'extended_polls_disable_mybbpolls',
		'title' => $db->escape_string($lang->settings_info_usemybb),
		'description' => $db->escape_string($lang->settings_discription_usemybb),
		'optionscode' => 'yesno',
		'value' => 0,
		'disporder' => 1,
		'gid' => $gid
	);
	$db->insert_query("settings", $insertarray);
	
	$insertarray = array(
		'name' => 'extended_polls_ipban_guest',
		'title' => $db->escape_string($lang->settings_info_banguest),
		'description' => $db->escape_string($lang->settings_discription_banguest),
		'optionscode' => 'yesno',
		'value' => 1,
		'disporder' => 2,
		'gid' => $gid
	);
	$db->insert_query("settings", $insertarray);
	
	$insertarray = array(
		'name' => 'extended_polls_delete_unused_polls',
		'title' => $db->escape_string($lang->settings_info_delete_unused),
		'description' => $db->escape_string($lang->settings_discription_delete_unused),
		'optionscode' => 'text',
		'value' => 30,
		'disporder' => 3,
		'gid' => $gid
	);
	$db->insert_query("settings", $insertarray);
	
	$insertarray = array(
		'name' => 'extended_polls_preview_results',
		'title' => $db->escape_string($lang->settings_info_result_preview),
		'description' => $db->escape_string($lang->settings_discription_result_preview),
		'optionscode' => 'groupselect',
		'value' => 4,
		'disporder' => 4,
		'gid' => $gid
	);
	$db->insert_query("settings", $insertarray);


	rebuild_settings();
	
	// create task
	$new_task = array(
		"title" => $db->escape_string($lang->task_info_delete_unused),
		"description" => $db->escape_string($lang->task_discription_delete_unused),
		"file" => "extendedpolls",
		"minute" => '15',
		"hour" => '4',
		"day" => '*',
		"month" => '*',
		"weekday" => '*',
		"enabled" => '1',
		"logging" => '1'
	);
	
	$new_task['nextrun'] = 0; // once the task is enabled, it will generate a nextrun date
	$tid = $db->insert_query("tasks", $new_task);
	
	
	// set variables in templates
    require MYBB_ROOT."/inc/adminfunctions_templates.php"; 
    find_replace_templatesets("editpost", "#".preg_quote('{$pollbox}')."#i", '{$pollbox} {$start_pollmanager}');
	find_replace_templatesets("newthread", "#".preg_quote('{$pollbox}')."#i", '{$pollbox} {$start_pollmanager}');
	find_replace_templatesets("newreply", "#".preg_quote('{$subscriptionmethod}')."#i", '{$subscriptionmethod} {$start_pollmanager}');
	find_replace_templatesets("postbit", "#".preg_quote('{$post[\'attachments\']}')."#i", '{$post[\'attachments\']} {$post[\'extendedpolls\']}');
	find_replace_templatesets("postbit_classic", "#".preg_quote('{$post[\'attachments\']}')."#i", '{$post[\'attachments\']} {$post[\'extendedpolls\']}');
	
	// add template group
	$templateset = array(
	    "prefix" => "pollmanager",
	    "title" => 'Pollmanager'
    );
	$db->insert_query("templategroups", $templateset);

//add templates
//pollmanager.php templates
	$insert_array = array(
		'title'		=> 'pollmanager_main',
		'template'	=> $db->escape_string('<html>
<head>
<title>{$mybb->settings[\'bbname\']} - {$lang->template_pollmanager}</title>
{$headerinclude}
</head>
<body style="margin:2%;">
{$multipage}
{$pollmanager_options}
{$multipage}
</body>
</html>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_notification',
		'template'	=> $db->escape_string('<form action="pollmanager.php" method="post">
<input type="hidden" name="posthash" value="{$posthash}">
<input type="hidden" name="post" value="{$post}">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="6"><strong>{$lang->template_pollmanager}</strong></td>
</tr>
<tr>
<td class="trow1" align="center" colspan="6">{$PollmanagerNotification}</td>
</tr>
<tr>
<td class="trow2" align="center" colspan="6"><input type="submit" name="pm_overview" class="button" style="align:center;" value="{$lang->template_goto_overview}" /> <input type="submit" name="pm_add" class="button" value="{$lang->template_add_poll}" /></td>
</tr>
</table>
</form>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_show_polloverview_list',
		'template'	=> $db->escape_string('<tr>
<td class="{$alt_bg}" align="center"><b>{$polls[\'epid\']}</b></td>
<td class="{$alt_bg}" align="left">{$polls[\'poll_question\']}</td>
<td class="{$alt_bg}" align="center"><input type="radio" name="spollid" value="{$polls[\'epid\']}"></td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_show_polloverview',
		'template'	=> $db->escape_string('<form action="pollmanager.php" method="post">
<input type="hidden" name="posthash" value="{$posthash}">
<input type="hidden" name="post" value="{$post}">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="6"><strong>{$lang->template_pollmanager}</strong></td>
</tr>
<tr>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>{$lang->template_poll}</strong></span></td>
<td class="tcat" width="80%" align="center"><span class="smalltext"><strong>{$lang->template_question}</strong></span></td>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>{$lang->template_options}</strong></span></td>
</tr>
{$show_polls}
<tr>
<td class="trow1" colspan="6" align="center"><input type="submit" name="pm_add" class="button" style="align:center;" value="{$lang->template_add_poll}" /> <input type="submit" name="pm_delete" class="button" style="align:center;" value="{$lang->template_delete_poll}" /></td>
</tr>
</table>
</form>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_add_step_one',
		'template'	=> $db->escape_string('<form action="pollmanager.php" method="post">
<input type="hidden" name="add_step" value="two">
<input type="hidden" name="posthash" value="{$posthash}">
<input type="hidden" name="post" value="{$post}">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder" style="text-align: left;">
<tr>
<td class="thead" colspan="6"><strong>{$lang->template_pollmanager}</strong></td>
</tr>
<tr>
<td width="30%" ></td>
<td width="70%" ></td>
</tr>
<tr>
<td class="trow2" valign="top"><strong>{$lang->template_poll_title}</strong></td>
<td class="trow2"><input type="text" name="poll_question" value="" size="60" maxsize="200" require /></td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->template_poll_voteoptions}</strong></td>
<td class="trow1"><input type="text" name="countoptions" value="" size="5" maxsize="10" require /></td>
</tr>
<tr>
<td class="trow2" valign="top"><strong>{$lang->template_poll_typ}</strong></td>
<td class="trow2"><input type="radio" value="radio" name="votetyp" /> {$lang->template_poll_typ_radio}<br /><input type="radio" value="multiple" name="votetyp" /> {$lang->template_poll_typ_multiple}<br /><input type="radio" value="multiple2" name="votetyp" /> {$lang->template_poll_typ_multiple2} <input type="text" name="multipleoptions" value="" size="2" maxsize="10" require /></td>
</tr>
<tr>
<td class="trow1" valign="top"><strong>{$lang->template_poll_starttime}</strong></td>
<td class="trow1"><input type="checkbox" name="start" value="1" /> {$lang->template_poll_activate_starttime}<br />{$starttime}</td>
</tr>
<tr>
<td class="trow2" valign="top"><strong>{$lang->template_poll_endtime}</strong></td>
<td class="trow2"><input type="checkbox" name="end" value="1" /> {$lang->template_poll_activate_endtime}<br />{$endtime}</td>
</tr>
<tr>
<td class="trow1" colspan="6"><input type="checkbox" name="hidetoend" value="1" /> {$lang->template_poll_hidetoend}</td>
</tr>
<tr>
<td class="trow2" colspan="6"><input type="checkbox" name="mustvote" value="1" /> {$lang->template_poll_mustvote}</td>
</tr>
<tr>
<td class="trow1" colspan="6" align="center"><input type="submit" name="pm_overview" class="button" style="align:center;" value="{$lang->template_goto_overview}" /> <input type="submit" name="pm_add" class="button" style="align:center;" value="{$lang->template_poll_next_step}" /></td>
</tr>
</table>
</form>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_add_step_two',
		'template'	=> $db->escape_string('<form action="pollmanager.php" method="post">
<input type="hidden" name="add_step" value="three">
<input type="hidden" name="posthash" value="{$posthash}">
<input type="hidden" name="post" value="{$post}">
<input type="hidden" name="poll_question" value="{$mybb->input[\'poll_question\']}">
<input type="hidden" name="countoptions" value="{$mybb->input[\'countoptions\']}">
<input type="hidden" name="votetyp" value="{$mybb->input[\'votetyp\']}">
<input type="hidden" name="multipleoptions" value="{$mybb->input[\'multipleoptions\']}">
<input type="hidden" name="hidetoend" value="{$mybb->input[\'hidetoend\']}">
<input type="hidden" name="mustvote" value="{$mybb->input[\'mustvote\']}">
<input type="hidden" name="start" value="{$mybb->input[\'start\']}">
<input type="hidden" name="end" value="{$mybb->input[\'end\']}">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="6"><strong>{$lang->template_pollmanager}</strong></td>
</tr>
<tr>
<td width="30%" align="center"></td>
<td width="70%" align="center"></td>
</tr>
{$poll[\'options\']}
<tr>
<td class="trow1" colspan="6" align="center"><input type="submit" name="pm_overview" class="button" style="align:center;" value="{$lang->template_goto_overview}" /> <input type="submit" name="pm_add" class="button" style="align:center;" value="{$lang->template_poll_save_poll}" /></td>
</tr>
</table>
</form>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_show_insert_voteoptions',
		'template'	=> $db->escape_string('<tr>
<td class="trow2" valign="top"><strong>{$lang->notification_option} {$VoteCounter}:</strong></td>
<td class="trow2"><input type="text" name="pollvote[]" value="" size="60" maxsize="150" require /></td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
##
	$insert_array = array(
		'title'		=> 'pollmanager_start_pollmanager',
		'template'	=> $db->escape_string('<tr>
<td class="trow2" valign="top"><strong>{$lang->template_start_pollmanager_info}</strong></td>
<td class="trow2"><a href="pollmanager.php?id={$posthash}&amp;post={$pid}" onclick="window.open(this.href, \'{$lang->template_pollmanager}\', \'width=800,height=500\'); return false">{$lang->template_start_pollmanager}</a></td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	//poll in post templates
	$insert_array = array(
		'title'		=> 'pollmanager_post_showpoll',
		'template'	=> $db->escape_string('<div style="margin:3%;"><form action="showthread.php?tid={$post[\'tid\']}&amp;pid={$post[\'pid\']}" method="post">
<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead" colspan="6"><strong>{$Poll_Question}</strong><br />{$info[\'polltopinfo\']}</td>
</tr>
{$pollcontent}
{$pollinfo}
</table>
</form></div><br />'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_post_vote_radio',
		'template'	=> $db->escape_string('<tr>
<td class="{$alt_bg}" align="center" width="10%"><input type="radio" name="vote" value="{$voteoptionid}"></td>
<td class="{$alt_bg}" width="90%">{$inhalt}</td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_post_vote_multiple',
		'template'	=> $db->escape_string('<tr>
<td class="{$alt_bg}" align="center" width="10%"><input type="checkbox" name="vote[{$voteoptionid}]" value="1" onclick="countChecks(this, {$poll[\'epid\']})"></td>
<td class="{$alt_bg}" width="90%">{$inhalt}</td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_post_vote_info',
		'template'	=> $db->escape_string('<tr>
<td class="trow1" align="center" colspan="2"><input type="submit" class="button" value="{$ButtonName}" {$DisableButton}><br />
{$info[\'votetime\']}<br />
{$info[\'voteconitions\']}
<input type="hidden" name="poll" value="{$poll[\'epid\']}">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}">
<input type="hidden" name="threadid" value="{$post[\'tid\']}">
<input type="hidden" name="postid" value="{$post[\'pid\']}"></td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);
	
	$insert_array = array(
		'title'		=> 'pollmanager_post_show_pollresult',
		'template'	=> $db->escape_string('<tr>
<td class="{$alt_bg}" width="40%">{$option}</td>
<td class="{$alt_bg}" width="60%"><div class="pollbar" style="width: {$percent}%" title="{$percent}%"></div><strong>{$votes}</strong> ({$percent}%)</td>
</tr>'),
		'sid'		=> '-2',
		'version'	=> '',
		'dateline'	=> TIME_NOW
	);
	$db->insert_query("templates", $insert_array);

}

function extendedpolls_deactivate()
{
	// replace variables in templates
    global $db;
    require MYBB_ROOT."/inc/adminfunctions_templates.php";
	
	find_replace_templatesets("editpost", "#".preg_quote('{$start_pollmanager}')."#i", '');
	find_replace_templatesets("newthread", "#".preg_quote('{$start_pollmanager}')."#i", '');
	find_replace_templatesets("newreply", "#".preg_quote('{$start_pollmanager}')."#i", '');
	find_replace_templatesets("postbit", "#".preg_quote('{$post[\'extendedpolls\']}')."#i", '');
	find_replace_templatesets("postbit_classic", "#".preg_quote('{$post[\'extendedpolls\']}')."#i", '');
 
	//delete settings
	$db->delete_query("settings", "name IN('extended_polls_disable_mybbpolls', 'extended_polls_ipban_guest', 'extended_polls_delete_unused_polls', 'extended_polls_preview_results')");
	$db->delete_query("settinggroups", "name IN('extendedpolls')");
	$db->delete_query("datacache", "title IN('extendedpolls')");
	$db->delete_query("tasks", "file IN('extendedpolls')");
	
	//delete templates
	$db->delete_query("templategroups", "prefix IN('pollmanager')");
	$db->delete_query("templates", "title IN('pollmanager_start_pollmanager', 'pollmanager_show_polloverview', 'pollmanager_show_polloverview_list', 'pollmanager_show_insert_voteoptions', 'pollmanager_main', 'pollmanager_add_step_one', 'pollmanager_add_step_two', 'pollmanager_notification', 'pollmanager_post_showpoll', 'pollmanager_post_vote_radio', 'pollmanager_post_vote_multiple', 'pollmanager_post_vote_info', 'pollmanager_post_show_pollresult')");
	
	//rebuild settings.php
	rebuild_settings();
 }

//show start pollmanager link 
function extendedpolls_start_pollmanager()
{
	global $mybb, $templates, $posthash, $start_pollmanager, $forumpermissions, $pollbox, $pid, $theme, $lang;
	$lang->load('extendedpolls');
	
	if($mybb->settings['extended_polls_disable_mybbpolls'] == 0)
	{
		$pollbox = '';
	}
	
	if(!$posthash)
	{
		$posthash = "edit_".$pid."_".random_str();
	}

	if($forumpermissions['canpostpolls'] == 1) {
		eval("\$start_pollmanager = \"".$templates->get("pollmanager_start_pollmanager")."\";");
	}
	return $pollbox;
}


function extendedpolls_generate_timestamps($typ)
{
	global $lang;
	$lang->load('extendedpolls');

	$currentDay = date('d', TIME_NOW);
	$currentMonth = date('m', TIME_NOW);
	$currentYear = date('Y', TIME_NOW);
	$currentHour = date('H', TIME_NOW);
	$currentMinute = date('i', TIME_NOW);
	$UpToYear = $currentYear + 5;

	$months = array ('01', '02', '03', '04', '05', '06','07', '08', '09', '10', '11', '12');
	$monthname = array($lang->month_jan, $lang->month_feb, $lang->month_mar, $lang->month_apr, $lang->month_may, $lang->month_jun, $lang->month_jul, $lang->month_aug, $lang->month_sep, $lang->month_oct, $lang->month_nov, $lang->month_dec);
	$days = range (01, 31);
	$years = range ($currentYear, $UpToYear);
	$hours = range (00, 23);
	$minutes = range (00, 59);


	$ShowDateForm .= '<select name="'.$typ.'day">';

foreach ($days as $value) {
if($value == $currentDay){ $default = ' selected'; }
	$ShowDateForm .= '<option'.$default.' value="'.$value.'">'.$value.'</option>\n';
	unset($default);
}

$ShowDateForm .= '</select>&nbsp;<select name="'.$typ.'month">';

foreach ($months as $value) {
if($value == $currentMonth){ $default = ' selected';}
	$ShowDateForm .= '<option'.$default.' value="'.$value.'">'.str_replace($months, $monthname, $value).'</option>\n';
	unset($default);
}

$ShowDateForm .= '</select>&nbsp;<select name="'.$typ.'year">';

foreach ($years as $value) {
    if($value == $currentYear){ $default = ' selected';}
	$ShowDateForm .= '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
	unset($default);
}

$ShowDateForm .= '</select>&nbsp;-&nbsp;<select name="'.$typ.'hour">';

foreach ($hours as $value) {
    if($value == $currentHour){ $default = ' selected';}
	$ShowDateForm .= '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
	unset($default);
}

$ShowDateForm .= '</select>&nbsp;<select name="'.$typ.'min">';

foreach ($minutes as $value) {
    if($value == $currentMinute){ $default = ' selected';}
	$ShowDateForm .= '<option '.$default.' value="'.$value.'">'.$value.'</option>\n';
	unset($default);
}

$ShowDateForm .= '</select>';

	return $ShowDateForm;
} 

// save poll voting
function extendedpolls_save_voting($post) {

	global $mybb, $db, $session, $lang;
	$lang->load('extendedpolls');
	
	if($post['pid'] == $mybb->input['postid']) {
	
	$pollid = (int)$mybb->input['poll'];	
	if($pollid != 0) {

	$pollquery = $db->simple_select("extended_polls", "*", "epid='{$pollid}'");
	$poll = $db->fetch_array($pollquery);
	
	if($poll['votestart'] > TIME_NOW) {
		error($lang->error_poll_not_start);
	}

	$postinfo = get_post($poll['postid']);
	$forumpermissions = forum_permissions($postinfo['fid']);
	
	if($poll['postid'] == $mybb->input['postid'] && $mybb->post_code == $mybb->input['my_post_key']) {

		if(extendedpolls_check_ifvoted($poll) <= 0 && $forumpermissions['canvotepolls'] == 1) {
		
			if($poll['voteend'] < TIME_NOW && $poll['voteend'] != 0)
			{
				error($lang->error_closed_poll);
			}
			
			if($poll['votetyp'] == "multiple2" && $poll['multipleoptions'] < count($mybb->input['vote']))
			{
				error($lang->error_much_options);
			}
			
			if(count($mybb->input['vote']) <= 0)
			{
				error($lang->error_no_options);
			}
		
			$votesarray = explode("||~|~||", $poll['pollvotes']);
			$option = $mybb->input['vote'];
			$numvotes = (int)$poll['countvotes'];
			//count votings
			if($poll['votetyp'] == "multiple2" || $poll['votetyp'] == "multiple")
			{			
				if(is_array($option))
				{
					$total_options = 0;
		
					foreach($option as $voteoption => $vote)
					{
						if($vote == 1 && isset($votesarray[$voteoption-1]))
						{
							//insert pollvotes
							$mybb->binary_fields["extended_pollvotes"] = array('ipaddress' => true);			
							$SetPollVote = array(
							"pollid" => $db->escape_string($poll['epid']),
							"vuid" => $mybb->user['uid'],
							"voteoptions" => $db->escape_string($voteoption),
							"ipaddress" => $db->escape_binary($session->packedip),
							"dateline" => TIME_NOW
							);
							$db->insert_query("extended_pollvotes", $SetPollVote);
							
							$votesarray[$voteoption-1]++;
							$numvotes = $numvotes+1;
							$total_options++;
						}
					}
				}		
			} else {

				//insert pollvote
				$mybb->binary_fields["extended_pollvotes"] = array('ipaddress' => true);			
				$SetPollVote = array(
				"pollid" => $db->escape_string($poll['epid']),
				"vuid" => $mybb->user['uid'],
				"voteoptions" => $db->escape_string($option),
				"ipaddress" => $db->escape_binary($session->packedip),
				"dateline" => TIME_NOW
				);
				$db->insert_query("extended_pollvotes", $SetPollVote);
				
				$votesarray[$option-1]++;
				$numvotes = $numvotes+1;
			}
			
			$voteslist = '';
			for($i = 1; $i <= $poll['countoptions']; ++$i)
			{
				if($i > 1)
				{
					$voteslist .= "||~|~||";
				}
				$voteslist .= $votesarray[$i-1];
			}
			$updatedpoll = array(
				"pollvotes" => $db->escape_string($voteslist),
				"countvotes" => (int)$numvotes
			);

			$db->update_query("extended_polls", $updatedpoll, "epid='".$poll['epid']."'");

		} else {
			error($lang->error_double_vote);
		}			
	} else {
		error($lang->error_missing_credits);
	}
	}
	}
}

// checks if user currently voted
function extendedpolls_check_ifvoted($poll)
{
	global $mybb, $db, $session;
	
	if(!$mybb->user['uid'] || $mybb->user['uid'] == 0 || $mybb->user['uid'] == '') {
	
		if($mybb->settings["extended_polls_ipban_guest"] == 1) 
		{
			$mybb->binary_fields["extended_pollvotes"] = array('ipaddress' => true);
			$querys = $db->simple_select("extended_pollvotes", "COUNT(pvid) AS pollvote_count", "pollid='{$poll['epid']}' and vuid='0' and ipaddress='{$session->packedip}'");
			$pollvote_count = $db->fetch_field($querys, "pollvote_count");
		} else {
			$pollvote_count = 0;
		}
	} else {
		$querys = $db->simple_select("extended_pollvotes", "COUNT(pvid) AS pollvote_count", "pollid='{$poll['epid']}' and vuid='{$mybb->user['uid']}'");
		$pollvote_count = $db->fetch_field($querys, "pollvote_count");
	}
	return $pollvote_count;
}

//check show poll results
function extendedpolls_check_show_poll_result($forumpermissions, $poll, $prepoll)
{
	
	if($poll['voteend'] < TIME_NOW && $poll['voteend'] > 0) {
		$access = 1;
	} elseif(extendedpolls_check_ifvoted($poll) != 0 && $poll['hidetoend'] != 1) {
		$access = 1;
	} elseif($poll['hidetoend'] != 1 && $forumpermissions['canvotepolls'] != 1) {
		$access = 1;
	} elseif($poll['mustvote'] == 1 && $forumpermissions['canvotepolls'] != 1) {
		$access = 0;
	} else {
		$access = 0;
	}
	return $access;
}

// show poll in post
function extendedpolls_show_polls($post)
{
	global $mybb, $templates, $pollmanager_polls, $db, $parser, $lang, $theme, $prepoll;
	$lang->load('extendedpolls');
	
	//check if posts exist
	$query = $db->simple_select("extended_polls", "COUNT(epid) AS poll_count", "postid='{$post['pid']}'");
	$poll_count = $db->fetch_field($query, "poll_count");

	if(empty($prepoll)) 
	{ 
		$prepoll = 0; 
	}
	
	if($poll_count > 0) {
	
		if($prepoll != 0)
		{
		$query = $db->simple_select("extended_polls", "*", "epid='{$prepoll}' and postid='{$post['pid']}'");
		} else {
		$prepoll = 0;
		$query = $db->simple_select("extended_polls", "*", "postid='{$post['pid']}'");
		}
		while($poll = $db->fetch_array($query)) 
		{		
			$voteoptions = explode('||~|~||', $poll['voteoptions']);
			$forumpermissions = forum_permissions($post['fid']);
			$forum = get_forum($post['fid']);
	
					$parser_options = array(
						"allow_html" => 0,
						"allow_mycode" => $forum['allowmycode'],
						"allow_smilies" => $forum['allowsmilies'],
						"allow_imgcode" => $forum['allowimgcode'],
						"allow_videocode" => 0,
						"filter_badwords" => 1
					);
					
			if($prepoll == $poll['epid'] || extendedpolls_check_show_poll_result($forumpermissions, $poll, $prepoll) == 1) { 
			
				//show pollheader
				$info['polltopinfo'] = sprintf($lang->poll_count_voices, $poll['countvotes']);
			
				$optionsarray = explode("||~|~||", $poll['voteoptions']);
				$votesarray = explode("||~|~||", $poll['pollvotes']);
	
			$poll['totvotes'] = 0;
				for($i = 1; $i <= $poll['countoptions']; ++$i)
				{
					$poll['totvotes'] = $poll['totvotes'] + $votesarray[$i-1];
				}

				$polloptions = '';
				for($i = 1; $i <= $poll['countoptions']; ++$i)
				{
					$alt_bg = alt_trow();
					$option = $parser->parse_message($optionsarray[$i-1], $parser_options);

					$votes = $votesarray[$i-1];
					$number = $i;

					if($votes == 0)
					{
						$percent = 0;
					}
					else
					{
						$percent = number_format($votes / $poll['totvotes'] * 100, 1);
					}
					eval("\$pollcontent .= \"".$templates->get("pollmanager_post_show_pollresult")."\";");
				}				
					
			} else {
				
				$voteoptionid = 1;
				//definieren des Umfragetypens
				if($poll['votetyp'] == "multiple") {
					//votetyp is multiple
					$info['polltopinfo'] = $lang->poll_vote_multiple;
					foreach($voteoptions as $inhalt)
					{
						$alt_bg = alt_trow();
						$inhalt = $parser->parse_message($inhalt, $parser_options);
						eval("\$pollcontent .= \"".$templates->get("pollmanager_post_vote_multiple")."\";");
						$voteoptionid++;
					}
				} elseif($poll['votetyp'] == "multiple2") {
					//votetyp is multiple2
					$info['polltopinfo'] = $poll['multipleoptions']." ".$lang->poll_vote_multiple2;
					foreach($voteoptions as $inhalt)
					{
						$alt_bg = alt_trow();
						$inhalt = $parser->parse_message($inhalt, $parser_options);
						eval("\$pollcontent .= \"".$templates->get("pollmanager_post_vote_multiple")."\";");
						$voteoptionid++;
					}
				} else {
					//votetyp is radio
					$info['polltopinfo'] = $lang->poll_vote_radio;
					foreach($voteoptions as $inhalt)
					{
						$alt_bg = alt_trow();
						$inhalt = $parser->parse_message($inhalt, $parser_options);
						eval("\$pollcontent .= \"".$templates->get("pollmanager_post_vote_radio")."\";");
						$voteoptionid++;
					}
				}
				$info['polltopinfo'] = sprintf($lang->poll_info_votecounter,$info['polltopinfo']);
				
				//check votingtimes
				if($poll['voteend'] == 0) {
					$info['votetime'] = $lang->poll_info_count_from." (".my_date($mybb->settings['dateformat']." - ".$mybb->settings['timeformat'],$poll['votestart'], '-').")";
				} else {
					$info['votetime'] = $lang->poll_info_count_from." (".my_date($mybb->settings['dateformat']." - ".$mybb->settings['timeformat'],$poll['votestart'], '-').") ".$lang->poll_info_count_to." (".my_date($mybb->settings['dateformat']." - ".$mybb->settings['timeformat'],$poll['voteend'], '-').")";
				}
				
				//show result visibility
				if($poll['hidetoend'] == 1 && !is_member($mybb->settings['extended_polls_preview_results'], $mybb->user['uid'])) {
					$info['voteconitions'] = $lang->poll_info_hidetoend;
				} elseif($poll['mustvote'] == 1 && !is_member($mybb->settings['extended_polls_preview_results'], $mybb->user['uid'])) {
					$info['voteconitions'] = $lang->poll_info_mustvote;
				} else {
					$info['voteconitions'] = "<strong><a href=\"pollmanager.php?action=result&amp;poll={$poll['epid']}\" onclick=\"window.open(this.href, '{$lang->template_pollmanager}', 'width=700,height=400'); return false\">{$lang->poll_show_pollresult_preview}</a></strong>";
				}
				
				//check if the poll is open
				if($poll['votestart'] > TIME_NOW) {
					//Umfrage noch nicht gestartet
					$DisableButton = " disabled";
					$ButtonName = $lang->poll_button_before_vote;
				} elseif($forumpermissions['canvotepolls'] == 1 && extendedpolls_check_ifvoted($poll) <= 0) {
					//can vote
					$DisableButton = "";
					$ButtonName = $lang->poll_button_vote;
				} else {
					//has voted
					$DisableButton = " disabled";
					$ButtonName = $lang->poll_button_after_vote;
				}
						
			eval("\$pollinfo = \"".$templates->get("pollmanager_post_vote_info")."\";");
			}
			
			//formate pollheader
			$Poll_Question = $parser->parse_message($poll['poll_question'], $parser_options);
			
			//include poll
			eval("\$post['extendedpolls'] .= \"".$templates->get("pollmanager_post_showpoll")."\";");
			unset($pollcontent, $pollinfo, $ButtonName, $DisableButton, $info);
		}
	}
	return $post;
}

//update poll with postid
function extendedpolls_updatepoll_postid($pid, $posthash)
{
	global $mybb, $db, $forumpermissions;
	
	if($forumpermissions['canpostpolls'] == 1)
	{
		$query = $db->simple_select("extended_polls", "epid", "postid='0' and posthash='".$db->escape_string($posthash)."'");
		while($poll = $db->fetch_array($query)) 
		{
			$sqlarray = array(
			"postid" => $db->escape_string($pid)
			);		
			$db->update_query("extended_polls", $sqlarray, "epid='".$poll['epid']."'");
		}
	}
}

//check pid from newthread
function extendedpolls_get_pid_by_newthread() {

	global $mybb, $db, $forumpermissions, $tid;
	
	//get postid
	$query = $db->simple_select("posts", "pid", "tid='".$db->escape_string($tid)."'");
	$post = $db->fetch_array($query);
	$pid = $post['pid'];
	
	$posthash = $mybb->get_input('posthash');
	
	//update polls
	extendedpolls_updatepoll_postid($pid, $posthash);
}

//check pid from newreply
function extendedpolls_get_pid_by_newreply() {

	global $mybb, $db, $forumpermissions, $pid;
	
	$posthash = $mybb->get_input('posthash');
	
	//update polls
	extendedpolls_updatepoll_postid($pid, $posthash);
}

//update poll with postid
function extendedpolls_updatepoll_editpost()
{
	global $mybb, $db, $forumpermissions, $pid;
	
	if($forumpermissions['canpostpolls'] == 1)
	{

		$query = $db->simple_select("extended_polls", "epid, posthash", "postid='0'");
		while($poll = $db->fetch_array($query)) 
		{
		
		$postarray = explode("_", $poll['posthash']);

			if($pid == $postarray[1])
			{
				$sqlarray = array(
				"postid" => $db->escape_string($pid)
				);
		
				$db->update_query("extended_polls", $sqlarray, "epid='".$poll['epid']."'");
			}
		}
	}
}

function extendedpolls_checkviewpermission($pid)
{	
	global $mybb;

	//check forum permission
	$post = get_post($pid);
	$forumpermissions = forum_permissions($post['fid']);
	
	if($pid != '-') 
	{
		// No permission if: Not post author; not moderator; no forum perms to view, post threads, post polls
		if(($post['uid'] != $mybb->user['uid'] && !is_moderator($post['fid'], "canmanagepolls")) || ($forumpermissions['canview'] == 0 || $forumpermissions['canpostthreads'] == 0 || $forumpermissions['canpostpolls'] == 0))
		{
			$access = 0;
		}
		else
		{
			$access = 1;
		}
	} else {
		$access = 1;
	}
	return $access;
}

function extendedpolls_checkeditpermission($pid)
{	
	global $mybb;

	//check forum permission
	$post = get_post($pid);
	$forumpermissions = forum_permissions($post['fid']);
	
	// No permission if: Not post author; not moderator; no forum perms to view, post threads, post polls
	if(($post['uid'] != $mybb->user['uid'] && !is_moderator($post['fid'], "canmanagepolls")))
	{
		$access = 0;
	}
	else
	{
		$access = 1;
	}
	return $access;
}

//delete polls and their votes by an postid
function extendedpolls_deletepoll_deletebypostid($pid)
{
	global $db;
	
	$query = $db->simple_select('extended_polls', 'epid', "postid='{$db->escape_string($pid)}'");
	while($poll = $db->fetch_array($query))
	{
		//remove poll
		$db->delete_query("extended_polls", "epid={$poll['epid']}");
		//remove pollvotes
		$db->delete_query("extended_pollvotes", "pollid={$poll['epid']}");		
	}	
	return true;
}

//delete polls while a post was deleted
function extendedpolls_deletepoll_deletepost($pid)
{
	global $db;
	
		//remove polls
		extendedpolls_deletepoll_deletebypostid($pid);
}

//delete polls while a thread was deleted
function extendedpolls_deletepoll_deletethread($tid)
{
	global $db;
	
	// Find the pid from deleted threads
	$query = $db->simple_select('posts', 'pid', "tid='{$tid}'");
		while($post = $db->fetch_array($query))
		{
			// Remove polls
			extendedpolls_deletepoll_deletebypostid($post['pid']);
		}
}
?>


unable to un-install & unable to activate also in 

https://community.mybb.com/mods.php?action=view&pid=267

[Image: Screenshot-1625.png]
[Image: Screenshot-1626.png]
[Image: Screenshot-1627.png]

Not only one plugin 

Facebook, Google, Twitter, SEO Metatags

Also same issue 


help me to un-install or activate Fix
recent entries of server error log (at web host panel) should be checked to trace the cause of error 500