// // ------------------------------------------------------------------------ // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation; either version 2 of the License, or // // (at your option) any later version. // // // // You may not change or alter any portion of this comment or credits // // of supporting developers from this source code or any supporting // // source code which is considered copyrighted (c) material of the // // original comment or credit authors. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // // GNU General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this program; if not, write to the Free Software // // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------ // include '../../../include/cp_header.php'; include XOOPS_ROOT_PATH."/modules/xoopspoll/include/constants.php"; include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php"; include_once XOOPS_ROOT_PATH."/class/xoopslists.php"; include_once XOOPS_ROOT_PATH."/class/xoopsblock.php"; include_once XOOPS_ROOT_PATH."/modules/xoopspoll/class/xoopspoll.php"; include_once XOOPS_ROOT_PATH."/modules/xoopspoll/class/xoopspolloption.php"; include_once XOOPS_ROOT_PATH."/modules/xoopspoll/class/xoopspolllog.php"; include_once XOOPS_ROOT_PATH."/modules/xoopspoll/class/xoopspollrenderer.php"; $op = "list"; if (!empty($HTTP_GET_VARS['op'])) { $op = $HTTP_GET_VARS['op']; } if ( isset($HTTP_POST_VARS) ) { foreach ( $HTTP_POST_VARS as $k => $v ) { $$k = $v; } } if ( $op == "list" ) { $limit = (!empty($HTTP_GET_VARS['limit'])) ? $HTTP_GET_VARS['limit'] : 30; $start = (!empty($HTTP_GET_VARS['start'])) ? $HTTP_GET_VARS['start'] : 0; $polls_arr =& XoopsPoll::getAll(array(), true, "weight ASC, end_time DESC", $limit+1, $start); xoops_cp_header(); echo "

"._AM_POLLCONF."

"; echo "

"._AM_POLLSLIST."

"; $polls_count = count($polls_arr); if ( is_array($polls_arr) && $polls_count > 0) { echo "
"; $max = ( $polls_count > $limit ) ? $limit : $polls_count; for ( $i = 0; $i < $max; $i++ ) { $checked = ""; if ( 1 == $polls_arr[$i]->getVar("display") ) { $checked = " checked='checked'"; } if ( $polls_arr[$i]->getVar("end_time") > time() ) { $end = formatTimestamp($polls_arr[$i]->getVar("end_time"),"m"); } else { $end = ""._AM_EXPIRED."
"._AM_RESTART.""; } echo ""; } echo "
"._AM_DISPLAYBLOCK.""._AM_DISPLAYORDER.""._AM_POLLQUESTION.""._AM_VOTERS.""._AM_VOTES.""._AM_EXPIRATION." 
".$polls_arr[$i]->getVar("question")."".$polls_arr[$i]->getVar("voters")."".$polls_arr[$i]->getVar("votes")."".$end.""._EDIT."
"._DELETE."
"._AM_VIEWLOG."
"; echo "
"; if ( $start > 0 ) { $prev_start = ($start - $limit > 0) ? $start - $limit : 0; echo ""._PL_PREV.""; } else { echo " "; } echo ""; if ( $polls_count > $limit ) { echo ""._PL_NEXT.""; } echo "
"; } xoops_cp_footer(); exit(); } if ( $op == "add" ) { $poll_form = new XoopsThemeForm(_AM_CREATNEWPOLL, "poll_form", "index.php", "post", true); $question_text = new XoopsFormText(_AM_POLLQUESTION, "question", 50, 255); $poll_form->addElement($question_text); $desc_tarea = new XoopsFormTextarea(_AM_POLLDESC, "description"); $poll_form->addElement($desc_tarea); $currenttime = formatTimestamp(time(), "Y-m-d H:i:s"); $endtime = formatTimestamp(time()+604800, "Y-m-d H:i:s"); $expire_text = new XoopsFormText(_AM_EXPIRATION."
"._AM_FORMAT."
".sprintf(_AM_CURRENTTIME, $currenttime)."
", "end_time", 30, 19, $endtime); $poll_form->addElement($expire_text); $disp_yn = new XoopsFormRadioYN(_AM_DISPLAYBLOCK, "display", 1); $poll_form->addElement($disp_yn); $weight_text = new XoopsFormText(_AM_DISPLAYORDER, "weight", 6, 5, 0); $poll_form->addElement($weight_text); $multi_yn = new XoopsFormRadioYN(_AM_ALLOWMULTI, "multiple", 0); $poll_form->addElement($multi_yn); $notify_yn = new XoopsFormRadioYN(_AM_NOTIFY, "notify", 1); $poll_form->addElement($notify_yn); $option_tray = new XoopsFormElementTray(_AM_POLLOPTIONS, ""); $barcolor_array = XoopsLists::getImgListAsArray(XOOPS_ROOT_PATH."/modules/xoopspoll/images/colorbars/"); for($i = 0; $i < 10; $i++){ $current_bar = (current($barcolor_array) != "blank.gif") ? current($barcolor_array) : next($barcolor_array); $option_text = new XoopsFormText("", "option_text[]", 50, 255); $option_tray->addElement($option_text); $color_select = new XoopsFormSelect("", "option_color[".$i."]", $current_bar); $color_select->addOptionArray($barcolor_array); $color_select->setExtra("onchange='showImgSelected(\"option_color_image[".$i."]\", \"option_color[".$i."]\", \"modules/xoopspoll/images/colorbars\", \"\", \"".XOOPS_URL."\")'"); $color_label = new XoopsFormLabel("", "
"); $option_tray->addElement($color_select); $option_tray->addElement($color_label); if ( !next($barcolor_array) ) { reset($barcolor_array); } unset($color_select, $color_label); } $poll_form->addElement($option_tray); $submit_button = new XoopsFormButton("", "poll_submit", _SUBMIT, "submit"); $poll_form->addElement($submit_button); $op_hidden = new XoopsFormHidden("op", "save"); $poll_form->addElement($op_hidden); xoops_cp_header(); echo "

