You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
419 lines
14 KiB
419 lines
14 KiB
<?php
|
|
|
|
/**
|
|
* ECSHOP 调查管理程序
|
|
* ============================================================================
|
|
* * 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.ecmoban.com;
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
|
|
* 使用;不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* $Author: liubo $
|
|
* $Id: vote.php 17217 2011-01-19 06:29:08Z liubo $
|
|
*/
|
|
|
|
define('IN_ECS', true);
|
|
|
|
require(dirname(__FILE__) . '/includes/init.php');
|
|
|
|
/* act操作项的初始化 */
|
|
if (empty($_REQUEST['act']))
|
|
{
|
|
$_REQUEST['act'] = 'list';
|
|
}
|
|
else
|
|
{
|
|
$_REQUEST['act'] = trim($_REQUEST['act']);
|
|
}
|
|
|
|
$exc = new exchange($ecs->table("vote"), $db, 'vote_id', 'vote_name');
|
|
$exc_opn = new exchange($ecs->table("vote_option"), $db, 'option_id', 'option_name');
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 投票列表页面
|
|
/*------------------------------------------------------ */
|
|
if ($_REQUEST['act'] == 'list')
|
|
{
|
|
/* 模板赋值 */
|
|
$smarty->assign('ur_here', $_LANG['list_vote']);
|
|
$smarty->assign('action_link', array('text' => $_LANG['add_vote'], 'href'=>'vote.php?act=add'));
|
|
$smarty->assign('full_page', 1);
|
|
|
|
$vote_list = get_votelist();
|
|
|
|
$smarty->assign('list', $vote_list['list']);
|
|
$smarty->assign('filter', $vote_list['filter']);
|
|
$smarty->assign('record_count', $vote_list['record_count']);
|
|
$smarty->assign('page_count', $vote_list['page_count']);
|
|
|
|
/* 显示页面 */
|
|
assign_query_info();
|
|
$smarty->display('vote_list.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 排序、分页、查询
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'query')
|
|
{
|
|
$vote_list = get_votelist();
|
|
|
|
$smarty->assign('list', $vote_list['list']);
|
|
$smarty->assign('filter', $vote_list['filter']);
|
|
$smarty->assign('record_count', $vote_list['record_count']);
|
|
$smarty->assign('page_count', $vote_list['page_count']);
|
|
|
|
make_json_result($smarty->fetch('vote_list.htm'), '',
|
|
array('filter' => $vote_list['filter'], 'page_count' => $vote_list['page_count']));
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 添加新的投票页面
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'add')
|
|
{
|
|
/* 权限检查 */
|
|
admin_priv('vote_priv');
|
|
|
|
/* 日期初始化 */
|
|
$vote = array('start_time' => local_date('Y-m-d'), 'end_time' => local_date('Y-m-d', local_strtotime('+2 weeks')));
|
|
|
|
/* 模板赋值 */
|
|
$smarty->assign('ur_here', $_LANG['add_vote']);
|
|
$smarty->assign('action_link', array('href'=>'vote.php?act=list', 'text' => $_LANG['list_vote']));
|
|
|
|
$smarty->assign('action', 'add');
|
|
$smarty->assign('form_act', 'insert');
|
|
$smarty->assign('vote_arr', $vote);
|
|
$smarty->assign('cfg_lang', $_CFG['lang']);
|
|
|
|
/* 显示页面 */
|
|
assign_query_info();
|
|
$smarty->display('vote_info.htm');
|
|
}
|
|
elseif ($_REQUEST['act'] == 'insert')
|
|
{
|
|
admin_priv('vote_priv');
|
|
|
|
/* 获得广告的开始时期与结束日期 */
|
|
$start_time = local_strtotime($_POST['start_time']);
|
|
$end_time = local_strtotime($_POST['end_time']);
|
|
|
|
/* 查看广告名称是否有重复 */
|
|
$sql = "SELECT COUNT(*) FROM " .$ecs->table('vote'). " WHERE vote_name='$_POST[vote_name]'";
|
|
if ($db->getOne($sql) == 0)
|
|
{
|
|
/* 插入数据 */
|
|
$sql = "INSERT INTO ".$ecs->table('vote')." (vote_name, start_time, end_time, can_multi, vote_count)
|
|
VALUES ('$_POST[vote_name]', '$start_time', '$end_time', '$_POST[can_multi]', '0')";
|
|
$db->query($sql);
|
|
|
|
$new_id = $db->Insert_ID();
|
|
|
|
/* 记录管理员操作 */
|
|
admin_log($_POST['vote_name'], 'add', 'vote');
|
|
|
|
/* 清除缓存 */
|
|
clear_cache_files();
|
|
|
|
/* 提示信息 */
|
|
$link[0]['text'] = $_LANG['continue_add_option'];
|
|
$link[0]['href'] = 'vote.php?act=option&id='.$new_id;
|
|
|
|
$link[1]['text'] = $_LANG['continue_add_vote'];
|
|
$link[1]['href'] = 'vote.php?act=add';
|
|
|
|
$link[2]['text'] = $_LANG['back_list'];
|
|
$link[2]['href'] = 'vote.php?act=list';
|
|
|
|
sys_msg($_LANG['add'] . " " .$_POST['vote_name'] . " " . $_LANG['attradd_succed'],0, $link);
|
|
|
|
}
|
|
else
|
|
{
|
|
$link[] = array('text' => $_LANG['go_back'], 'href'=>'javascript:history.back(-1)');
|
|
sys_msg($_LANG['vote_name_exist'], 0, $link);
|
|
}
|
|
}
|
|
/*------------------------------------------------------ */
|
|
//-- 在线调查编辑页面
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'edit')
|
|
{
|
|
admin_priv('vote_priv');
|
|
|
|
/* 获取数据 */
|
|
$vote_arr = $db->GetRow("SELECT * FROM ".$ecs->table('vote')." WHERE vote_id='$_REQUEST[id]'");
|
|
$vote_arr['start_time'] = local_date('Y-m-d', $vote_arr['start_time']);
|
|
$vote_arr['end_time'] = local_date('Y-m-d', $vote_arr['end_time']);
|
|
|
|
/* 模板赋值 */
|
|
$smarty->assign('ur_here', $_LANG['edit_vote']);
|
|
$smarty->assign('action_link', array('href'=>'vote.php?act=list', 'text' => $_LANG['list_vote']));
|
|
$smarty->assign('form_act', 'update');
|
|
$smarty->assign('vote_arr', $vote_arr);
|
|
|
|
assign_query_info();
|
|
$smarty->display('vote_info.htm');
|
|
}
|
|
elseif ($_REQUEST['act'] == 'update')
|
|
{
|
|
/* 获得广告的开始时期与结束日期 */
|
|
$start_time = local_strtotime($_POST['start_time']);
|
|
$end_time = local_strtotime($_POST['end_time']);
|
|
|
|
/* 更新信息 */
|
|
$sql = "UPDATE " .$ecs->table('vote'). " SET ".
|
|
"vote_name = '$_POST[vote_name]', ".
|
|
"start_time = '$start_time', ".
|
|
"end_time = '$end_time', ".
|
|
"can_multi = '$_POST[can_multi]' ".
|
|
"WHERE vote_id = '$_REQUEST[id]'";
|
|
$db->query($sql);
|
|
|
|
/* 清除缓存 */
|
|
clear_cache_files();
|
|
|
|
/* 记录管理员操作 */
|
|
admin_log($_POST['vote_name'], 'edit', 'vote');
|
|
|
|
/* 提示信息 */
|
|
$link[] = array('text' => $_LANG['back_list'], 'href'=>'vote.php?act=list');
|
|
sys_msg($_LANG['edit'] .' '.$_POST['vote_name'].' '. $_LANG['attradd_succed'], 0, $link);
|
|
}
|
|
/*------------------------------------------------------ */
|
|
//-- 调查选项列表页面
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'option')
|
|
{
|
|
$id = !empty($_REQUEST['id']) ? intval($_REQUEST['id']) : 0;
|
|
|
|
/* 模板赋值 */
|
|
$smarty->assign('ur_here', $_LANG['list_vote_option']);
|
|
$smarty->assign('action_link', array('href'=>'vote.php?act=list', 'text' => $_LANG['list_vote']));
|
|
$smarty->assign('full_page', 1);
|
|
|
|
$smarty->assign('id', $id);
|
|
$smarty->assign('option_arr', get_optionlist($id));
|
|
|
|
/* 显示页面 */
|
|
assign_query_info();
|
|
$smarty->display('vote_option.htm');
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 调查选项查询
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'query_option')
|
|
{
|
|
$id = intval($_GET['vid']);
|
|
|
|
$smarty->assign('id', $id);
|
|
$smarty->assign('option_arr', get_optionlist($id));
|
|
|
|
make_json_result($smarty->fetch('vote_option.htm'));
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 添加新调查选项
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'new_option')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$option_name = json_str_iconv(trim($_POST['option_name']));
|
|
$vote_id = intval($_POST['id']);
|
|
|
|
if (!empty($option_name))
|
|
{
|
|
/* 查看调查标题是否有重复 */
|
|
$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('vote_option').
|
|
" WHERE option_name = '$option_name' AND vote_id = '$vote_id'";
|
|
if ($db->getOne($sql) != 0)
|
|
{
|
|
make_json_error($_LANG['vote_option_exist']);
|
|
}
|
|
else
|
|
{
|
|
$sql = 'INSERT INTO ' .$ecs->table('vote_option'). ' (vote_id, option_name, option_count) '.
|
|
"VALUES ('$vote_id', '$option_name', 0)";
|
|
$db->query($sql);
|
|
|
|
clear_cache_files();
|
|
admin_log($option_name, 'add', 'vote');
|
|
|
|
$url = 'vote.php?act=query_option&vid='.$vote_id.'&' . str_replace('act=new_option', '', $_SERVER['QUERY_STRING']);
|
|
|
|
ecs_header("Location: $url\n");
|
|
exit;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
make_json_error($_LANG['js_languages']['option_name_empty']);
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 编辑调查主题
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'edit_vote_name')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$id = intval($_POST['id']);
|
|
$vote_name = json_str_iconv(trim($_POST['val']));
|
|
|
|
/* 检查名称是否重复 */
|
|
if ($exc->num("vote_name", $vote_name, $id) != 0)
|
|
{
|
|
make_json_error(sprintf($_LANG['vote_name_exist'], $vote_name));
|
|
}
|
|
else
|
|
{
|
|
if ($exc->edit("vote_name = '$vote_name'", $id))
|
|
{
|
|
admin_log($vote_name, 'edit', 'vote');
|
|
make_json_result(stripslashes($vote_name));
|
|
}
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 编辑调查选项
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'edit_option_name')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$id = intval($_POST['id']);
|
|
$option_name = json_str_iconv(trim($_POST['val']));
|
|
|
|
/* 检查名称是否重复 */
|
|
$vote_id = $db->getOne('SELECT vote_id FROM ' .$ecs->table('vote_option'). " WHERE option_id='$id'");
|
|
|
|
$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('vote_option').
|
|
" WHERE option_name = '$option_name' AND vote_id = '$vote_id' AND option_id <> $id";
|
|
if ($db->getOne($sql) != 0)
|
|
{
|
|
make_json_error(sprintf($_LANG['vote_option_exist'], $option_name));
|
|
}
|
|
else
|
|
{
|
|
if ($exc_opn->edit("option_name = '$option_name'", $id))
|
|
{
|
|
admin_log($option_name, 'edit', 'vote');
|
|
make_json_result(stripslashes($option_name));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 编辑调查选项排序值
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'edit_option_order')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$id = intval($_POST['id']);
|
|
$option_order = json_str_iconv(trim($_POST['val']));
|
|
|
|
if ($exc_opn->edit("option_order = '$option_order'", $id))
|
|
{
|
|
admin_log($_LANG['edit_option_order'], 'edit', 'vote');
|
|
make_json_result(stripslashes($option_order));
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 删除在线调查主题
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'remove')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$id = intval($_GET['id']);
|
|
|
|
if ($exc->drop($id))
|
|
{
|
|
/* 同时删除调查选项 */
|
|
$db->query("DELETE FROM " .$ecs->table('vote_option'). " WHERE vote_id = '$id'");
|
|
clear_cache_files();
|
|
admin_log('', 'remove', 'ads_position');
|
|
}
|
|
|
|
$url = 'vote.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);
|
|
|
|
ecs_header("Location: $url\n");
|
|
exit;
|
|
}
|
|
|
|
/*------------------------------------------------------ */
|
|
//-- 删除在线调查选项
|
|
/*------------------------------------------------------ */
|
|
elseif ($_REQUEST['act'] == 'remove_option')
|
|
{
|
|
check_authz_json('vote_priv');
|
|
|
|
$id = intval($_GET['id']);
|
|
$vote_id = $db->getOne('SELECT vote_id FROM ' .$ecs->table('vote_option'). " WHERE option_id='$id'");
|
|
|
|
if ($exc_opn->drop($id))
|
|
{
|
|
clear_cache_files();
|
|
admin_log('', 'remove', 'vote');
|
|
}
|
|
|
|
$url = 'vote.php?act=query_option&vid='.$vote_id.'&' . str_replace('act=remove_option', '', $_SERVER['QUERY_STRING']);
|
|
|
|
ecs_header("Location: $url\n");
|
|
exit;
|
|
}
|
|
|
|
/* 获取在线调查数据列表 */
|
|
function get_votelist()
|
|
{
|
|
$filter = array();
|
|
|
|
/* 记录总数以及页数 */
|
|
$sql = 'SELECT COUNT(*) FROM ' . $GLOBALS['ecs']->table('vote');
|
|
$filter['record_count'] = $GLOBALS['db']->getOne($sql);
|
|
|
|
$filter = page_and_size($filter);
|
|
|
|
/* 查询数据 */
|
|
$sql = 'SELECT * FROM ' .$GLOBALS['ecs']->table('vote'). ' ORDER BY vote_id DESC';
|
|
$res = $GLOBALS['db']->selectLimit($sql, $filter['page_size'], $filter['start']);
|
|
|
|
$list = array();
|
|
while ($rows = $GLOBALS['db']->fetchRow($res))
|
|
{
|
|
$rows['begin_date'] = local_date('Y-m-d', $rows['start_time']);
|
|
$rows['end_date'] = local_date('Y-m-d', $rows['end_time']);
|
|
$list[] = $rows;
|
|
}
|
|
|
|
return array('list' => $list, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
|
|
}
|
|
|
|
/* 获取调查选项列表 */
|
|
function get_optionlist($id)
|
|
{
|
|
$list = array();
|
|
$sql = 'SELECT option_id, vote_id, option_name, option_count, option_order'.
|
|
' FROM ' .$GLOBALS['ecs']->table('vote_option').
|
|
" WHERE vote_id = '$id' ORDER BY option_order ASC, option_id DESC";
|
|
$res = $GLOBALS['db']->query($sql);
|
|
while ($rows = $GLOBALS['db']->fetchRow($res))
|
|
{
|
|
$list[] = $rows;
|
|
}
|
|
|
|
return $list;
|
|
}
|
|
|
|
?>
|