delete_poll(key($_POST['delete'])); // TODO check security? $mes->addSuccess(LAN_DELETED); unset($poll_id, $_POST['poll_title'], $_POST['poll_option'], $_POST['activate']); $_GET['mode']='list'; } if (isset($_POST['submit'])) { if($_POST['poll_title']) { define("POLLID", (int) $_POST['poll_id']); $poll->submit_poll(); $mes->addSuccess(LAN_CREATED); unset($_POST['poll_title'], $_POST['poll_option'], $_POST['activate'], $_POST['poll_comment']); } else { $mes->addError(LAN_REQUIRED_BLANK); } $_GET['mode']='list'; } if (isset($_POST['preview'])) { // Can't have everyone voting if tracking method is user ID if (($_POST['pollUserclass'] == e_UC_PUBLIC) && ($_POST['storageMethod'] == 2)) $_POST['pollUserclass'] = e_UC_MEMBER; $poll->render_poll($_POST, "preview"); } if (varset($_POST['edit']) || varset($_GET['mode'])=='create' && !varset($_POST['submit'])) { $_GET['mode']='create'; if($_POST['edit']) { edit_poll(); define("POLLACTION",'edit'); } $poll_total = $sql->select("polls"); $text = $poll -> renderPollForm(); if (varset($_GET['mode'])=='create') { $ns->tablerender(LAN_PLUGIN_POLL_NAME.SEP.LAN_CREATE, $mes->render() . $text); } if (varset($_GET['mode'])=='edit') { $ns->tablerender(LAN_PLUGIN_POLL_NAME.SEP.LAN_EDIT, $mes->render() . $text); } } if(!varset($_POST['edit']) && ($_GET['mode']=="list" || !$_GET['mode'])) { poll_list(); } require_once(e_ADMIN."footer.php"); function edit_poll() { $sql = e107::getDb(); $id = key($_POST['edit']); if ($sql->select("polls", "*", "poll_id=".$id)) { $_GET['mode'] = 'create'; $row = $sql->fetch(); extract($row); // FIXME $tmpArray = explode(chr(1), $poll_options); foreach($tmpArray as $option) { $_POST['poll_option'][] = $option; } $_POST['poll_id'] = $id; $_POST['activate'] = $poll_active; $_POST['option_count'] = count($_POST['poll_option']); $_POST['poll_title'] = $poll_title; $_POST['poll_comment'] = $poll_comment; if ($poll_start_datestamp) { $tmp = getdate($poll_start_datestamp); $_POST['startmonth'] = $tmp['mon']; $_POST['startday'] = $tmp['mday']; $_POST['startyear'] = $tmp['year']; } if ($poll_end_datestamp) { $tmp = getdate($poll_end_datestamp); $_POST['endmonth'] = $tmp['mon']; $_POST['endday'] = $tmp['mday']; $_POST['endyear'] = $tmp['year']; } $_POST['multipleChoice'] = $poll_allow_multiple; $_POST['showResults'] = $poll_result_type; // Can't have everyone voting if tracking method is user ID $_POST['pollUserclass'] = (($poll_vote_userclass == e_UC_PUBLIC) && $poll_storage_method == 2) ? e_UC_MEMBER : $poll_vote_userclass; $_POST['storageMethod'] = $poll_storage_method; } } function poll_list() { $sql = e107::getDb(); $ns = e107::getRender(); $tp = e107::getParser(); $frm = e107::getForm(); $mes = e107::getMessage(); // global $user_pref; if(isset($_POST['etrigger_ecolumns'])) //TODO User { // $user_pref['admin_poll_columns'] = $_POST['e-columns']; e107::getConfig('user')->setPref('admin_poll_columns',$_POST['e-columns'])->save(true,true,false); } $fieldpref = (varset($user_pref['admin_poll_columns'])) ? $user_pref['admin_poll_columns'] : array("poll_id","poll_title","poll_options","poll_vote_userclass"); ; //TODO Add more column options. $fields = array( 'poll_id' => array('title'=> LAN_ID, 'width'=>'5%', 'forced'=> TRUE), 'poll_title' => array('title'=> POLLAN_3, 'width'=>'auto'), 'poll_options' => array('title'=> POLLAN_4, 'type' => 'text', 'width' => 'auto', 'thclass' => 'left' ), // No real vetting // 'poll_start_datestamp' => array('title'=> LAN_AUTHOR, 'type' => 'text', 'width' => 'auto', 'thclass' => 'left first'), // Display name // 'poll_end_datestamp' => array('title'=> LAN_DATE, 'type' => 'text', 'width' => 'auto'), // User name 'poll_vote_userclass' => array('title'=> LAN_USERCLASS, 'type' => 'text', 'width' => 'auto'), // Photo 'options' => array('title'=> LAN_OPTIONS, 'forced'=>TRUE, 'width' => '10%', 'thclass' => 'center last') ); $text = "
"; if ($poll_total = $sql->select("polls", "*")) { $text .= ""; $text .= $frm->colGroup($fields,$fieldpref). $frm->thead($fields,$fieldpref); $text .= ""; while ($row = $sql->fetch()) { extract($row); // FIXME $pollopts = explode(chr(1),$poll_options); $pollopts = array_filter($pollopts); $text .= " "; $text .= (in_array("poll_title",$fieldpref)) ? "" : ""; $text .= (in_array("poll_options",$fieldpref)) ? "" : ""; $text .= (in_array("poll_comment",$fieldpref)) ? "" : ""; $text .= (in_array("poll_vote_userclass",$fieldpref)) ? "" : ""; $text .= " "; } $text .= "
$poll_id".$tp->toHTML($poll_title, TRUE,"no_hook, emotes_off, defs")."
  • ".implode("
  • ",$pollopts)."
".($poll_comment ? LAN_YES : LAN_NO)."".(r_userclass_name($poll_vote_userclass))."
"; } else { $mes->addInfo(LAN_NO_RECORDS_FOUND); } $text .= "
"; $ns->tablerender(LAN_PLUGIN_POLL_NAME.SEP.LAN_MANAGE, $mes->render(). $text); } function admin_config_adminmenu() { $action = varset($_GET['mode']) ? $_GET['mode'] : "list"; $var['list']['text'] = LAN_MANAGE; $var['list']['link'] = e_SELF; $var['list']['perm'] = "P"; $var['create']['text'] = LAN_CREATE ; $var['create']['link'] = e_SELF."?mode=create"; $var['create']['perm'] = "P"; /* $var['import']['text'] = GSLAN_23; $var['import']['link'] = e_SELF."?import"; $var['import']['perm'] = "0";*/ //$icon = e107::getParser()->toIcon(e_PLUGIN.'poll/images/polls_32.png'); $caption = "".LAN_PLUGIN_POLL_NAME.""; show_admin_menu($caption, $action, $var); }