"._AM_POLLCONF."

"; $poll_form->display(); xoops_cp_footer(); exit(); } if ( $op == "save" ) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('index.php', 3, implode('
', $GLOBALS['xoopsSecurity']->getErrors())); } $poll = new XoopsPoll(); $poll->setVar("question", $question); $poll->setVar("description", $description); if ( !empty($end_time) ) { $poll->setVar("end_time", userTimeToServerTime(strtotime($end_time), $xoopsUser->timezone())); } else { // if expiration date is not set, set it to 10 days from now $poll->setVar("end_time", time() + (86400 * 10)); } $poll->setVar("display", $display); $poll->setVar("weight", $weight); $poll->setVar("multiple", $multiple); if ( $notify == 1 ) { // if notify, set mail status to "not mailed" $poll->setVar("mail_status", POLL_NOTMAILED); } else { // if not notify, set mail status to already "mailed" $poll->setVar("mail_status", POLL_MAILED); } $poll->setVar("user_id", $xoopsUser->getVar("uid")); $new_poll_id = $poll->store(); if ( !empty($new_poll_id) ) { $i = 0; foreach ( $option_text as $optxt ) { $optxt = trim($optxt); if ( $optxt != "" ) { $option = new XoopsPollOption(); $option->setVar("option_text", $optxt); $option->setVar("option_color", $option_color[$i]); $option->setVar("poll_id", $new_poll_id); $option->store(); } $i++; } include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); } else { echo $poll->getHtmlErrors(); exit(); } redirect_header("index.php",1,_AM_DBUPDATED); exit(); } if ( $op == "edit" ) { $poll = new XoopsPoll($HTTP_GET_VARS['poll_id']); $poll_form = new XoopsThemeForm(_AM_EDITPOLL, "poll_form", "index.php", "post", true); $author_label = new XoopsFormLabel(_AM_AUTHOR, "".XoopsUser::getUnameFromId($poll->getVar("user_id")).""); $poll_form->addElement($author_label); $question_text = new XoopsFormText(_AM_POLLQUESTION, "question", 50, 255, $poll->getVar("question", "E")); $poll_form->addElement($question_text); $desc_tarea = new XoopsFormTextarea(_AM_POLLDESC, "description", $poll->getVar("description", "E")); $poll_form->addElement($desc_tarea); $date = formatTimestamp($poll->getVar("end_time"), "Y-m-d H:i:s"); if ( !$poll->hasExpired() ) { $expire_text = new XoopsFormText(_AM_EXPIRATION."
"._AM_FORMAT."
".sprintf(_AM_CURRENTTIME, formatTimestamp(time(), "Y-m-d H:i:s"))."
", "end_time", 20, 19, $date); $poll_form->addElement($expire_text); } else { $restart_label = new XoopsFormLabel(_AM_EXPIRATION, sprintf(_AM_EXPIREDAT, $date)."
"._AM_RESTART.""); $poll_form->addElement($restart_label); } $disp_yn = new XoopsFormRadioYN(_AM_DISPLAYBLOCK, "display", $poll->getVar("display")); $poll_form->addElement($disp_yn); $weight_text = new XoopsFormText(_AM_DISPLAYORDER, "weight", 6, 5, $poll->getVar("weight")); $poll_form->addElement($weight_text); $multi_yn = new XoopsFormRadioYN(_AM_ALLOWMULTI, "multiple", $poll->getVar("multiple")); $poll_form->addElement($multi_yn); $options_arr =& XoopsPollOption::getAllByPollId($poll->getVar("poll_id")); $notify_value = 1; if ( $poll->getVar("mail_status") != 0 ) { $notify_value = 0; } $notify_yn = new XoopsFormRadioYN(_AM_NOTIFY, "notify", $notify_value); $poll_form->addElement($notify_yn); $option_tray = new XoopsFormElementTray(_AM_POLLOPTIONS, ""); $barcolor_array =& XoopsLists::getImgListAsArray(XOOPS_ROOT_PATH."/modules/xoopspoll/images/colorbars/"); $i = 0; foreach($options_arr as $option){ $option_text = new XoopsFormText("", "option_text[]", 50, 255, $option->getVar("option_text")); $option_tray->addElement($option_text); $option_id_hidden = new XoopsFormHidden("option_id[]", $option->getVar("option_id")); $option_tray->addElement($option_id_hidden); $color_select = new XoopsFormSelect("", "option_color[".$i."]", $option->getVar("option_color")); $color_select->addOptionArray($barcolor_array); $color_select->setExtra("onchange='showImgSelected(\"option_color_image[".$i."]\", \"option_color[".$i."]\", \"modules/xoopspoll/images/colorbars\", \"\", \"".XOOPS_URL."\")'"); $color_label = new XoopsFormLabel("", "
"); $option_tray->addElement($color_select); $option_tray->addElement($color_label); unset($color_select, $color_label, $option_id_hidden, $option_text); $i++; } $more_label = new XoopsFormLabel("", "
"._AM_ADDMORE.""); $option_tray->addElement($more_label); $poll_form->addElement($option_tray); $op_hidden = new XoopsFormHidden("op", "update"); $poll_form->addElement($op_hidden); $poll_id_hidden = new XoopsFormHidden("poll_id", $poll->getVar("poll_id")); $poll_form->addElement($poll_id_hidden); $submit_button = new XoopsFormButton("", "poll_submit", _SUBMIT, "submit"); $poll_form->addElement($submit_button); xoops_cp_header(); echo "

