<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org
[BEGIN_SED]
File=admin.polls.inc.php
Version=179
Updated=2022-jul-15
Type=Core.admin
Author=Seditio Team
Description=Administration panel
[END_SED]
==================== */

if ( !defined('SED_CODE') || !defined('SED_ADMIN') ) { die('Wrong URL.'); }

list($usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = sed_auth('polls', 'a');
sed_block($usr['isadmin']);

require_once(SED_ROOT.'/system/core/polls/polls.functions.php');

$id = sed_import('id','G','TXT');
$po = sed_import('po','G','TXT');

// ---------- Breadcrumbs
$urlpaths = array();
$urlpaths[sed_url("admin", "m=tools")] =  $L['adm_manage'];
$urlpaths[sed_url("admin", "m=polls")] =  $L['Polls'];

$admintitle = $L['Polls'];

$adminhelp = $L['adm_help_polls'];

$t = new XTemplate(sed_skinfile('admin.polls', false, true)); 

if ($n=='options')
	{
	if ($a=='update' && !empty($id) && !empty($po))
		{
		$rtext = sed_import('rtext','P','HTM');
		$sql = sed_sql_query("UPDATE $db_polls_options SET po_text='".sed_sql_prep($rtext)."' WHERE po_id='$po' AND po_pollid='$id'");
		}
	elseif ($a=='updatetitle' && !empty($id))
		{
		$rtitle = sed_import('rtitle','P','HTM');
		$sql = sed_sql_query("UPDATE $db_polls SET poll_text='".sed_sql_prep($rtitle)."' WHERE poll_id='$id'");
		}
	elseif ($a=='add' && !empty($id))
		{
		$g = array ('ntext');
		$ntext = sed_import('ntext','P','HTM');
		$sql = sed_sql_query("INSERT INTO $db_polls_options (po_pollid, po_text) VALUES (".(int)$id.",'".sed_sql_prep($ntext)."')");
		}

	elseif ($a=='delete')
		{
		sed_check_xg();
		$sql = sed_sql_query("DELETE FROM $db_polls_options WHERE po_id='$po' AND po_pollid='$id'");
		}

	$sql = sed_sql_query("SELECT * FROM $db_polls WHERE poll_id='$id' ");
	$sql1 = sed_sql_query("SELECT * FROM $db_polls_options WHERE po_pollid='$id' ORDER by po_id ASC");

	$row = sed_sql_fetchassoc($sql);

	$urlpaths[sed_url("admin", "m=polls&n=options&id=".$id)] =  $L['Options']." (#$id)";
	$admintitle = $L['Options']." (#$id)";
	
	$t->assign(array(
		"POLL_EDIT_ID" => $row["poll_id"],
		"POLL_EDIT_SEND" => sed_url("admin", "m=polls&n=options&a=updatetitle&id=".$id),
		"POLL_EDIT_TEXT" => sed_textbox('rtitle', sed_cc($row['poll_text']), 56, 255),
		"POLL_EDIT_CREATION_DATE" => sed_build_date($cfg['dateformat'], $row["poll_creationdate"])
	));

	while ($row1 = sed_sql_fetchassoc($sql1))
		{
 
		$t->assign(array(
			"POLL_EDIT_OPTIONS_SEND" => sed_url("admin", "m=polls&n=options&a=update&id=".$row1['po_pollid']."&po=".$row1['po_id']),
			"POLL_EDIT_OPTIONS_DELETE_URL" => sed_url("admin", "m=polls&n=options&a=delete&id=".$row1['po_pollid']."&po=".$row1['po_id']."&".sed_xg()),
			"POLL_EDIT_OPTIONS_ID" => $row1['po_id'],
			"POLL_EDIT_OPTIONS_TEXT" => sed_textbox('rtext', sed_cc($row1['po_text']), 32, 128)
		)); 
		
		$t -> parse("ADMIN_POLLS.POLL_EDIT.OPTIONS_LIST");
		
		}
	
	$t->assign(array(
		"POLL_OPTIONS_ADD_SEND" => sed_url("admin", "m=polls&n=options&a=add&id=".$row["poll_id"]),
		"POLL_OPTIONS_ADD_TEXT" => sed_textbox('ntext', '', 32, 128)
	));
	
	$t -> parse("ADMIN_POLLS.POLL_EDIT");	

	}
else
	{
	if ($a == 'delete')
		{
		sed_check_xg();
		$num = sed_poll_delete($id);
		sed_redirect(sed_url("admin", "m=polls&msg=916&rc=102&num=".$num, "", true));
		exit;
		}

	elseif ($a == 'reset')
		{
		sed_check_xg();
		$num = sed_poll_reset($id);
		sed_redirect(sed_url("admin", "m=polls&msg=916&rc=102&num=".$num, "", true));
		exit;
		}

	if ($a == 'bump')
		{
		sed_check_xg();
		sed_poll_bump($id);
		sed_redirect(sed_url("admin", "m=polls&msg=916&rc=102&num=1", "", true));
		exit;
		}

	if ($a == 'add')
		{
		$ntext = sed_import('ntext','P','HTM');
		$sql = sed_sql_query("INSERT INTO $db_polls (poll_state, poll_creationdate, poll_text, poll_ownerid) VALUES (0, ".(int)$sys['now_offset'].", '".sed_sql_prep($ntext)."', ".$usr['id'].")");
		}

	$sql = sed_sql_query("SELECT p.*, t.ft_id FROM $db_polls AS p
		LEFT JOIN $db_forum_topics AS t ON t.ft_poll = p.poll_id
		WHERE 1 ORDER BY p.poll_type ASC, p.poll_id DESC LIMIT 20");

	$ii = 0;
	$prev = -1;

	while ($row = sed_sql_fetchassoc($sql))
		{
		$id = $row['poll_id'];
		$type = $row['poll_type'];

		$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)");

		$t->assign(array(		
			"POLLS_LIST_DELETE_URL" => sed_url("admin", "m=polls&a=delete&id=".$id."&".sed_xg()),
			"POLLS_LIST_RESET_URL" => sed_url("admin", "m=polls&a=reset&id=".$id."&".sed_xg()),
			"POLLS_LIST_BUMP_URL" => sed_url("admin", "m=polls&a=bump&id=".$id."&".sed_xg()),
			"POLLS_LIST_DATE" => sed_build_date($cfg['formatyearmonthday'], $row['poll_creationdate']),
			"POLLS_LIST_OPTIONS_URL" => sed_url("admin", "m=polls&n=options&id=".$row['poll_id']),
			"POLLS_LIST_POLLTEXT" => sed_cc($row['poll_text']),
			"POLLS_LIST_TOTALVOTES" => $totalvotes,
			"POLLS_LIST_OPEN_URL" => ($type==0) ? sed_url("polls", "id=".$row['poll_id']) : sed_url("forums", "m=posts&q=".$row['ft_id'])
		));
		$t -> parse("ADMIN_POLLS.POLLS.POLLS_LIST"); 

		$ii++;
		}
		
	$t->assign(array(		
		"POLLS_TOTAL" => $ii,
		"POLL_ADD_SEND" => sed_url("admin", "m=polls&a=add"),
		"POLL_ADD_TEXT" => sed_textbox('ntext', '', 64, 255)
	));
	$t -> parse("ADMIN_POLLS.POLLS");  	
	}

$t->assign("ADMIN_POLLS_TITLE", $admintitle);

$t -> parse("ADMIN_POLLS");  

$adminmain .= $t -> text("ADMIN_POLLS");

?>
