// // ------------------------------------------------------------------------- // // 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 "../../mainfile.php"; include XOOPS_ROOT_PATH."/modules/xoopspoll/include/constants.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"; if ( !empty($HTTP_POST_VARS['poll_id']) ) { $poll_id = intval($HTTP_POST_VARS['poll_id']); } elseif (!empty($HTTP_GET_VARS['poll_id'])) { $poll_id = intval($HTTP_GET_VARS['poll_id']); } if ( empty($poll_id) ) { $xoopsOption['template_main'] = 'xoopspoll_index.html'; include XOOPS_ROOT_PATH."/header.php"; $limit = (!empty($HTTP_GET_VARS['limit'])) ? intval($HTTP_GET_VARS['limit']) : 50; $start = (!empty($HTTP_GET_VARS['start'])) ? intval($HTTP_GET_VARS['start']) : 0; $xoopsTpl->assign('lang_pollslist', _PL_POLLSLIST); $xoopsTpl->assign('lang_pollquestion' , _PL_POLLQUESTION); $xoopsTpl->assign('lang_pollvoters', _PL_VOTERS); $xoopsTpl->assign('lang_votes', _PL_VOTES); $xoopsTpl->assign('lang_expiration', _PL_EXPIRATION); $xoopsTpl->assign('lang_results', _PL_RESULTS); // add 1 to $limit to know whether there are more polls $polls_arr =& XoopsPoll::getAll(array(), true, "weight ASC, end_time DESC", $limit+1, $start); $polls_count = count($polls_arr); $max = ( $polls_count > $limit ) ? $limit : $polls_count; for ( $i = 0; $i < $max; $i++ ) { $polls = array(); $polls['pollId'] = $polls_arr[$i]->getVar("poll_id"); if ( $polls_arr[$i]->getVar("end_time") > time() ) { $polls['pollEnd'] = formatTimestamp($polls_arr[$i]->getVar("end_time"),"m"); $polls['pollQuestion'] = "".$polls_arr[$i]->getVar("question").""; } else { $polls['pollEnd'] = ""._PL_EXPIRED.""; $polls['pollQuestion'] = $polls_arr[$i]->getVar("question"); } $polls['pollVoters'] = $polls_arr[$i]->getVar("voters"); $polls['pollVotes'] = $polls_arr[$i]->getVar("votes"); $xoopsTpl->append('polls', $polls); unset($polls); } include XOOPS_ROOT_PATH."/footer.php"; } elseif ( !empty($HTTP_POST_VARS['option_id']) ) { $voted_polls = (!empty($HTTP_COOKIE_VARS['voted_polls'])) ? $HTTP_COOKIE_VARS['voted_polls'] : array(); $mail_author = false; $poll = new XoopsPoll($poll_id); if ( !$poll->hasExpired() ) { if ( empty($voted_polls[$poll_id]) ) { if ( $xoopsUser ) { if ( XoopsPollLog::hasVoted($poll_id, xoops_getenv('REMOTE_ADDR'), $xoopsUser->getVar("uid")) ) { setcookie("voted_polls[$poll_id]", 1, 0); $msg = _PL_ALREADYVOTED; } else { $poll->vote($HTTP_POST_VARS['option_id'], xoops_getenv('REMOTE_ADDR'), $xoopsUser->getVar("uid")); $poll->updateCount(); setcookie("voted_polls[$poll_id]", 1, 0); $msg = _PL_THANKSFORVOTE; } } else { if ( XoopsPollLog::hasVoted($poll_id, xoops_getenv('REMOTE_ADDR')) ) { setcookie("voted_polls[$poll_id]", 1, 0); $msg = _PL_ALREADYVOTED; } else { $poll->vote($HTTP_POST_VARS['option_id'], xoops_getenv('REMOTE_ADDR')); $poll->updateCount(); setcookie("voted_polls[$poll_id]", 1, 0); $msg = _PL_THANKSFORVOTE; } } } else { $msg = _PL_ALREADYVOTED; } } else { $msg = _PL_SORRYEXPIRED; if ( $poll->getVar("mail_status") != POLL_MAILED ) { $xoopsMailer =& getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplateDir(XOOPS_ROOT_PATH."/modules/xoopspoll/language/".$xoopsConfig['language']."/mail_template/"); $xoopsMailer->setTemplate("mail_results.tpl"); $author = new XoopsUser($poll->getVar("user_id")); $xoopsMailer->setToUsers($author); $xoopsMailer->assign("POLL_QUESTION", $poll->getVar("question")); $xoopsMailer->assign("POLL_START", formatTimestamp($poll->getVar("start_time"), "l", $author->timezone())); $xoopsMailer->assign("POLL_END", formatTimestamp($poll->getVar("end_time"), "l", $author->timezone())); $xoopsMailer->assign("POLL_VOTES", $poll->getVar("votes")); $xoopsMailer->assign("POLL_VOTERS", $poll->getVar("voters")); $xoopsMailer->assign("POLL_ID", $poll->getVar("poll_id")); $xoopsMailer->assign("SITENAME", $xoopsConfig['sitename']); $xoopsMailer->assign("ADMINMAIL", $xoopsConfig['adminmail']); $xoopsMailer->assign("SITEURL", $xoopsConfig['xoops_url']."/"); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_PL_YOURPOLLAT,$author->uname(),$xoopsConfig['sitename'])); if ( $xoopsMailer->send() != false ) { $poll->setVar("mail_status", POLL_MAILED); $poll->store(); } } } redirect_header(XOOPS_URL."/modules/xoopspoll/pollresults.php?poll_id=$poll_id", 1, $msg); exit(); } elseif ( !empty($poll_id) ) { $xoopsOption['template_main'] = 'xoopspoll_view.html'; include XOOPS_ROOT_PATH."/header.php"; $poll = new XoopsPoll($poll_id); $renderer = new XoopsPollRenderer($poll); $renderer->assignForm($xoopsTpl); $xoopsTpl->assign('lang_vote' , _PL_VOTE); $xoopsTpl->assign('lang_results' , _PL_RESULTS); include XOOPS_ROOT_PATH."/footer.php"; } ?>