"._AM_POLLCONF."

"; $poll_form->display(); xoops_cp_footer(); exit(); } if ( $op == "update" ) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('index.php', 3, implode('
', $GLOBALS['xoopsSecurity']->getErrors())); } $poll = new XoopsPoll($poll_id); $poll->setVar("question", $question); $poll->setVar("description", $description); if ( !empty($end_time) ) { $end_time = userTimeToServerTime(strtotime($end_time), $xoopsUser->timezone()); $poll->setVar("end_time", $end_time); } $poll->setVar("display", $display); $poll->setVar("weight", $weight); $poll->setVar("multiple", $multiple); if ( $notify == 1 && $end_time > time() ) { // if notify, set mail status to "not mailed" $poll->setVar("mail_status", POLL_NOTMAILED); } else { // if not notify, set mail status to already "mailed" $poll->setVar("mail_status", POLL_MAILED); } if ( !$poll->store() ) { echo $poll->getHtmlErrors(); exit(); } $i = 0; foreach ( $option_id as $opid ) { $option = new XoopsPollOption($opid); $option_text[$i] = trim ($option_text[$i]); if ( $option_text[$i] != "" ) { $option->setVar("option_text", $option_text[$i]); $option->setVar("option_color", $option_color[$i]); $option->store(); } else { if ( $option->delete() != false ) { XoopsPollLog::deleteByOptionId($option->getVar("option_id")); } } $i++; } $poll->updateCount(); include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); redirect_header("index.php",1,_AM_DBUPDATED); exit(); } if ( $op == "addmore" ) { $poll = new XoopsPoll($HTTP_GET_VARS['poll_id']); $poll_form = new XoopsThemeForm(_AM_ADDMORE, "poll_form", "index.php", 'post', true); $question_label = new XoopsFormLabel(_AM_POLLQUESTION, $poll->getVar("question")); $poll_form->addElement($question_label); $option_tray = new XoopsFormElementTray(_AM_POLLOPTIONS, ""); $barcolor_array =& XoopsLists::getImgListAsArray(XOOPS_ROOT_PATH."/modules/xoopspoll/images/colorbars/"); for($i = 0; $i < 10; $i++){ $current_bar = (current($barcolor_array) != "blank.gif") ? current($barcolor_array) : next($barcolor_array); $option_text = new XoopsFormText("", "option_text[]", 50, 255); $option_tray->addElement($option_text); $color_select = new XoopsFormSelect("", "option_color[".$i."]", $current_bar); $color_select->addOptionArray($barcolor_array); $color_select->setExtra("onchange='showImgSelected(\"option_color_image[".$i."]\", \"option_color[".$i."]\", \"modules/xoopspoll/images/colorbars\", \"\", \"".XOOPS_URL."\")'"); $color_label = new XoopsFormLabel("", "
"); $option_tray->addElement($color_select); $option_tray->addElement($color_label); unset($color_select, $color_label, $option_text); if ( !next($barcolor_array) ) { reset($barcolor_array); } } $poll_form->addElement($option_tray); $submit_button = new XoopsFormButton("", "poll_submit", _SUBMIT, "submit"); $poll_form->addElement($submit_button); $op_hidden = new XoopsFormHidden("op", "savemore"); $poll_form->addElement($op_hidden); $poll_id_hidden = new XoopsFormHidden("poll_id", $poll->getVar("poll_id")); $poll_form->addElement($poll_id_hidden); xoops_cp_header(); echo "

"._AM_POLLCONF."

"; $poll_form->display(); xoops_cp_footer(); exit(); } if ( $op == "savemore" ) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('index.php', 3, implode('
', $GLOBALS['xoopsSecurity']->getErrors())); } $poll = new XoopsPoll($poll_id); $i = 0; foreach ( $option_text as $optxt ) { $optxt = trim($optxt); if ( $optxt != "" ) { $option = new XoopsPollOption(); $option->setVar("option_text", $optxt); $option->setVar("poll_id", $poll->getVar("poll_id")); $option->setVar("option_color", $option_color[$i]); $option->store(); } $i++; } include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); redirect_header("index.php",1,_AM_DBUPDATED); exit(); } if ( $op == "delete" ) { xoops_cp_header(); echo "

"._AM_POLLCONF."

"; $poll = new XoopsPoll($HTTP_GET_VARS['poll_id']); xoops_confirm(array('op' => 'delete_ok', 'poll_id' => $poll->getVar('poll_id')), 'index.php', sprintf(_AM_RUSUREDEL,$poll->getVar("question"))); xoops_cp_footer(); exit(); } if ( $op == "delete_ok" ) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('index.php', 3, implode('
', $GLOBALS['xoopsSecurity']->getErrors())); } $poll = new XoopsPoll($poll_id); if ( $poll->delete() != false ) { XoopsPollOption::deleteByPollId($poll->getVar("poll_id")); XoopsPollLog::deleteByPollId($poll->getVar("poll_id")); include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); // delete comments for this poll xoops_comment_delete($xoopsModule->getVar('mid'), $poll->getVar('poll_id')); } redirect_header("index.php",1,_AM_DBUPDATED); exit(); } if ( $op == "restart" ) { $poll = new XoopsPoll($HTTP_GET_VARS['poll_id']); $poll_form = new XoopsThemeForm(_AM_RESTARTPOLL, "poll_form", "index.php", 'post', true); $expire_text = new XoopsFormText(_AM_EXPIRATION."
"._AM_FORMAT."
".sprintf(_AM_CURRENTTIME, formatTimestamp(time(), "Y-m-d H:i:s"))."
", "end_time", 20, 19, formatTimestamp(time()+604800, "Y-m-d H:i:s")); $poll_form->addElement($expire_text); $notify_yn = new XoopsFormRadioYN(_AM_NOTIFY, "notify", 1); $poll_form->addElement($notify_yn); $reset_yn = new XoopsFormRadioYN(_AM_RESET, "reset", 0); $poll_form->addElement($reset_yn); $op_hidden = new XoopsFormHidden("op", "restart_ok"); $poll_form->addElement($op_hidden); $poll_id_hidden = new XoopsFormHidden("poll_id", $poll->getVar("poll_id")); $poll_form->addElement($poll_id_hidden); $submit_button = new XoopsFormButton("", "poll_submit", _AM_RESTART, "submit"); $poll_form->addElement($submit_button); xoops_cp_header(); echo "

"._AM_POLLCONF."

"; $poll_form->display(); xoops_cp_footer(); exit(); } if ( $op == "restart_ok" ) { if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('index.php', 3, implode('
', $GLOBALS['xoopsSecurity']->getErrors())); } $poll = new XoopsPoll($poll_id); if ( !empty($end_time) ) { $end_time = userTimeToServerTime(strtotime($end_time), $xoopsUser->timezone()); $poll->setVar("end_time", $end_time); } else { $poll->setVar("end_time", time() + (86400 * 10)); } if ( $notify == 1 && $end_time > time() ) { // if notify, set mail status to "not mailed" $poll->setVar("mail_status", POLL_NOTMAILED); } else { // if not notify, set mail status to already "mailed" $poll->setVar("mail_status", POLL_MAILED); } if ( $reset == 1 ) { // reset all logs XoopsPollLog::deleteByPollId($poll->getVar("poll_id")); XoopsPollOption::resetCountByPollId($poll->getVar("poll_id")); } if (!$poll->store()) { echo $poll->getHtmlErrors(); exit(); } $poll->updateCount(); include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); redirect_header("index.php",1,_AM_DBUPDATED); exit(); } if ( $op == "log" ) { xoops_cp_header(); echo "

"._AM_POLLCONF."

"; echo "
View Log
Sorry, not yet. ;-)"; xoops_cp_footer(); exit(); } if ( $op == "quickupdate" ) { $count = count($poll_id); for ( $i = 0; $i < $count; $i++ ) { $display[$i] = empty($display[$i]) ? 0 : 1; $weight[$i] = empty($weight[$i]) ? 0 : $weight[$i]; if ( $display[$i] != $old_display[$i] || $weight[$i] != $old_weight[$i] ) { $poll = new XoopsPoll($poll_id[$i]); $poll->setVar("display", $display[$i]); $poll->setVar("weight", intval($weight[$i])); $poll->store(); } } include_once XOOPS_ROOT_PATH.'/class/template.php'; xoops_template_clear_module_cache($xoopsModule->getVar('mid')); redirect_header("index.php",1,_AM_DBUPDATED); exit(); } ?>